Почему WSDL вводит wsdl: message? - PullRequest
4 голосов
/ 27 ноября 2010

Почему WSDL вводит wsdl: message?А части сообщения?

Какое преимущество они могут принести по сравнению с прямым использованием XSD в параметрах операций (вход, выход, ошибка)?

Как их (сообщений wsdl с частями сообщений wsdl) можно увеличитьабстрактный тогда XSD?

Почему это не организовано, например, так:

<operation name="GetEndorsingBoarder"> 
  <input type="xsd:string"/> 
  <output type="xsd:string, xsd:int, xsd:boolean"/> 
  <fault "type="xsd:string""/> 
</operation>

Ответы [ 2 ]

1 голос
/ 27 ноября 2010

Понял:

Сообщения не просто указывают параметры операции.

Сообщения и их части приведены в привязках.Должна быть возможность связывать разные части по-разному:

<message name="m1">
    <part name="body" element="tns:GetCompanyInfo"/>
</message>

<message name="m2">
    <part name="body" element="tns:GetCompanyInfoResult"/>
    <part name="docs" type="xsd:string"/>
    <part name="logo" type="tns:ArrayOfBinary"/>
</message>

<portType name="pt1">
    <operation name="GetCompanyInfo">
       <input message="m1"/>
       <output message="m2"/>
    </operation>
</portType>

 <binding name="b1" type="tns:pt1">
        <operation name="GetCompanyInfo">
           <soap:operation soapAction="http://example.com/GetCompanyInfo"/>
           <input>
               <soap:body use="literal"/>
           </input>
           <output>
               <mime:multipartRelated>
                   <mime:part>
                       <soap:body parts="body" use="literal"/>
                   </mime:part>
                   <mime:part>
                       <mime:content part="docs" type="text/html"/>
                   </mime:part>
                   <mime:part>
                       <mime:content part="logo" type="image/gif"/>
                       <mime:content part="logo" type="image/jpeg"/>
                   </mime:part>
               </mime:multipartRelated>
           </output>
        </operation>
    </binding>

Я пропустил это, поскольку привязки "non SOAP 'literal' настолько необычны.

0 голосов
/ 27 ноября 2010

A XSD описывает аспекты DATA, например, аспекты данных вызова веб-службы, тогда как WSDL описывает назначение веб-служб (вызовы метода). Обычно вы не можете определить вызовы метода только из ваших данных.

Проверьте ответы Cheeso и Marc на Создание WSDL из файла XSD

РЕДАКТИРОВАТЬ: источник

message описывает данные, которыми обмениваются между поставщиком и потребителем веб-служб, и каждая веб-служба имеет два сообщения: 1) вход: параметры веб-сервиса 2) вывод: возврат данных из веб-сервиса

Каждый message имеет ноль или более параметров part (по одному для каждого параметра функции веб-службы). Каждый параметр part связан с конкретным типом, определенным в элементе контейнера types.

   <message name="SayHelloRequest">
      <part name="firstName" type="xsd:string"/>
   </message>
   <message name="SayHelloResponse">
      <part name="greeting" type="xsd:string"/>
   </message>

Здесь определены два элемента сообщения. Первый представляет сообщение запроса SayHelloRequest, а второй представляет ответное сообщение SayHelloResponse.

Каждое из этих сообщений содержит один элемент part. Для запроса часть определяет параметры функции; в этом случае мы указываем один параметр firstName. Для ответа часть определяет возвращаемые значения функции; в этом случае мы указываем одно возвращаемое значение приветствия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...