如何使用JAXB从一个类生成两个不同结构的xml
我有两个类,节点和组,组是节点的子类如何使用JAXB从一个类生成两个不同结构的xml,jaxb,Jaxb,我有两个类,节点和组,组是节点的子类 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Node", propOrder = { "id", "children" }) public class Node { protected int id; protected List<Node> children; } 我已经定义了一个类树来包含节点类,所以在封送处理之后,xml将 <tree
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Node", propOrder = {
"id",
"children"
})
public class Node {
protected int id;
protected List<Node> children;
}
我已经定义了一个类树来包含节点类,所以在封送处理之后,xml将
<tree>
<children>
<id>1</id>
<children>
<id>2</id>
</children>
<children>
<id>3</id>
</children>
</children>
</tree>
1.
2.
3.
还有另一个类Groups包含数组中的所有组,所以我希望xml应该是
<groups>
<groups>
<name>group-1</name>
</groups>
<groups>
<name>group-2</name>
</groups>
<groups>
<name>group-3</name>
</groups>
</groups>
第一组
第2组
第三组
但是因为组继承了节点,所以第二个组总是生成这样的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>
第一组
第一组
2.
第2组
3.
第三组
我应该如何将这两个不同的类处理为不同的xml文件,即使它们是继承相关的。
我需要对象来处理当前继承的设计。因此,无法删除继承的
如果我向节点的children属性添加@xmltransive,则第二个xml将是我想要的xml,但第一个xml无法生成为我想要的xml
我现在很困惑,不知道怎么做
欢迎提出任何建议
提前感谢。通过利用中的扩展,可以为对象模型提供多个XML表示。此扩展允许您通过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>