2017-01-30 39 views
0

我目前正在执行导入或导出某些实体任务的应用程序。正在使用的文件格式是XMLJAXB正在用于XML绑定。支持使用JAXB进行XSD版本化

的问题是本XSD定义实体的结构具有用于版本没有规定。我如何开始定义版本XSD,并随后提供XML实例文档JAXB作为底层绑定框架?

我已阅读,有在XSD引进版本的三种可能的方式。
1)更改内部模式版本属性
2)在根元素上创建类似schemaVersion的属性
3)更改模式的目标名称空间。
哪一个最适合下面提到的用例?

使用案例:在下一版本的XSD做可能会使现有元素的变化。尽管模式本身可能不能向后兼容,但应用程序需要为处理所有模式版本提供支持。

+0

如果下一个版本不是向后兼容,那么选项3更改名称空间似乎非常有效。 – ulab

回答

1

XML旨在促进文档结构的变化和灵活性。不幸的是,JAXB不是。将文档结构知识编译成Java源代码的行为使得更改文档结构变得更加困难。

如果结构变化是您日程的一部分,我认为您应该认真考虑不使用JAXB:像XQuery和XSLT这样的技术更适合这种情况。