Учебники

WSDL — элемент

Элемент <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>

уведомление

Служба отправляет сообщение. Следовательно, операция имеет один выходной элемент. Ниже приведена грамматика для операции уведомления: