Синтаксический ответ WCF в Android - PullRequest
1 голос
/ 10 ноября 2010

Мне нужно использовать веб-сервис WCF через SOAP под Android.Я делаю это с помощью KSOAP2.5.2.Теперь, поскольку нам не разрешено редактировать WCF, я в настоящее время не могу изменить вывод, который возвращает служба WCF.Это моя главная проблема.Чтобы решить эту проблему, мне нужно взять то, что я получаю из WCF (обходной путь):

anyType{schema=anyType{element=anyType{complexType=anyType{choice=anyType{element=anyType{complexType=anyType{sequence=anyType{element=anyType{simpleType=anyType{restriction=anyType{maxLength=anyType{}; }; }; }; element=anyType{simpleType=anyType{restriction=anyType{maxLength=anyType{}; }; }; }; element=anyType{simpleType=anyType{restriction=anyType{maxLength=anyType{}; }; }; }; element=anyType{simpleType=anyType{restriction=anyType{maxLength=anyType{}; }; }; }; element=anyType{simpleType=anyType{restriction=anyType{maxLength=anyType{}; }; }; }; element=anyType{simpleType=anyType{restriction=anyType{maxLength=anyType{}; }; }; }; element=anyType{simpleType=anyType{restriction=anyType{maxLength=anyType{}; }; }; }; element=anyType{simpleType=anyType{restriction=anyType{maxLength=anyType{}; }; }; }; element=anyType{}; element=anyType{simpleType=anyType{restriction=anyType{maxLength=anyType{}; }; }; }; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{simpleType=anyType{restriction=anyType{maxLength=anyType{}; }; }; }; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{simpleType=anyType{restriction=anyType{maxLength=anyType{}; }; }; }; }; }; }; }; }; }; }; diffgram=anyType{DocumentElement=anyType{CL_9_2_4_DestInfo=anyType{DESTINATION=.... LOTs of other data.

Теперь, как кажется, это какой-то пропреториальный код Microsoft, который на самом деле является полным набором данных / xsd (?) Как я могу разобрать эту вещь в рабочий набор данных или, по крайней мере, сделать ее читабельной для моего маленького Android?

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

После некоторых дальнейших исследований я узнал, что KSOAP уже сократил возвращаемый XML, но, поскольку это набор данных Microsoft .NET (который не обрабатывается в KSOAP), он возвращает такую ​​странную строку.При проверке HttpTransportSE.responseDump () я могу получить нормальный XML-ответ.Однако, чтобы отобразить / проанализировать ответ в Java-объектах, вы должны следовать этому руководству, которое предоставляет более одного способа: Работа с XML в Androind

0 голосов
/ 17 ноября 2010

Ссылка на статью Майкла о общем разборе XML.Если у вас уже запущен KSOAP, вы можете просто выполнить getResponse, и это даст вам вложенные объекты SoapObject, которые вы можете просто проанализировать в коде, настраивающем ваши Pojos или что-то еще из вызовов getProperty и getAttribute и итерации по мере необходимости.

...