<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<InstanceTree xmlns="http://www.testsite.org/Schemas/xyzSchema">
<Instance id="inst0" depth="1">
<UserData type="Instance">
<userValue title="occurrenceUUID" value="abc/>
</UserData>
<UserData type="Part" name="pqr">
<UserValue title="PartNumber" value="MTG_238_ZB_LACKIERUNG" />
</UserData>
</Instance>
</InstanceTree>
@XmlRootElement(name = "InstanceTree")
public class InstanceTree {
}
@XmlRootElement(name = "Instance")
public class Instance {
private List<Userdata> userdata;
@XmlElement
public List<Userdata> getUserdata() {
return userdata;
}
}
@XmlRootElement(name = "UserValue")
public class UserValue {
private List<UserValue> userValue;
@XmlElement
public List<UserValue> getUserValue() {
return userValue;
}
}
@XmlRootElement(name = "UserData")
public class Userdata {
}
在xml中为大写Instance,UserData,UserValue提供NullPointerException。
为xmlns =“http://www.testsite.org/Schemas/abcSchema”提供错误。删除网址后工作正常。
答案 0 :(得分:2)
使用@XmlElement(name="Userdata")
,否则jaxb使用属性名称。
@XmlRootElement(name = "Instance")
public class Instance {
private List<Userdata> userdata;
@XmlElement(name = "Userdata")
public List<Userdata> getUserdata() {
return userdata;
}
}
也使用package-info.java
@javax.xml.bind.annotation.XmlSchema(
namespace = "http://www.testsite.org/Schemas/abcSchema",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
xmlns = {
@javax.xml.bind.annotation.XmlNs(prefix = "", namespaceURI = "http://www.testsite.org/Schemas/abcSchema")
}
)
package com.your.package;