【问题标题】:Support XSD versioning with JAXB使用 JAXB 支持 XSD 版本控制
【发布时间】:2017-01-30 08:58:28
【问题描述】:

我目前正在开发一个执行导入或导出某些实体任务的应用程序。用于相同的文件格式是XMLJAXB 正在用于 XML 绑定。

问题存在XSD,它定义了实体的结构,没有提供版本控制。如何开始定义版本化的XSD 以及随后提供的XML 实例文档JAXB 位于底层绑定框架?

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

用例:在下一版本中对 XSD 所做的更改可能会使现有元素无效。虽然 schema 本身可能不向后兼容,但应用程序需要提供处理所有版本的 schema 的支持。

【问题讨论】:

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

标签: java xml xsd jaxb


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    相关资源
    最近更新 更多