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