Я анализирую XML-документ с узлами, подобными следующим:
<objects>
<dog>
<data1>...</data1>
<data2>...</data2>
<data3>...</data3>
</dog>
<cat>
<data1>...</data1>
<data2>...</data2>
<data3>...</data3>
</cat>
</objects>
Элементы data1, data2, data3 всегда согласованы. Меняется только родительский тег. В моей объектной модели у меня есть один объект, который представляет все эти случаи. Как я могу заставить JAXB обработать этот случай, не зная заранее имя элемента?
@ XMLAnyElement сопоставляет все объекты, но не создает объект соответствующего типа; Я получаю список объектов Node вместо моего объекта. Мой объект в настоящее время выглядит примерно так:
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">
элементов?