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规范中找到它们。