Как правильно добавлять атрибуты в SOAP запрос посредством SoapVar?

Нужно сгенерировать такой XML средствами через SoapClient. Удаленный сервис wsdl не предоставляет.

<sys:Test attr1="val1" attr2="val2" xmlns:sys="http://www.test.com/schema/system_v1">
            <sys:Val attr="val">blablabla</sys:Val>
</sys:Test>


Как правильно передать атрибуты в функцию $client->Test($params), где $params = new SoapVar('test', XSD_STRING), чтобы получить описанный выше XML-код.

Нашел на php.net такой вариант:
$tag[]['_'] = 'yyy'; 
$tag[]['attr'] = 'xxx'; 
$tagVar = new SoapVar($tag, SOAP_ENC_OBJECT);


Но он вместо параметров генерирует иерархическое xml-дерево и всё равно не совсем понятно как добавить атрибуты в саму функцию. Хочется найти наиболее прямой вариант без переопределения всего и всея (например, метода __doRequest).

Заранее спасибо.
  • Вопрос задан
  • 3488 просмотров
Пригласить эксперта
Ответы на вопрос 1
@s0rr0w
Скорее всего, только при помощи низкоуровневой генерации XML-ответа при помощи DOM или SimpleXML, c использованием метода __doRequest
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы