我目前正在开发一个应用程序,该应用程序执行导入或导出某些实体的任务。用于相同目的的文件格式是XML
。 JAXB
用于 XML 绑定(bind)。
问题在于定义实体结构的XSD
没有提供版本控制。如果将 JAXB
作为底层绑定(bind)框架,我如何开始定义版本化 XSD
以及随后的 XML
实例文档?
我读到,在 XSD
中引入版本有三种可能的方法。
1)更改内部schema版本属性
2) 在根元素上创建一个类似 schemaVersion 的属性
3) 更改模式的目标命名空间。
哪一个最适合下面提到的用例?
用例:下一版本中对 XSD
所做的更改可能会使现有元素失效。虽然架构本身可能不向后兼容,但应用程序需要提供处理所有版本架构的支持。
最佳答案
XML 旨在促进文档结构的更改和灵 active 。不幸的是,JAXB 不是。将文档结构知识编译到 Java 源代码中的这一行为使得更改文档结构变得更加困难。
如果结构变化是您议程的一部分,我认为您应该认真考虑不使用 JAXB:XQuery 和 XSLT 等技术更适合这种情况。
关于java - 支持使用 JAXB 进行 XSD 版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41931992/