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>