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規範中找到它們。