SOAP XML действительный xsi: type - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь написать вызов SOAP, и пример запроса выглядит следующим образом:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://server.opsware.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:attachPolicies soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <self xsi:type="xsd:anyType">?</self>
         <policies xsi:type="ser:ArrayOf_xsd_anyType" soapenc:arrayType="xsd:anyType[]"/>
      </ser:attachPolicies>
   </soapenv:Body>
</soapenv:Envelope>

Любые идеи о том, что может означать ArrayOf_xsd_anyType или как я могу найти действительные варианты для этого?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Имя ser:ArrayOf_xsd_anyType относится к типу, который вы ожидаете найти, определенному в схеме для пространства имен xmlns:ser="http://server.opsware.com".

Я не знаю, где найти эту схему;получатель этого сообщения должен знать об этом.Возможно эта страница поможет: https://en.wikipedia.org/wiki/Opsware

0 голосов
/ 28 ноября 2018

Просто, чтобы уточнить вашу терминологию, вы продемонстрировали не WSDL, а пример запроса SOAP для службы SOAP.WSDL - это XML-документ, описывающий типы XML, используемые в запросе и ответе, а также сведения о PortType, Binding и Service.

Что касается anyType, эта ссылка обеспечивает четкий обзориспользуется: https://www.ibm.com/support/knowledgecenter/SSFTDH_8.0.0/com.ibm.wbpm.main.doc/topics/cbo_usinganytype.html

Но TL; DR таков: «anyType разрешает любой объект DataObject независимо от его типа. Если maxOccurs> 1, то каждый объект DataObject в списке может [быть] другого типа».

Это контраст с «complexType», который ограничен одним типом.Например, если у вас был массив данных complexType, тогда значения ВСЕХ массивов должны быть одного типа («Клиент», «Адрес» и т. Д.).

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