[英]Unmarshaling the nested xml data giving null values
<bas:person>
<req:vehicleinfo>
<!--Zero or more repetitions:-->
<bas:item>
<sch:modelno>k10</sch:modelno>
<sch:type>bs4</sch:type>
</bas:item>
<bas:item>
<sch:modelno>k12</sch:modelno>
<sch:type>bs5</sch:type>
</bas:item>
</req:extensionInfo>
</bas:person>
Assume namespace for bas is some http://xxxxx.person.com
for req is http://xxxxx.request.com
for bas http://xxxxx.bas.com
for sch http://xxxxx.sch.com
由于我可能有多个值,因此在这里获取车辆信息,在我的Java对象中,我需要将车辆信息作为数组处理某些项目依赖项。
这是我的java课
@XmlRootElement(name="person")
@XmlAccessorType(XmlAccessType.FIELD)
public class Person implements Serializable{
@XmlElement(name="vehicleinfo",namespace="http://xxxxx.request.com")
private VehicleInfo[] vehicleinfo;
// getter & setter
}
车辆信息
@XmlAccessorType(XmlAccessType.FIELD)
public class VehicleInfo{
@XmlAttribute(name="modelno",namespace="http://xxxxx.sch.com")
private String key;
@XmlAttribute(name="type",namespace="http://xxxxx.sch.com")
private String value;
//getter and setter
}
我正在使用以下代码来解组
SOAPMessage message = MessageFactory.newInstance().createMessage(null,
new ByteArrayInputStream(xmlInput.getBytes()));
JAXBContext jaxbContext = JAXBContext.newInstance(Person.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Person person= (Person) jaxbUnmarshaller.unmarshal(message.getSOAPBody().extractContentAsDocument());
但是我得到关键和价值作为对车辆信息的约束
由于Java没有动态数组,因此JAXB本质上不能与数组一起使用。 而是将VehicleInfo声明为ArrayList。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.