我不确定jaxb是否可以解决以下问题,但无论如何我都会问。
在某个项目中,我们使用带有已定义模式的 jaxb 来创建 xml 文件的下一个结构。
<aaa>
<bbb>
more inner children here
</bbb>
<bbb>
more inner children here
</bbb>
</aaa>
我们还使用 jaxb 的自动类生成来创建类:aaa 和 bbb,其中 aaa 是作为 @XmlRootElement 生成的。
我们现在想在一个新项目中使用相同的模式,这也将与以前的项目兼容。我想做的是使用相同的 jaxb 生成的类,而不在模式中执行任何更改,以便仅将单个 bbb 对象编组为 xml。
JAXBContext jc = JAXBContext.newInstance("generated");
Marshaller marshaller = jc.createMarshaller();
marshaller.marshal(bbb, writer);
所以我们会得到下一个结果:
<bbb>
<inner child1/>
<inner child2/>
...
</bbb>
我目前无法这样做,因为编组器大喊我没有定义 @XmlRootElement。
我们实际上是在尝试避免将模式分成 2 个模式的情况,一个只有 bbb,另一个是 aaa 导入 bbb。
提前致谢!