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>