当前位置: 首页 > 教程 > WSDL >

WSDL消息交换模式

精华
小牛编辑
102浏览
2023-03-14

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