WSDL 绑定


WSDL 绑定

WSDL 绑定是一种描述如何将 SOAP 消息格式映射到底层协议和传输格式的技术。WSDL 绑定允许定义如何将 WSDL 端口的输入和输出消息映射到底层协议上。绑定主要应用于 SOAP 消息,它将 WSDL 描述的 XML 文档格式转化为传输协议的格式。

绑定元素

WSDL 绑定由三个主要元素组成:binding、operation 和 message。

binding

binding 元素在 WSDL 中定义了一个端口类型与一个具体协议绑定的关系。它的属性主要包括 name、type 和 transport。其中 name 属性表示绑定的名称;type 属性表示端口类型;transport 属性则表示消息的传输协议。比如,如果要使用 HTTP 协议传输 SOAP 消息,则应设置 transport 属性为 http://schemas.xmlsoap.org/soap/http

operation

operation 元素定义了一个绑定的操作,它包含了输入和输出消息的格式与具体的协议绑定。operation 的属性主要包括 name 和 parameterOrder。其中 name 属性表示操作的名称;parameterOrder 属性表示输入参数的顺序。

message

message 元素的主要作用是定义 WSDL 一个输入或输出消息的格式。它定义了如何在 SOAP 消息中编码不同类型的数据,并以一种标准的方式来传递它们。message 的属性主要包括 name 和 element。其中 name 属性为消息的名称;element 属性则为 XML 元素的名称。

绑定实例

下面是一个简单的 WSDL 绑定实例:

<binding name="CalculatorSoap" type="tns:CalculatorSoap">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
  <operation name="Add">
    <soap:operation soapAction="http://tempuri.org/Add" />
    <input>
      <soap:body use="literal" />
    </input>
    <output>
      <soap:body use="literal" />
    </output>
  </operation>
  <operation name="Subtract">
    <soap:operation soapAction="http://tempuri.org/Subtract" />
    <input>
      <soap:body use="literal" />
    </input>
    <output>
      <soap:body use="literal" />
    </output>
  </operation>
</binding>

此绑定定义了名为 Calculator 的端口类型与 SOAP 的绑定关系。它包含了两个操作:Add 和 Subtract。在每一个操作中,包含了与它对应的输入和输出消息的定义。可以看到,此绑定将使用 HTTP 协议来传输 SOAP 消息。

总结

WSDL 绑定是一种重要的技术,它主要用于定义 SOAP 消息的格式和与底层协议的映射关系。使用 WSDL 绑定可以帮助我们更好地理解 SOAP 消息的传输方式和协议格式。了解 WSDL 绑定的基本概念和语法规则有助于我们更好地理解和设计 SOAP Web 服务。