📅  最后修改于: 2023-12-03 15:21:16.254000             🧑  作者: Mango
WSDL全称是“Web Services Description Language”,中文名为“Web服务描述语言”。是一种XML文档格式,用于描述Web服务中提供的接口信息。通过WSDL文件,可以清晰地了解Web服务提供的接口及其参数、返回值等详细信息。
WSDL文件包含多个部分,每个部分都用XML标签描述。
WSDL文件必须定义XML命名空间。
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://example.com/wsdl"
targetNamespace="http://example.com/wsdl">
其中,http://schemas.xmlsoap.org/wsdl/
是WSDL命名空间,http://schemas.xmlsoap.org/wsdl/soap/
是SOAP协议的命名空间,http://example.com/wsdl
是Web服务的命名空间。
WSDL文件中的消息描述Web服务的输入和输出,用<message>
标签表示。
<message name="getProductRequest">
<part name="productId" type="xsd:string"/>
</message>
<message name="getProductResponse">
<part name="product" type="tns:Product"/>
</message>
其中,getProductRequest
和getProductResponse
是消息的名称,productId
和product
是消息的参数名,xsd:string
和tns:Product
是参数类型。
WSDL文件中的操作描述Web服务的功能,用<portType>
和<operation>
标签表示。
<portType name="ProductOperations">
<operation name="getProduct">
<input message="tns:getProductRequest"/>
<output message="tns:getProductResponse"/>
</operation>
</portType>
其中,ProductOperations
是操作的名称,getProduct
是操作的方法名,tns:getProductRequest
和tns:getProductResponse
分别是操作的输入和输出消息。
WSDL文件中的绑定描述Web服务使用的协议和传输方式,用<binding>
和<soap:binding>
标签表示。
<binding name="ProductBinding" type="tns:ProductOperations">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getProduct">
<soap:operation soapAction="urn:example:getProduct"/>
<input>
<soap:body use="encoded"
namespace="urn:example"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:example"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
其中,ProductBinding
是绑定的名称,tns:ProductOperations
是绑定的端口类型,style="rpc"
表示使用RPC风格的Web服务,urn:example:getProduct
是SOAPAction协议头的值,use="encoded"
表示数据类型使用编码方式传输。
WSDL文件中的服务描述Web服务的地址、绑定、操作等,用<service>
、<port>
和<soap:address>
标签表示。
<service name="ProductService">
<port name="ProductPort" binding="tns:ProductBinding">
<soap:address location="http://example.com/ProductService"/>
</port>
</service>
其中,ProductService
是服务的名称,ProductPort
是服务的端口名称,tns:ProductBinding
是服务的绑定名称,http://example.com/ProductService
是服务的地址。
WSDL文件是Web服务中必不可少的文件,它描述了Web服务暴露的接口、参数、返回值、协议等详细信息。程序员在开发Web服务时,需要仔细编写WSDL文件,以便客户端可以准确地调用Web服务。