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