📜  WSDL-示例(1)

📅  最后修改于: 2023-12-03 15:21:16.254000             🧑  作者: Mango

WSDL-示例

WSDL全称是“Web Services Description Language”,中文名为“Web服务描述语言”。是一种XML文档格式,用于描述Web服务中提供的接口信息。通过WSDL文件,可以清晰地了解Web服务提供的接口及其参数、返回值等详细信息。

WSDL文件结构

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>

其中,getProductRequestgetProductResponse是消息的名称,productIdproduct是消息的参数名,xsd:stringtns:Product是参数类型。

声明操作

WSDL文件中的操作描述Web服务的功能,用<portType><operation>标签表示。

<portType name="ProductOperations">
   <operation name="getProduct">
      <input message="tns:getProductRequest"/>
      <output message="tns:getProductResponse"/>
   </operation>
</portType>

其中,ProductOperations是操作的名称,getProduct是操作的方法名,tns:getProductRequesttns: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服务。