Я довольно новичок с JAVA и столкнулся с очень специфической c проблемой:
У меня есть веб-сервис, который регулярно возвращает XML сообщений. Я хочу иметь возможность десериализовать это сообщение в JAVA объект, но я не знаю, как двигаться дальше ...
Это базовое c xml сообщение, которое я получаю:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ds:tfmDataService
xmlns:ds="urn:us:gov:dot:faa:atm:tfm:tfmdataservice"
xmlns="urn:us:gov:dot:faa:atm:tfm:tfmdataservice"
xmlns:fdm="urn:us:gov:dot:faa:atm:tfm:flightdata"
xmlns:nxce="urn:us:gov:dot:faa:atm:tfm:tfmdatacoreelements"
xmlns:nxcm="urn:us:gov:dot:faa:atm:tfm:flightdatacommonmessages"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:us:gov:dot:faa:atm:tfm:tfmdataservice TFMData_Service.xsd">
<fltdOutput>
<fdm:fltdMessage acid="UAL1252" airline="UAL" arrArpt="KIAH" cdmPart="true" depArpt="KSAT" fdTrigger="FD_FLIGHT_MODIFY_MSG" flightRef="125539563" msgType="FlightModify" sensitivity="A" sourceFacility="UAL" sourceTimeStamp="2020-01-27T09:32:11Z">
<fdm:ncsmFlightModify>
<nxcm:qualifiedAircraftId>
<nxce:aircraftId>UAL1252</nxce:aircraftId>
<nxce:computerId>
<nxce:facilityIdentifier>UAL</nxce:facilityIdentifier>
</nxce:computerId>
<nxce:igtd>2020-01-27T23:30:00Z</nxce:igtd>
<nxce:departurePoint>
<nxce:airport>KSAT</nxce:airport>
</nxce:departurePoint>
<nxce:arrivalPoint>
<nxce:airport>KIAH</nxce:airport>
</nxce:arrivalPoint>
</nxcm:qualifiedAircraftId>
<nxcm:airlineData>
<nxcm:flightStatusAndSpec>
<nxcm:flightStatus>FILED</nxcm:flightStatus>
<nxcm:aircraftModel>B739</nxcm:aircraftModel>
<nxcm:aircraftspecification aircraftEngineClass="JET" numberOfAircraft="1">B739</nxcm:aircraftspecification>
</nxcm:flightStatusAndSpec>
<nxcm:eta etaType="SCHEDULED" timeValue="2020-01-28T00:28:00Z"/>
<nxcm:etd etdType="SCHEDULED" timeValue="2020-01-27T23:42:00Z"/>
<nxcm:flightTimeData airlineInTime="2020-01-28T00:37:00Z" airlineOffTime="2020-01-27T23:42:00Z" airlineOnTime="2020-01-28T00:28:00Z" airlineOutTime="2020-01-27T23:30:00Z" flightCreation="2020-01-26T23:30:38Z" originalArrival="2020-01-28T00:28:00Z" originalDeparture="2020-01-27T23:42:00Z"/>
<nxcm:diversionIndicator>NO_DIVERSION</nxcm:diversionIndicator>
<nxcm:rvsmData currentCompliance="true" equipped="true" futureCompliance="true"/>
<nxcm:arrivalFixAndTime arrTime="2020-01-28T00:03:10Z" fixName="GMANN"/>
</nxcm:airlineData>
</fdm:ncsmFlightModify>
</fdm:fltdMessage>
</fltdOutput>
</ds:tfmDataService>
Итак, сначала я не понимаю, как мне найти местоположение схемы, так как адрес - это urn: us: gov: dot: faa: atm: tfm: tfmdataservice TFMData_Service.xsd
Я понятия не имею, как получить это описание схемы, поскольку этот адрес не похож на http-адрес, и поэтому я не могу извлечь описание схемы, поскольку не знаю, где его скачать.
Я понял, что мне нужна эта схема для генерации моего java класса, который будет использоваться для десериализации сообщения в JAVA объект. Можно ли генерировать объект на лету при получении такого типа сообщений или мне действительно нужно сначала создать классы для десериализации моих сообщений?
Тогда, если я смогу получить xsd, описывающий любое полученное сообщение xml, как я должен сгенерировать код, необходимый для десериализации данных? Как это работает ? Существуют ли специальные c инструменты для этого?
Заранее спасибо!