WSDL - portType元素

< portType> 元素组合多个消息元素以形成完整的单向或往返操作.

例如,a < 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>

请求 - 响应

服务收到一条消息并发送响应.因此,该操作具有一个输入元素,后跟一个输出元素.要封装错误,还可以指定可选的 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>

征求回复

服务发送消息并收到回复.因此,该操作具有一个输出元素,后跟一个输入元素.要封装错误,还可以指定可选的 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>

通知

服务发送消息.因此,该操作具有单个输出元素.以下是通知操作的语法 :

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