我正在考虑在配置文件中使用xml命名空间。如果我使用命名空间标记配置文件内容,则会识别程序版本的选项。
有没有办法选择具有特定命名空间版本号和更低的所有节点?这允许任何版本的应用程序无需更改即可读取任何版本配置文件。
示例:
<ns1:config xmlns:ns1="version 1.0">
<ns1:somesetting>blah</ns1:somesetting>
<ns2:SomeNewSetting xmlns:ns2="version 2.0">foob</ns2:SomeNewSetting>
</ns1:config>
应用版本1选择namespace =“version 1.0”。
应用版本2选择namespace =“version 1.0”或namespace =“version 2.0”。
是否有比蛮力解决方案更好的方法?
答案 0 :(得分:1)
使用命名空间来管理XML词汇表的版本控制通常被认为是一个坏主意。您的问题很好地说明了其中一个原因:命名空间不是有序的。使用版本属性要好得多。基于属性值的动态选择元素比命名空间动态选择要容易得多。