- WSDL 元素
- WSDL - <definitions>
- WSDL - <types>
- WSDL - <message>
- WSDL - <portType>
- WSDL - <binding>
- WSDL - <ports>
- WSDL - <service>
- WSDL 实用资源
- WSDL - 快速指南
- WSDL - 实用资源
- WSDL - 讨论
WSDL - <portType> 元素
<portType> 元素将多个消息元素结合起来,形成一个完整的单向或一个往返操作。
例如,<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 支持四种基本操作模式 -
单向
服务接收一条消息。因此,操作只有一个 input 元素。单向操作的语法是 -
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken">
<wsdl:input name = "nmtoken"? message = "qname"/>
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
请求响应
服务接收一条消息并发送一个响应。因此,操作有一个 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>
请求响应
服务发送一条消息并接收一个响应。因此,操作有一个 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>
通知
服务发送一条消息。因此,操作只有一个 output 元素。以下是通知操作的语法 -
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken">
<wsdl:output name = "nmtoken"? message = "qname"/>
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>
广告