У меня есть два класса, Node и Group, группа является подклассом Node.
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Node", propOrder = {
"id",
"children"
})
public class Node {
protected int id;
protected List<Node> children;
}
затем Групповой класс
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Group", propOrder = {
"name"
})
public class Group extends Node{
protected String name;
}
Я определил класс Tree, который будет содержать класс Node, поэтому после маршала xml будет
<tree>
<children>
<id>1</id>
<children>
<id>2</id>
</children>
<children>
<id>3</id>
</children>
</children>
</tree>
Существует еще один класс Groups, который будет содержать все группы в массиве, поэтому я хочу, чтобы xml был
<groups>
<groups>
<name>group-1</name>
</groups>
<groups>
<name>group-2</name>
</groups>
<groups>
<name>group-3</name>
</groups>
</groups>
Но поскольку группа унаследовала Node, второй всегда генерирует xml, как этот
<groups>
<groups>
<id>group-1</id>
<name>group-1</name>
<children>
<id>2</id>
<name>group-2</name>
</children>
<children>
<id>3</id>
<name>group-3</name>
</children>
<groups>
<groups>
Как мне относиться к двум разным классам к разным XML-файлам, даже если они наследуются по родству.
Мне нужен объект для обработки вещей с текущим унаследованным дизайном. Таким образом, наследуемое не может быть удалено.
Если я добавлю @XmlTransient к свойству дочерних узлов Node, второй xml будет тем, который я хочу, но первый xml не может сгенерироваться как тот, который я хочу.
Я сейчас сбиваю с толку и не знаю, как это сделать.
Любые предложения приветствуются.
Заранее спасибо.