2014-01-15 2 views
3

Я пишу класс JAXB для синтаксического анализа ниже xml. Я всегда получаю нулевое значение для trackinginfoList, и статус ответа имеет значение, я не уверен, что является проблемой с этим кодом, не могли бы вы посоветовать?JAXB marshelling

@XmlRootElement(name = "CargoTrackingRespone") 
    public class CargoTrackingRespone { 

    private List<TrackingInfo> trackingInfoList; 

    private ResponseStatus responseStatus; 

    @XmlElements({@XmlElement(name = "TrackingInfo", type = TrackingInfo.class)}) 
    @XmlElementWrapper(name = "TrackingInfoList") 
    public List<TrackingInfo> getTrackingInfoList() { 
    return trackingInfoList; 
    } 

    public void setTrackingInfoList(List<TrackingInfo> trackingInfoList) { 
    this.trackingInfoList = trackingInfoList; 
    } 

    @XmlElement(name = "Status") 
    public ResponseStatus getResponseStatus() { 
    return responseStatus; 
    } 

    public void setResponseStatus(ResponseStatus responseStatus) { 
    this.responseStatus = responseStatus; 
    } 

} 

XML-файл:

<?xml version="1.0" encoding="UTF-8"?> 
<CargoTrackingRespone> 
    <TrackingInfo> 
    <TrackID>12345</TrackID> 
    <TrackStatus> 
     <Code>ERROR</Code> 
     <Description>No tracking information found</Description> 
     <StatusUpdateDateTime>2014-01-14T14:51:11.551-06:00</StatusUpdateDateTime> 
    </TrackStatus> 
    </TrackingInfo> 
    <Status> 
    <Code>ERROR</Code> 
    <Description>No shipment information available</Description> 
    <ReasonCode>No Shipment.</ReasonCode> 
    </Status> 
</CargoTrackingRespone> 

ответ

1

Вы можете аннотировать свойство, как следующее, чтобы соответствовать вашему XML:

@XmlElement(name = "TrackingInfo") 
public List<TrackingInfo> getTrackingInfoList() { 

Для получения более подробной информации

0

Я думаю, что ваш элемент TrackingInfo завернут в TrackingInfoList. Итак, ваш xml должен выглядеть.

<?xml version="1.0" encoding="UTF-8"?> 
<CargoTrackingRespone> 
    <TrackingInfoList>  
     <TrackingInfo> 
     <TrackID>12345</TrackID> 
     <TrackStatus> 
      <Code>ERROR</Code> 
      <Description>No tracking information found</Description> 
      <StatusUpdateDateTime>2014-01-14T14:51:11.551-06:00</StatusUpdateDateTime> 
     </TrackStatus> 
     </TrackingInfo> 
    <TrackingInfoList> 
    <Status> 
    <Code>ERROR</Code> 
    <Description>No shipment information available</Description> 
    <ReasonCode>No Shipment.</ReasonCode> 
    </Status> 
</CargoTrackingRespone> 

Я создал класс в моем тесте и маршалинг XSD и сгенерированный файл образец XML и обнаружил, что разница между XML и то, что я получил от теста имеет эту разницу.

Смежные вопросы