SOAP и вложенные массивы в WSDL
Есть SOAP-сервис. В нем есть много разных функций. Сделан на PHP.
Сейчас я пишу вручную WSDL к нему, потому что сгенерированный WSDL прокатывает только в PHP, но не в c# (потому что использование typeAny не дает c# понимания о том, какие там данные передаются и он не может в итоге разобрать нормально ответ).
Итак.
WSDL вот: http://api3.nako-reactor.ru/soap/dev.php?wsdl
В нем есть две функции:
- terminalStatus
- form
Получает на входе два простых параметра и на выходе отдает одномерный ассоциативный массив true|false.
С этой функцией я разобрался и сейчас нормально отдается все, что нужно:
http://api3.nako-reactor.ru/test_soap.php
Тут всё плохо. На вход также принимаются простые параметры, но на выходе должно быть вот это:
http://api3.nako-reactor.ru/test_soap_original.php
Однако вместо нужного выдается вот это:
http://api3.nako-reactor.ru/test_soap.php?type=2
Есть догадки, что парсер просто не находит описание сложного типа, поэтому отдает XML, переданный по SOAP в чистом виде.
Специалисты по WSDL, подскажите, где неправильно?
Сейчас я пишу вручную 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, подскажите, где неправильно?