WSDL <binding>元素
WSDL <binding>元素提供了有關如何通過線路傳輸portType實際操作的具體細節。
- 綁定可以通過多種傳輸方式提供,包括HTTP GET,HTTP POST或SOAP。
- 綁定提供了有關用於傳輸
portType操作的協議的具體信息。 - 綁定提供服務所在的信息。
- 對於SOAP協議,綁定是使用
<soap:binding>,表示傳輸是基於HTTP協議的SOAP消息。 - 可以爲單個
portType指定多個綁定。
綁定元素有兩個屬性:name和type屬性。
<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
此元素用於指定輸入和輸出消息的詳細信息。 對於HelloWorld,body元素指定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>