我试图将xml转换为java对象并使用JAXB。 xml文件的内容:
<root1>
<element attr='attr-value1'>
<child>some-value1</child>
</element>
</root1>
<root2>
<element attr='attr-value2'>
<child>some-value2</child>
</element>
</root2>
我为&#34;元素&#34;创建了一个类。由于root1和root2的子对象相同,我不想为两者创建单独的类。我该怎么办?
答案 0 :(得分:1)
您可以在项目中使用相同类型的多个根。
以下是一个例子:
<强> Root1.java 强>
@XmlRootElement(name = "root1")
public class Root1 {
@XmlElement(name="element")
protected Element element;
}
<强> Root2.java 强>
@XmlRootElement(name = "root2")
public class Root2 {
@XmlElement(name="element")
protected Element element;
}
<强> Element.java 强>
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
...
})
public class Element {
...
}
您无法选择2个单独的类,但可以使用继承。
继承示例:
<强> Root.java 强>
public class Root {
@XmlElement(name="element")
protected Element element;
}
<强> Root1.java 强>
@XmlRootElement(name = "root1")
public class Root1 extends Root {
// Here Element is inherited from Root class
// So you don't need to declare it
}
<强> Root2.java 强>
@XmlRootElement(name = "root2")
public class Root2 extends Root {
// Here Element is inherited from Root class
// So you don't need to declare it
}
<强> Element.java 强>
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
...
})
public class Element {
...
}