JAXB:缺少" xsi-type" unmarshalled XML中的属性

时间:2017-05-29 08:25:59

标签: java xml jaxb unmarshalling

鉴于XML和相关的 生成的 xsd文件,我在使用JAXB解组XML时遇到了问题。

考虑以下代码:

JsonArray newArray = new JsonArray();
newArray.add(new JsonPrimitive(3));
for (int i = 0; i < myArray.size(); i++) {
    newArray.add(myArray.get(i));
}

xml文件已正确解组,但我丢失了有关&#34; xsi:type&#34;的所有信息。属性。

在生成的类中,没有任何&#34;类型&#34;可以匹配该信息的字段。

1 个答案:

答案 0 :(得分:1)

解决方案是在生成的类中添加这两行代码:

@XmlAttribute(name = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
protected java.lang.String type;

还要添加getter / setter方法。

通过这种方式,可以正确读取“xsi:type”属性。