WSDL SOAP 绑定
? WSDL包含一個對于SOAP 1.1終端節點的綁定,它支持如下端口指定消息:
? ?一個版綁定到SOAP1.1端口的指示。
? ?為一個SOAP端點指定一個地址的方式
? 為SOAPAction HTTP 頭的URI
? ? 被傳送作為SOAP Envelope的一部分被傳遞的頭的定義列表
? ? SOAP綁定沒有擁有一個URI地址模式可能代替其他地址模式通過代替這soap:address元素。
? ? SOAP綁定不需要一個SOAPAction忽略掉soapAciton屬性的定義。
3.3 soap 綁定
? 這SOAP綁定元素的目的是為了標示這綁定屬于這SOAP協議格式:Envelope,Header,和Body。這個元素沒有消息的編碼和格式做任何聲明。
? 這SOAP:binding 元素必需被程序當使用這SOAP綁定時。
? ?<definitions...>
? ? ? ? ? ? <binding....>
? ? ? ? ? ? ? ? ? ? ? ?<soap:binding transport="uri"?style="rpc|document"?>
? ? ? ? ? ?</binding>
? </definitions>
這style屬性的指對于每個包含的的操作是默認的。如果這style屬性被忽略,它被認為是“document".這需要的transport屬性的值指示了那個SOAP的transport應該依據。這URI的值“http://schemas.xmlsoap.org/soap/http"依據與這HTTP邦迪在SOAP說明中。
3.4 SOAP操作
?這soap:operation元素提供了操作的信息。
? <definitions...>
? ? ? ? <binding...>
? ? ? ? ? ? ? ? ? ? <operation...>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <soap:operation soapAction="uri"?style="rpc|document">?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?</operation>
</definitions>
這style屬性指示這個操作是否是面向RPC的(包含參數和返回值的消息)或者面向文檔的(消息包含文檔)。這個小能夠被用來選擇合適的編程模型。這個屬性的值也影響這SOAP消息的Body如何被構造。如果這屬性沒有被指定,它對于值的指定在soap:binding元素。如果這soap:binding延伸沒有指定style,它被認為是”document“。
?這soapAction屬性指定了SoapAciton頭的值。這個URI值應該被直接使用作為SOAPAction頭的值。這個屬性值是必需的。對于其他SOAP協議綁定,它禁止被指定,和這soap:operation元素可能被忽略。
3.5 soap:body
這soap:body元素指定了消息部分怎樣出現在SOAP Body元素內。
? 一個消息的部分可能是類型定義或 具體模式定義的抽象。它取決與消息的讀者來理解所有格式的變量。為了避免支持所有的變量,一個消息可能被定義和指示它的原來編碼風格作為提示。在這個例子中,消息的作者必需遵守指定的schema。
? ? ? ?如果這操作的style是rpc,每個部分是一個參數或者一個返回值和出現在一個折疊的元素內。這折疊的員被命名到這操作的名字和它的命名空間是命名空間的屬性的值。每個消息的部分似乎在wrapper下。
如果這操作的style是文檔,沒有額外的wrappers,和消息的部分直接在SOAP Body元素下。
這可選的參數parts屬性指示那個出現SOAP BOdy這消息部分的某處(其他的部分可能出現在其他的消息的部分)。如果這parts屬性被忽略,所有其他的parts由消息定義的被認為包含在SOAP Body部分。
? ?這需要use屬性指示是否消息部分被編碼使用一些編碼規則,或者是否定義具體的消息規則。
? 如果use是encoded,每個消息部分引用一個抽象的類型使用這type屬性。這寫抽象的類型被使用來產生一個具體的消息通過運用一個encoding指定有encodingStyle屬性。這names,types和namespace的值是所有輸入對于這編碼,盡管這命名空間屬性應用到沒有明確被地溝油有這抽象的類型。如果這引用的編碼風格運行變量在它的格式,所有的變量必需被支持。
如果use是literal,每個部分的引用一個具體的模式定義使用元素或者類型屬性。在這第一個例子中,這元素引用經直接出現在Body元素的下面或者一個accessor元素一部分對于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員運行核對被定義。它被格式化在soap:body元素的后面。
? 它不是必需的。
?這message屬性和part屬性引用這消息部分定義了頭部類型。這模式引用可能包含soap:actor和soap:mustUnderstand屬性的定義如果使用use=”literal“,但是禁止如果使用use=”encoded“。這引用的消息不要和定義在SOAP BOdy中的消息一樣。
?這可選的headerfault延伸出現在soap:header和有同一的語法與soap:header)用于傳送錯誤消息與頭部定義有關。這SOAP標準的狀態發出與頭部相關必需被換在頭部和他的機制運行這樣頭部的格式標準。
3.8 soap:address
?這SOAP地址綁定被用來給出一個端口地址。一個端口使用SOAP綁定必需指定恰當的一個地址。這URI模式指定地址必需遇見有soap:binding的tuansport。
總結
以上是生活随笔為你收集整理的WSDL SOAP 绑定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WSDL语法
- 下一篇: Anroid推送服务