#php #xml #web-services #soap #soapui
#php #xml #веб-сервисы #мыло #соапуи
Вопрос:
У меня есть веб-сервис, XML-ответ которого подается через PHP, вот так:
Array ( [0] =gt; Array ( [name] =gt; Jane [surname] =gt; Doe [country] =gt; Rwanda ) [1] =gt; Array ( [name] =gt; John [surname] =gt; Doe [country] =gt; Gibraltar ) )
Я обслуживаю его таким образом с помощью PHP:
$server-gt;WebWsdl-gt;addComplexType( 'PersonsArray', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array( array( 'ref' =gt; 'SOAP-ENC:arrayType', 'wsdl:arrayType' =gt; 'tns:Persons[]' ) ), 'tns:Persons' ); $serv-gt;WebWsdl-gt;addComplexType( 'Person', 'complexType', 'struct', 'all', '', array( 'name' =gt; array('name'=gt;'name','type'=gt;'xsd:string'), 'surname' =gt; array('name'=gt;'surname','type'=gt;'xsd:string'), 'country' =gt; array('name'=gt;'country','type'=gt;'xsd:string'), ) );
Тестирование ответа с помощью SOAPUI:
lt;SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://tests/soap/WebServices"gt; lt;SOAP-ENV:Bodygt; lt;ns1:RetrievePersons xmlns:ns1="https://tests/webservices"gt; lt;info xsi:type="tns:Persons"/gt; lt;/ns1:RetrievePersonsgt; lt;/SOAP-ENV:Bodygt; lt;/SOAP-ENV:Envelopegt;
Я ожидал, что в ответе веб-службы он вернет элемент info, который представляет собой массив с каждым массивом лиц (с именем, фамилией и страной).
Кто-нибудь знает, почему он не извлекает массивы с информацией о лицах?