我有一个XML文件,其元素具有不同的名称但结构相似(相同的属性和子元素)。我想将XML文件转换为Java对象。我使用了@XmlAnyElement注释,它给出了元素,但它不能转换为Java对象类。通过eclipse调试,我已经验证它是以ElementNSImpl的形式,不能转换为Object类。
示例XML结构如下,
<element1 attr1="" attr2="" attr3="">
<childElement1>
<childElement2>
</element1>
<element2 attr1="" attr2="" attr3="">
<childElement1>
<childElement2>
</element2>
我正在使用JAXB注释。
答案 0 :(得分:0)
Root
在JAXB中,Java类对应于XML Schema中的复杂类型。如果element1
和element2
具有相同的类型,则它们会引用同一个类。
import javax.xml.bind.annotation.*;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Root {
private Element element1;
private Element element2;
}
<强>元素强>
import javax.xml.bind.annotation.*;
@XmlAccessorType(XmlAccessType.FIELD)
public class Element {
@XmlAttribute
private String attr1;
@XmlAttribute
private String attr2;
@XmlAttribute
private String attr3;
private String childElement1;
private String childElement2;
}