我经常不得不为不同的基于XML的导入例程设计XML模式。显然,XML模式会随着时间的推移而发展,或者它们可能包含要修复的错误,因此,重要的是捕获模式的版本并具有某种机制来绑定特定版本。
目前,我有两种情况:
该错误可在架构中找到,并且所有架构实例必须符合固定版本。
模式已升级,应该被认为是可取的,但是也应该支持旧的模式。
最后,我想到了将版本信息存储在架构的名称空间中:
targetNamespace="http://schemas.company.com/Geodesy/2010/River.xsd"
修复错误时,我将其修复在相同的名称空间中,但是如果要升级架构,则需要创建一个新的名称空间,但要添加升级月份:
targetNamespace="http://schemas.company.com/Geodesy/2010/01/River.xsd"
如果我一个月内进行了多次升级,那么也只需追加一天:
targetNamespace="http://schemas.company.com/Geodesy/2010/01/17/River.xsd"
您知道更好的方法吗?