WSDL - element <portType>

Plik <portType> element łączy wiele elementów wiadomości, tworząc pełną operację w jedną stronę lub w obie strony.

Na przykład plik <portType>może łączyć jedno żądanie i jeden komunikat odpowiedzi w jedną operację żądania / odpowiedzi. Jest to najczęściej używane w usługach SOAP. PortType może definiować wiele operacji.

Weźmy fragment kodu z rozdziału Przykład WSDL -

<portType name = "Hello_PortType">
   <operation name = "sayHello">
      <input message = "tns:SayHelloRequest"/>
      <output message = "tns:SayHelloResponse"/>
   </operation>
</portType>
  • Element portType definiuje pojedynczą operację o nazwie sayHello .

  • Operacja składa się z pojedynczego komunikatu wejściowego SayHelloRequest i pliku

  • komunikat wyjściowy SayHelloResponse .

Wzorce działania

WSDL obsługuje cztery podstawowe wzorce działania -

Jednokierunkowa

Usługa otrzymuje wiadomość. Dlatego operacja ma jeden element wejściowy . Gramatyka dla operacji jednokierunkowej to -

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

Wymagać odpowiedzi

Usługa odbiera wiadomość i wysyła odpowiedź. Operacja ma zatem jeden element wejściowy , po którym następuje jeden element wyjściowy . Aby hermetyzować błędy, można również określić opcjonalny element błędu . Gramatyka operacji żądanie-odpowiedź to -

<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>

Prośba o odpowiedź

Usługa wysyła wiadomość i otrzymuje odpowiedź. Dlatego operacja ma jeden element wyjściowy , po którym następuje jeden element wejściowy . Aby hermetyzować błędy, można również określić opcjonalny element błędu . Gramatyka dla operacji prośby o odpowiedź to -

<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>

Powiadomienie

Usługa wysyła wiadomość. Dlatego operacja ma jeden element wyjściowy . Poniżej znajduje się gramatyka operacji powiadamiania -

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