Элемент <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 .
Элемент 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>
уведомление
Служба отправляет сообщение. Следовательно, операция имеет один выходной элемент. Ниже приведена грамматика для операции уведомления: