Дополнительные части сообщения в WSDL - PullRequest
14 голосов
/ 30 ноября 2011

В моем wsdl: сообщении я получил два параметра: имя и фамилию:

<message name="setName">
  <part name="firstname" type="xsd:string"></part>
  <part name="lastname" type="xsd:string"></part>
</message> 

Я хочу определить часть «firstname», как требуется, и часть «lastname» как необязательную.Как мне это сделать?

Ответы [ 2 ]

18 голосов
/ 24 января 2012

В WSDL запчасти не могут быть опциональными. Они всегда необходимы. Если вам нужны дополнительные детали, вам придется создать одну деталь, которая ссылается на XSD complexType, который затем может иметь дополнительные элементы.

5 голосов
/ 14 июня 2016

Вы можете добавить обнуляемый к фамилию , поэтому имя обязательно:

<message name="setName">
    <part name="firstname" type="xsd:string"></part>
    <part name="lastname" xsi:nil="true" type="xsd:string"></part>
</message> 

Если вы сделаете это, ваше тело мылавыглядеть следующим образом (пустая или заполненная фамилия ):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:user="http://www.example.com/MyService/">
   <soapenv:Header/>
   <soapenv:Body>
      <user:setName>
         <firstname>John</firstname>
         <lastname></lastname>
      </user:setName>
   </soapenv:Body>
</soapenv:Envelope>

Или даже без фамилия :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:user="http://www.example.com/MyService/">
   <soapenv:Header/>
   <soapenv:Body>
      <user:setName>
         <firstname>John</firstname>
      </user:setName>
   </soapenv:Body>
</soapenv:Envelope>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...