WSDL <binding>元素

WSDL <binding>元素提供了有關如何通過線路傳輸portType實際操作的具體細節。

  • 綁定可以通過多種傳輸方式提供,包括HTTP GET,HTTP POST或SOAP。
  • 綁定提供了有關用於傳輸portType操作的協議的具體信息。
  • 綁定提供服務所在的信息。
  • 對於SOAP協議,綁定是使用<soap:binding>,表示傳輸是基於HTTP協議的SOAP消息。
  • 可以爲單個portType指定多個綁定。

綁定元素有兩個屬性:nametype屬性。

<binding name = "Hello_Binding" type = "tns:Hello_PortType">

在上面示例代碼中,name屬性定義綁定的名稱,type屬性指向綁定的端口,在本例中爲tns:Hello_PortType端口。

SOAP綁定

WSDL 1.1 包含SOAP 1.1的內置擴展。它允許指定SOAP特定的詳細信息,包括SOAP標頭,SOAP編碼樣式和SOAPAction HTTP標頭。 SOAP擴展元素包括以下內容 -

  • soap:binding
  • soap:operation
  • soap:body

soap:binding

此元素表示將通過SOAP提供綁定。 style屬性指示SOAP消息格式的整體樣式。 style的值rpc指定RPC格式。

transport屬性指示SOAP消息的傳輸。 http://schemas.xmlsoap.org/soap/http值表示SOAP HTTP傳輸,而http://schemas.xmlsoap.org/soap/smtp 表示SOAP SMTP傳輸。

soap:operation

此元素指示特定操作與特定SOAP實現的綁定。 soapAction屬性指定SOAPAction HTTP標頭用於標識服務。

soap:body

此元素用於指定輸入和輸出消息的詳細信息。 對於HelloWorldbody元素指定SOAP編碼樣式和與指定服務關聯的名稱空間URN。

以下是示例章節中的代碼段 -

<binding name = "Hello_Binding" type = "tns:Hello_PortType">
   <soap:binding style = "rpc" transport = "http://schemas.xmlsoap.org/soap/http"/>
   <operation name = "sayHello">
      <soap:operation soapAction = "sayHello"/>

      <input>
         <soap:body
            encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
            namespace = "urn:examples:helloservice" use = "encoded"/>
      </input>

      <output>
         <soap:body
            encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
            namespace = "urn:examples:helloservice" use = "encoded"/>
      </output>
   </operation>
</binding>