WSDL SOAP 绑定
? WSDL包含一個(gè)對(duì)于SOAP 1.1終端節(jié)點(diǎn)的綁定,它支持如下端口指定消息:
? ?一個(gè)版綁定到SOAP1.1端口的指示。
? ?為一個(gè)SOAP端點(diǎn)指定一個(gè)地址的方式
? 為SOAPAction HTTP 頭的URI
? ? 被傳送作為SOAP Envelope的一部分被傳遞的頭的定義列表
? ? SOAP綁定沒有擁有一個(gè)URI地址模式可能代替其他地址模式通過代替這soap:address元素。
? ? SOAP綁定不需要一個(gè)SOAPAction忽略掉soapAciton屬性的定義。
3.3 soap 綁定
? 這SOAP綁定元素的目的是為了標(biāo)示這綁定屬于這SOAP協(xié)議格式:Envelope,Header,和Body。這個(gè)元素沒有消息的編碼和格式做任何聲明。
? 這SOAP:binding 元素必需被程序當(dāng)使用這SOAP綁定時(shí)。
? ?<definitions...>
? ? ? ? ? ? <binding....>
? ? ? ? ? ? ? ? ? ? ? ?<soap:binding transport="uri"?style="rpc|document"?>
? ? ? ? ? ?</binding>
? </definitions>
這style屬性的指對(duì)于每個(gè)包含的的操作是默認(rèn)的。如果這style屬性被忽略,它被認(rèn)為是“document".這需要的transport屬性的值指示了那個(gè)SOAP的transport應(yīng)該依據(jù)。這URI的值“http://schemas.xmlsoap.org/soap/http"依據(jù)與這HTTP邦迪在SOAP說(shuō)明中。
3.4 SOAP操作
?這soap:operation元素提供了操作的信息。
? <definitions...>
? ? ? ? <binding...>
? ? ? ? ? ? ? ? ? ? <operation...>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <soap:operation soapAction="uri"?style="rpc|document">?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?</operation>
</definitions>
這style屬性指示這個(gè)操作是否是面向RPC的(包含參數(shù)和返回值的消息)或者面向文檔的(消息包含文檔)。這個(gè)小能夠被用來(lái)選擇合適的編程模型。這個(gè)屬性的值也影響這SOAP消息的Body如何被構(gòu)造。如果這屬性沒有被指定,它對(duì)于值的指定在soap:binding元素。如果這soap:binding延伸沒有指定style,它被認(rèn)為是”document“。
?這soapAction屬性指定了SoapAciton頭的值。這個(gè)URI值應(yīng)該被直接使用作為SOAPAction頭的值。這個(gè)屬性值是必需的。對(duì)于其他SOAP協(xié)議綁定,它禁止被指定,和這soap:operation元素可能被忽略。
3.5 soap:body
這soap:body元素指定了消息部分怎樣出現(xiàn)在SOAP Body元素內(nèi)。
? 一個(gè)消息的部分可能是類型定義或 具體模式定義的抽象。它取決與消息的讀者來(lái)理解所有格式的變量。為了避免支持所有的變量,一個(gè)消息可能被定義和指示它的原來(lái)編碼風(fēng)格作為提示。在這個(gè)例子中,消息的作者必需遵守指定的schema。
? ? ? ?如果這操作的style是rpc,每個(gè)部分是一個(gè)參數(shù)或者一個(gè)返回值和出現(xiàn)在一個(gè)折疊的元素內(nèi)。這折疊的員被命名到這操作的名字和它的命名空間是命名空間的屬性的值。每個(gè)消息的部分似乎在wrapper下。
如果這操作的style是文檔,沒有額外的wrappers,和消息的部分直接在SOAP Body元素下。
這可選的參數(shù)parts屬性指示那個(gè)出現(xiàn)SOAP BOdy這消息部分的某處(其他的部分可能出現(xiàn)在其他的消息的部分)。如果這parts屬性被忽略,所有其他的parts由消息定義的被認(rèn)為包含在SOAP Body部分。
? ?這需要use屬性指示是否消息部分被編碼使用一些編碼規(guī)則,或者是否定義具體的消息規(guī)則。
? 如果use是encoded,每個(gè)消息部分引用一個(gè)抽象的類型使用這type屬性。這寫抽象的類型被使用來(lái)產(chǎn)生一個(gè)具體的消息通過運(yùn)用一個(gè)encoding指定有encodingStyle屬性。這names,types和namespace的值是所有輸入對(duì)于這編碼,盡管這命名空間屬性應(yīng)用到?jīng)]有明確被地溝油有這抽象的類型。如果這引用的編碼風(fēng)格運(yùn)行變量在它的格式,所有的變量必需被支持。
如果use是literal,每個(gè)部分的引用一個(gè)具體的模式定義使用元素或者類型屬性。在這第一個(gè)例子中,這元素引用經(jīng)直接出現(xiàn)在Body元素的下面或者一個(gè)accessor元素一部分對(duì)于rpc
If use is?literal, then each part references a concrete schema definition using either the?element?or?type?attribute. In the first case, the element referenced by the part will appear directly under the Body element (for document style bindings) or under an accessor element named after the message part (in rpc style). In the second, the type referenced by the part becomes the schema type of the enclosing element (Body for document style or part accessor element for rpc style). For an example that illustrates defining the contents of a composite Body using a type, see?section 2.3.1.? The value of the?encodingStyle?attribute MAY be used when the use is literal to indicate that the concrete format was derived using a particular encoding (such as the SOAP encoding), but that only the specified variation is supported ("writer makes right").
3.7 soap:header 和soap:headerfault
? ?這soap:header和soap:headerfault員運(yùn)行核對(duì)被定義。它被格式化在soap:body元素的后面。
? 它不是必需的。
?這message屬性和part屬性引用這消息部分定義了頭部類型。這模式引用可能包含soap:actor和soap:mustUnderstand屬性的定義如果使用use=”literal“,但是禁止如果使用use=”encoded“。這引用的消息不要和定義在SOAP BOdy中的消息一樣。
?這可選的headerfault延伸出現(xiàn)在soap:header和有同一的語(yǔ)法與soap:header)用于傳送錯(cuò)誤消息與頭部定義有關(guān)。這SOAP標(biāo)準(zhǔn)的狀態(tài)發(fā)出與頭部相關(guān)必需被換在頭部和他的機(jī)制運(yùn)行這樣頭部的格式標(biāo)準(zhǔn)。
3.8 soap:address
?這SOAP地址綁定被用來(lái)給出一個(gè)端口地址。一個(gè)端口使用SOAP綁定必需指定恰當(dāng)?shù)囊粋€(gè)地址。這URI模式指定地址必需遇見有soap:binding的tuansport。
總結(jié)
以上是生活随笔為你收集整理的WSDL SOAP 绑定的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WSDL语法
- 下一篇: Anroid推送服务