SOAP и вложенные массивы в WSDL

интернет программирование xml SOAP wsdl

Есть SOAP-сервис. В нем есть много разных функций. Сделан на PHP.
Сейчас я пишу вручную WSDL к нему, потому что сгенерированный WSDL прокатывает только в PHP, но не в c# (потому что использование typeAny не дает c# понимания о том, какие там данные передаются и он не может в итоге разобрать нормально ответ).

Итак.

WSDL вот: http://api3.nako-reactor.ru/soap/dev.php?wsdl

В нем есть две функции:
- terminalStatus
- form

** terminalStatus

Получает на входе два простых параметра и на выходе отдает одномерный ассоциативный массив true|false.

С этой функцией я разобрался и сейчас нормально отдается все, что нужно:
http://api3.nako-reactor.ru/test_soap.php

** form

Тут всё плохо. На вход также принимаются простые параметры, но на выходе должно быть вот это:
http://api3.nako-reactor.ru/test_soap_original.php

Однако вместо нужного выдается вот это:
http://api3.nako-reactor.ru/test_soap.php?type=2

Есть догадки, что парсер просто не находит описание сложного типа, поэтому отдает XML, переданный по SOAP в чистом виде.


Специалисты по WSDL, подскажите, где неправильно?
Ответы:
Внимательно смотреть свой код. Есть нативное расширение soap для php, а есть набор классов nusoap. Документированы phpdock`ом, с примерами и хорошим мануалом http://www.phpclub.ru/detail/article/nusoap . Классы с sourceforge тяни (очень желательно из репозитория, т.к. новее).


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.