WSDL2.0 <interface>元素

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操作定义故障消息,但可以在之后再添加。