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>