WSDL <portType>元素


WSDL <portType>元素組合了多個訊息(<message>)元素,以形成完整的單向或往返操作。

例如,<portType>可以將一個請求和一個響應訊息組合成單個請求/響應操作。 這在SOAP服務中最常用。 portType可以定義多個操作。

下面是從WSDL範例章節中獲取一段程式碼 -

<portType name = "Hello_PortType">
   <operation name = "sayHello">
      <input message = "tns:SayHelloRequest"/>
      <output message = "tns:SayHelloResponse"/>
   </operation>
</portType>

下面是對上面範例程式碼的解釋說明 -

  • portType元素定義了一個名稱為sayHello的操作。
  • 該操作由單個輸入訊息SayHelloRequest和一個輸出訊息SayHelloResponse組成。

操作模式

WSDL支援四種基本操作模式 -

1. 單向操作

該服務收到一條訊息。 因此,操作具有單個input元素。 單向操作的語法是 -

<wsdl:definitions .... > 
   <wsdl:portType .... > *
      <wsdl:operation name = "nmtoken">
         <wsdl:input name = "nmtoken"? message = "qname"/>
      </wsdl:operation>
   </wsdl:portType >
</wsdl:definitions>

2. 請求 - 響應

該服務接收訊息並行送響應。 因此,操作有一個input元素,後跟一個output元素。 要封裝錯誤,還可以指定可選的fault元素。 請求-響應操作的語法是 -

<wsdl:definitions .... >
   <wsdl:portType .... > *
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens">
         <wsdl:input name = "nmtoken"? message = "qname"/>
         <wsdl:output name = "nmtoken"? message = "qname"/>
         <wsdl:fault name = "nmtoken" message = "qname"/>*
      </wsdl:operation>
   </wsdl:portType>
</wsdl:definitions>

3. 詢問 - 響應

該服務傳送訊息並接收響應。 因此,操作有一個output元素,後跟一個input元素。 要封裝錯誤,還可以指定可選的fault元素。 詢問響應操作的語法是 -

<wsdl:definitions .... >
   <wsdl:portType .... > *
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens">
         <wsdl:output name = "nmtoken"? message = "qname"/>
         <wsdl:input name = "nmtoken"? message = "qname"/>
         <wsdl:fault name = "nmtoken" message = "qname"/>*
      </wsdl:operation>
   </wsdl:portType >
</wsdl:definitions>

4. 通知

該服務傳送一條訊息。 因此,操作具有單個input元素。 以下是通知操作的語法 -

<wsdl:definitions .... >
   <wsdl:portType .... > *
      <wsdl:operation name = "nmtoken">
         <wsdl:output name = "nmtoken"? message = "qname"/>
      </wsdl:operation>
   </wsdl:portType>
</wsdl:definitions>