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