【问题标题】:JAXB marshellingJAXB 编组
【发布时间】:2014-02-03 08:54:22
【问题描述】:

我正在编写一个 JAXB 类来解析下面的 xml。我总是得到 trackinginfoList 的空值并且响应状态是有价值的,我不确定这段代码有什么问题,你能建议吗?

@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>

【问题讨论】:

    标签: java xml spring jaxb


    【解决方案1】:

    您可以将属性注释为以下内容以匹配您的 XML:

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

    更多信息

    【讨论】:

      【解决方案2】:

      我认为您的 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 和我从测试中得到的差异有这个差异。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-08
        • 1970-01-01
        • 1970-01-01
        • 2011-11-24
        • 1970-01-01
        • 1970-01-01
        • 2010-10-24
        • 1970-01-01
        相关资源
        最近更新 更多