次のようなノードを持つ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;
}
<object type="dog">
要素を使用するように着信XML形式を変更する以外に、このケースを処理する方法はありますか?