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>