Reg*_*ent 68 xml versioning xsd
我经常需要为不同的基于XML的导入例程设计XML模式.很明显,XML模式会随着时间的推移而发展,或者它们可能包含要修复的错误,因此捕获模式的版本并使用某种机制来绑定特定版本非常重要.
目前我有两种情况:
该错误在架构中找到,所有架构实例必须符合固定版本.
模式已升级,应该被视为首选,但也应支持旧模式.
最后,我想出了在架构的命名空间中存储版本信息:
targetNamespace="http://schemas.company.com/Geodesy/2010/River.xsd"
Run Code Online (Sandbox Code Playgroud)
在修复错误时我将其修复到同一个命名空间中,但如果我要升级模式,那么我需要创建一个新的命名空间但添加了升级月份:
targetNamespace="http://schemas.company.com/Geodesy/2010/01/River.xsd"
Run Code Online (Sandbox Code Playgroud)
如果我在一个月内进行了多次升级,那么也只需追加一天:
targetNamespace="http://schemas.company.com/Geodesy/2010/01/17/River.xsd"
Run Code Online (Sandbox Code Playgroud)
你知道更好的方法吗?
xcu*_*cut 86
这是一个如此困难的主题,它甚至都不好笑,而且我花了数年时间提供咨询支持.
有许多最佳实践,但其中大多数并不适用于所有情况.例如,许多人提倡使用"xsd:any"来允许扩展,如果开发人员负责维护模式,将其转换为转储,那么这只是一个灾难.
如果您开始使用,以下是一些提示:
祝你好运!
小智 6
http://www.xml.com/pub/a/2004/07/21/design.html提供了良好的指导方针,XML Schema 1.1通过条件包含实现了"版本控制"(http://www.w3.org/TR/ xmlschema11-1 /#cip).
| 归档时间: |
|
| 查看次数: |
38473 次 |
| 最近记录: |