WSDL消息交換模式
WSDL消息交換模式是什麼? WSDL消息交換模式是抽象接口中的操作的預定義輸入/輸出消息序列。 每個模式由唯一URI表示,可以將patterns
屬性指定爲操作的模式。
WSDL 2.0規範(WSDL Version 2.0 Part 2:Adjuncts)提供了 3 種預定義模式:In-Only,Robust In-Only和In-Out。
第1種 - In-Only
,由URI表示爲:http://www.w3.org/ns/wsdl/in-only
- In-Only
模式僅定義一條進入此操作的服務提供者的單個消息。 此消息標籤爲In
,方向爲in
。 In-Only
模式不允許任何故障消息。 以下是使用In-Only
模式的操作示例:
<wsdl:operation name="SnowDay"
pattern="http://www.w3.org/ns/wsdl/in-only" style="http://www.w3.org/ns/wsdl/style/iri">
<wsdl:input messageLabel="In" element="hy:SnowDayAnnouncement"/>
</wsdl:operation>
第2種 - Robust In-Only
,由URI表示爲:http://www.w3.org/ns/wsdl/robust-in-only
- Robust In-Only模式僅定義了一條進入此操作的服務提供者的單條消息。 此消息標籤爲In
,方向爲in
。 Robust In-Only模式需要在out
方向上發送故障消息。 如果需要,輸入消息將觸發故障消息。 以下是使用Robust In-Only模式的操作示例:
<wsdl:interface name="AlertInterface" >
<wsdl:fault name="invalidEmailFault" element="InvalidEmail"/>
<wsdl:operation name="SendAlert" pattern="http://www.w3.org/ns/wsdl/robust-in-only" style="http://www.w3.org/ns/wsdl/style/iri">
<wsdl:input messageLabel="In" element="hy:AlertEmail"/>
<wsdl:outfault ref="invalidEmailFault" messageLabel="Out"/>
</wsdl:operation>
</wsdl:interface>
第3種 - 輸入輸出,由URI表示爲:http://www.w3.org/ns/wsdl/in-out
- 輸入輸出模式定義 2 條消息:輸入消息後跟輸出消息。 輸入消息標記爲In
,方向爲in
。 輸出消息標記爲「Out」,方向爲「out」。 輸入輸出模式需要在「輸出」方向上輸出故障信息。 如果需要,服務提供商可以通過故障消息替換輸出消息。 以下是使用In-Out模式的操作示例:
<wsdl:interface name="GetQuoteInterface" >
<wsdl:fault name="marketClosedFault" element="MarketClosed"/>
<wsdl:operation name="GetQuote" pattern="http://www.w3.org/ns/wsdl/in-out" style="http://www.w3.org/ns/wsdl/style/iri">
<wsdl:input messageLabel="In" element="hy:GetQuoteRequest"/>
<wsdl:output messageLabel="Out" element="hy:GetQuoteResponse"/>
<wsdl:outfault ref="marketClosedFault" messageLabel="Out"/>
</wsdl:operation>
</wsdl:interface>
一些網站包括其他消息交換模式,如In-Optional-Out
,Out-Only
,Rob-Out-Out
,Out-In
,Out-Optional-In
等作爲WSDL 2.0的一部分。 但好像還無法在WSDL 2.0 2007規範中找到它們。