Есть вебсервис, написанный на Java (Tomcat/XFire), я пробую его позвать из C#. Всё чудесно, кроме одного единственного случая: у сервиса есть метод echo, который принимает и возвращает тип Object. При попытке вызвать этот метод, передав, скажем, строку, сервер ругается на отсутствие у параметра аттрибута xsi:type. Посмотрев анализатором запрос SOAP убеждаемся, что это действительно так:
<in0>A string</in0>
Складывается впечатление, что для параметров, описанных в WSDL как anyType, .NET почему-то опускает аттрибут xsi:type - вместо того, чтобы указать фактический тип передаваемого параметра. Серверу, понятно, это не нравится. Сам сервер результаты типа Object (в WSDL - anyType) этот аттрибут выставляет как надо. Например, так:
<out xsi:type="xsd:string">Forty-Two</out>
