Как конвертировать SOAP XML в Java Object в Android - PullRequest
0 голосов
/ 03 мая 2018

Я хочу проанализировать и преобразовать ответ SOAP XML в объекты JAVA. Я думал об использовании J-WS и JAXB, чтобы сделать то же самое, создав код-заглушку клиента. Но J-WS и JAXB не являются частью Android AOSP, поэтому я должен сделать это вручную.

Ниже приведен пример ответа мыльного XML.

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:tds="http://www.onvif.org/ver10/device/wsdl">
<SOAP-ENV:Body>
<tds:GetSystemDateAndTime/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Response to device.GetSystemDateAndTime
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:tt="http://www.onvif.org/ver10/schema"
xmlns:tds="http://www.onvif.org/ver10/device/wsdl">
<SOAP-ENV:Body>
<tds:GetSystemDateAndTimeResponse>
<tds:SystemDateAndTime>
<tt:DateTimeType>NTP</tt:DateTimeType>  
<tt:DaylightSavings>true</tt:DaylightSavings>
<tt:TimeZone>
<tt:TZ>CET-1CEST,M3.5.0,M10.5.0</tt:TZ>
   </tt:TimeZone>
<tt:UTCDateTime>
<tt:Time>
<tt:Hour>15</tt:Hour>
<tt:Minute>52</tt:Minute>
<tt:Second>25</tt:Second>
</tt:Time>
<tt:Date>
<tt:Year>2010</tt:Year>
<tt:Month>10</tt:Month>
<tt:Day>29</tt:Day>
</tt:Date>
</tt:UTCDateTime>
<tt:LocalDateTime>
<tt:Time>
<tt:Hour>17</tt:Hour>
<tt:Minute>52</tt:Minute>
<tt:Second>25</tt:Second>
</tt:Time>
<tt:Date>
<tt:Year>2010</tt:Year>
<tt:Month>10</tt:Month>
<tt:Day>29</tt:Day>
</tt:Date>
</tt:LocalDateTime>
</tds:SystemDateAndTime>
</tds:GetSystemDateAndTimeResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Ответы [ 2 ]

0 голосов
/ 02 августа 2018

Мы можем использовать стороннюю платформу SimpleXML, которая использует Apache 2.0license. Для получения подробной информации и примеров, смотрите ссылку ниже - http://simple.sourceforge.net/

0 голосов
/ 15 мая 2018

Вместо того, чтобы делать это вручную, вы должны сгенерировать код преобразования с помощью инструмента, способного понимать файлы wsdl со спецификациями ONVIF.

Поскольку вы говорите о Java и Android, вероятно, вам следует проверить ksoap2-android . Я не специалист по Java, но есть несколько примеров, таких как этот .

...