Java JAXB马歇尔
我正在编写一个JAXB类来解析下面的xml。我总是为TrackingFolist获取空值,并且响应状态为有值,我不确定这段代码有什么问题,请您建议Java JAXB马歇尔,java,xml,spring,jaxb,Java,Xml,Spring,Jaxb,我正在编写一个JAXB类来解析下面的xml。我总是为TrackingFolist获取空值,并且响应状态为有值,我不确定这段代码有什么问题,请您建议 @XmlRootElement(name = "CargoTrackingRespone") public class CargoTrackingRespone { private List<TrackingInfo> trackingInfoList; private ResponseStatus response
@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:
@XmlElement(name = "TrackingInfo")
public List<TrackingInfo> getTrackingInfoList() {
@xmlement(name=“TrackingInfo”)
公共列表GetTrackingFolist(){
了解更多信息
<?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和我从测试中获得的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>