WSDL消息交換模式

WSDL消息交換模式是什麼? WSDL消息交換模式是抽象接口中的操作的預定義輸入/輸出消息序列。 每個模式由唯一URI表示,可以將patterns屬性指定爲操作的模式。

WSDL 2.0規範(WSDL Version 2.0 Part 2:Adjuncts)提供了 3 種預定義模式:In-OnlyRobust In-OnlyIn-Out

第1種 - In-Only,由URI表示爲:http://www.w3.org/ns/wsdl/in-only - In-Only模式僅定義一條進入此操作的服務提供者的單個消息。 此消息標籤爲In,方向爲inIn-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,方向爲inRobust 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-OutOut-OnlyRob-Out-OutOut-InOut-Optional-In等作爲WSDL 2.0的一部分。 但好像還無法在WSDL 2.0 2007規範中找到它們。