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

WSDL2.0 <interface>元素

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

WSDL2.0 <interface>元素是WSDL 2.0文档的顶级元素。<interface>用于定义具有<operation>子元素的一个或多个操作的接口。 使用一系列输入和输出消息定义操作以形成输入-输出模式。

WSDL 2.0支持 3 种预定义的输入输出模式:

  • in-only - 仅输入:端点接收消息并且不发送任何响应。
  • robust-in-only - 仅输入:端点接收消息并且不发送任何响应。
  • in-out - 输入后跟输出:端点接收消息并发回响应。

WSDL2.0 <interface>元素的语法如下所示:

<wsdl:interface name="nmtoken0" extends="qname_list"
    styleDefault="uri_list">

    <wsdl:fault name="nmtoken1" element="qname1"/>
    ...

    <-- in-only operation -->
    <wsdl:operation name="nmtoken2" pattern="uri" style="uri_list">
      <wsdl:input messageLabel="name" element="qname1"/>
      <wsdl:infault ref="qname2" messageLabel="In"/>
    </wsdl:operation>

    <-- in-out operation -->
    <wsdl:operation name="nmtoken2" pattern="uri" style="uri_list">
      <wsdl:input messageLabel="name" element="qname1"/>
      <wsdl:output messageLabel="name" element="qname1"/>
      <wsdl:infault ref="qname2" messageLabel="name"/>
      <wsdl:outfault ref="qname2" messageLabel="name"/>
    </wsdl:operation>

    ...
  </wsdl:interface >

以下是关于<interface>元素的解释:

  • name="nmtoken0" - 为接口提供引用名称。
  • extends="qname_list" - 提供基础接口列表。
  • styleDefault="uri_list" - 提供此接口的默认样式列表。
  • name="nmtoken1" - 提供此故障消息的引用名称。
  • element="qname1" - 指定此故障的数据元素,inout消息。
  • name="nmtoken2" - 为此操作提供引用名称。
  • pattern="uri" - 指定此操作的消息模式。
  • style="uri_list" - 提供此操作的样式列表。
  • messageLabel="name" - 指定消息标签,该标签应与消息交换模式中的消息占位符名称匹配。
  • ref="qname2" - 指定要在此操作中使用的故障消息。

以下是<interface>元素的示例:

<wsdl:interface name="helloInterface" >
    <wsdl:operation name="Hello" 
      pattern="http://www.w3.org/ns/wsdl/in-out" 
      style="http://www.w3.org/ns/wsdl/style/iri">
      <wsdl:input messageLabel="In" element="hy:Hello"/>
      <wsdl:output messageLabel="Out" element="hy:HelloResponse"/>
    </wsdl:operation>
  </wsdl:interface>

在上面示例代码中,

  • 接口helloInterface由一个名称为Hello的操作定义。
  • 操作Hello定义为带输入和输出的InOut操作。
  • 输入定义为使用数据元素 - HelloRequest
  • 输出定义为使用数据元素 - HelloResponse
  • 没有为Hello操作定义故障消息,但可以在之后再添加。