我有一个不断改进的产品,它可以处理一些XML文件。对于受支持的XML,我们有一个带有大量XSD方案的名称空间,它们相互之间进行描述。它还不断扩展以描述我们产品的新功能。这组方案已在我们的网站中以与名称空间相关的静态URL发布。
用户手动创建或自动生成许多自己的XML文件,并将其与我们的产品实例一起不断使用。他们有时会执行我们产品的升级,并期望旧的XML文件无需任何修改即可与我们产品的新版本兼容。
发布的架构显然对应于该产品的最新版本。检查XML文件与产品最新版本的正确性就足够了。
但是!
1)如何提供一种方法来检查任何早期版本的正确性,同时又不需要将所需版本写入XML,也不需要在站点中存储大量模式版本?
2)如何更好地提供通过Visual Studio之类的工具使用XSD方案的本地副本的可能性?我只知道两种提及本地方案的方法-通过菜单XML / Schema将它们全部添加到IDE列表中,或者通过xsi:schemaLocation属性在XML文件中记录下来。但是第一种情况对于所有使用的模式来说都太困难了,并且很难用邻居文件夹中的另一个版本的方案替换它。第二个将提到XML文件中的本地路径,但是当此文件将被移到其他位置或另一台机器时,它将是错误的!
或者也许必须以完全不同的方式解决此需求,而其中一些需求牵强又不必要?最佳做法是什么?