我是JAXB的新手,非常感谢您的帮助。
首先让我给你一些背景。
我有一个相对简单的对象模型,基于2个主要类:Provider和Product。现在,Provider引用了他可以提供的Product列表,Product引用了可以提供它的Provider列表。也就是说,我有循环引用!
产品是作为一种复合模式构建的,因为:a)我不想受到"类别","类型",...的限制,但是想要创建一个尽可能灵活的产品树。 b)我想通过相同的界面管理产品和树元素(所谓的"类别")。
就像我们现在一样,同一个抽象产品可以有许多不同的物理实现" (例如:汽车是抽象产品,而丰田雅力士是实物产品)。因此,为了分离Products的抽象和物理实现,我实现了桥接模式。 Abstract Products现在是ProductTemplate(上面提到的复合材料),物理产品是ProductImplementation。
我设法使用Hibernate(和Spring)对此进行建模。
现在我想生成XML字符串,让后端和前端对话。
目前,我正在与JAXB进行一些研究,以确定它是否符合我的需求:
但是,这只是我需要的一个方面。我还希望能够从同一个类生成不同版本的XML字符串。例如,从Provider对象,我希望能够编组包含
的XML完整的monty,也就是我在BD中关于他的一切。
目前,我能够使用JAXB anotations封送ProductTemplate,因为我在Provider类中将它们分配为XmlTransient。这样做不够好!
我现在没有要求提供代码的详细说明。我要问的是:
答案 0 :(得分:0)
我发布这个问题已经有一段时间了,我在Blaise Doughan的博客和MOXy网站上找到了答案。
我没有太多时间详细说明,但诀窍是使用绑定文件。您可能拥有与单个类相关的任意数量的绑定文件。您只需将其链接到您的JAXBContext。
我发现它并不容易使用,但在使用cyclick引用编组类时它很方便。
希望它有所帮助,希望有一天我有时间详细解释:)