如何在Java验证中支持同一模式的多个版本?

时间:2012-08-08 16:10:56

标签: java validation xsd versioning

我想提前考虑并在XMLSchema文档中包含版本控制。似乎w3c中的建议方法是保持命名空间相同并使用version属性。

到目前为止这么明智。

但是,我是否需要能够根据指定的版本切换架构以用于验证? Java 6 XML架构验证设施是否包含此功能?

1 个答案:

答案 0 :(得分:1)

你是对的,许多人建议保持名称空间相同。我不怀疑这种方法适用于许多人(包括大多数提出建议的人),但我从未见过一个非常有说服力的论据,认为这是唯一合理或可行的做法。 (并且在假设某个特定命名空间只能有一个模式的系统中,更改命名空间可能是您能够对词汇表进行版本化的唯一方法。)

你也是对的,在版本之间保持命名空间不变可能意味着你想要维护多个模式。上次我查看它的文档时,Xerces J似乎可以让你做到你需要的相当简单:验证调用主要涉及说“在这里,拿这个文件和这个架构,并验证“。

有些人通过说每个新版本将扩展有效文档集来避免需要多个模式,因此每个版本的模式可用于创建符合早期版本模式的文档。 (进一步改进:小数点发布必须以这种方式向后兼容,并且只有主要版本可以向后兼容 - 如果是,则必须使用新的名称空间。)