解析Web接口描述語言WSDL(4)_Windows教程
WSDL設(shè)計(jì)繼承了以XML為基礎(chǔ)的當(dāng)代Web技術(shù)標(biāo)準(zhǔn)的開放設(shè)計(jì)理念。它允許通過擴(kuò)展使用其它的類型定義語言(不光是XMI Schema),允許使用多種網(wǎng)絡(luò)傳輸協(xié)議和消息格式(不僅是在規(guī)范中定義的SOAP/HTTP、HTTP-GET/POST及MIME等)。WSDL也應(yīng)用了當(dāng)代軟件工程中的復(fù)用理念,分離了抽象定義層和具體部署層,使得抽象定義層的復(fù)用性大大增加。
1、 SOAP綁定
WSDL包括用于SOAP 1.1終端的綁定,此綁定支持下列協(xié)議信息規(guī)范:
需要指示出此綁定是針對(duì)SOAP 1.1協(xié)議的。
為SOAP 終端指定地址的方式。
用于SOAPAction HTTP頭的URI,而此頭是綁定了SOAP 的HTTP頭。
作為SOAP封裝一部分傳送的頭列表定義。
SOAP綁定使用下列擴(kuò)展元素對(duì)WSDL進(jìn)行擴(kuò)展:(注意黑體標(biāo)注)
<definitions .... >
<binding .... >
<soap:binding style="rpc|document" transport="uri"> …1
<o(jì)peration .... >
<soap:operation soapAction="uri" style="rpc|document"> …2
<input>
<soap:body parts="nmtokens" use="litera |encoded"
encodingStyle="uri-list" namespace="uri">…3
<soap:header message="qname" fault="qname"/> …4
</input>
<o(jì)utput>
<soap:body parts="nmtokens" use="litera |encoded"
encodingStyle="uri-list"? namespace="uri"/>…3
<soap:header message="qname" fault="qname"/> …4
</output>
<fault>
<soap:fault name="nmtoken" use="litera |encoded"
encodingStyle="uri-list" namespace="uri">…5
</fault>
</operation>
</binding>
<port .... >
<soap:address location="uri"/> …6
</port>
</definitions>
1)soap:binding
SOAP綁定元素的目的是指出綁定是針對(duì)SOAP協(xié)議格式的:Envelope, Header 和 Body。這個(gè)元素沒有對(duì)編碼或消息格式進(jìn)行聲明。在使用SOAP綁定時(shí)必須指出soap:binding元素。
2)soap:operation
soap:operation 元素從整體上為操作提供信息。
style屬性指出操作是面向RPC(消息包含參數(shù)和返回值)的還是面向文檔的(消息包含文檔)。此信息可用于選擇合適的編程模板。此屬性的值將影響SOAP消息體的構(gòu)建方式,如果沒有指定值,它默認(rèn)為soap:binding元素中指定的值。如果soap:binding元素沒有指定樣式,它假定為"文檔"。
soapAction屬性為此操作的SOAPAction頭指定了值。此URI應(yīng)當(dāng)被直接用作SOAPAction頭的值,在作出請(qǐng)求時(shí)不要試圖將一個(gè)相對(duì)URI變成絕對(duì)URI。對(duì)于綁定了SOAP的HTTP協(xié)議來說,此值是必需的(它沒有默認(rèn)值)。對(duì)于其它的SOAP協(xié)議綁定,決對(duì)不能為其指定值,而soap:operation元素可以被忽略。
- 相關(guān)鏈接:
- 教程說明:
Windows教程-解析Web接口描述語言WSDL(4)。