【发布时间】:2014-10-26 21:26:33
【问题描述】:
情况
我得到了多个 XSD 文件 A.xsd、B.xsd 和 C.xsd,它们通过 XInclude 引用彼此的元素,使用 IDREF 和 ID 没有循环依赖。 A.xsd 是我在层次结构中的根文件。
使用 XJB 和绑定文件,我管理它从 XSD 生成一致的 Java 代码。
在成功创建 Java 对象 a、b 和 c 后,我正试图将它们编组为 XML 文件。这就是我卡住的地方。
问题
当将a 编组到文件a.xml 中时,b 和c 将无处存储,a.xml 不包含对它们的引用。
如何成功存储所有对象和引用?
方法
我手头有以下方法,但它们不适合:
- 直接在我的
a.xsd中包含b和c的类型,而不是使用IDREF。不起作用,因为最后我想要多个 XML 文件。 - 编写 Java 代码以浏览
a对象并找到b和c的所有实例。然后编组所有bs 和cs 并使用 XInclude 引用生成的文件。这似乎不合适,因为我不希望我的存储机制知道所有类的所有内部。我只想存储我的a,JAXB 编组应尽可能自行处理存储依赖项。
类似的问题和回答者
以下问题与这个问题有关,他们想要生成多个 XML 文件。但是它们都没有考虑 XSD 文件和 XJC 绑定文件中给出的信息,因此需要对生成的 java 代码进行操作、一些重要的编程开销和某种信息重复。
【问题讨论】: