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 支持四种基本操作模式 -
单程
该服务接收一条消息。因此,该操作具有单个输入元素。单向操作的语法是 -
<wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name = "nmtoken"> <wsdl:input name = "nmtoken"? message = "qname"/> </wsdl:operation> </wsdl:portType > </wsdl:definitions>
请求-响应
该服务接收消息并发送响应。因此,该操作具有一个输入元素,后面跟着一个输出元素。为了封装错误,还可以指定可选的故障元素。请求-响应操作的语法是 -
<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>
征求-回应
该服务发送消息并接收响应。因此,该操作具有一个输出元素,后面跟着一个输入元素。为了封装错误,还可以指定可选的故障元素。请求-响应操作的语法是 -
<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>
通知
该服务发送一条消息。因此,该操作具有单个输出元素。以下是通知操作的语法 -
<wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name = "nmtoken"> <wsdl:output name = "nmtoken"? message = "qname"/> </wsdl:operation> </wsdl:portType> </wsdl:definitions>