У меня есть эти два типа XML без предопределенных схем:
A
<root-a>
<a-item id="a1">
<name>Name of A1</name>
<a-item id="a11">
<name>Name of A11</name>
</a-item>
<a-item id="a12">
<name>Name of A12</name>
<a-item id="a121">
<name>Name of A121</name>
</a-item>
<a-item id="a122">
<name>Name of A122</name>
</a-item>
</a-item>
</a-item>
<a-item id="a2">
<name>Name of A2</name>
</a-item>
</root-a>
B
<root-b>
<b-item id="b1">
<name>Name of B1</name>
<b-item id="b11">
<name>Name of B11</name>
</b-item>
<!-- etc., similar to A -->
</b-item>
</root-b>
Элементы могут быть вложены на произвольную глубину , Структура та же, но имя элемента root и элементов item отличается. Как я могу сопоставить это с единственной Java структурой класса, например. как этот (методы получения и установки отсутствуют) с использованием JAXB:
public class Root {
private List<Item> items;
}
public class Item {
private String id;
private String name;
private List<Item> items;
}
Я могу отобразить только одну из XML структур, используя аннотации JAXB, но я не знаю, как это сделать, чтобы разместить оба XML в то же время. Я мог бы создать параллельную иерархию для A и B с общим интерфейсом, но я надеюсь, что есть более точное решение.