我正在解析具有如下节点的 XML 文档:
<objects>
<dog>
<data1>...</data1>
<data2>...</data2>
<data3>...</data3>
</dog>
<cat>
<data1>...</data1>
<data2>...</data2>
<data3>...</data3>
</cat>
</objects>
元素 data1、data2、data3 始终是一致的。只有父标签不同。在我的对象模型中,我有一个代表所有这些情况的对象。在事先不知道元素名称的情况下,如何让 JAXB 处理这种情况?
@XMLAnyElement 匹配所有对象,但不创建适当类型的对象;我得到一个节点对象列表而不是我的对象。我的对象目前看起来像:
public class MyObject {
protected String otherData;
@XmlAnyElement
@XmlElementWrapper(name = "objects")
protected List<MyChildObject> childObjects;
}
public class MyChildObject {
protected String data1;
protected String data2;
protected String data3;
}
除了将传入的 XML 格式更改为使用<object type="dog">
元素之外,如何处理这种情况的任何想法?