我参与过具有非常复杂的XML配置的项目,面临的一个问题是维护XML的内部一致性。
在这种情况下,我并不是指严格的XML模式一致性,而是指使用的节点之间的更高级别关系。大多数问题是由XML中编码的信息之间的隐式链接以及该信息与代码库的隐式关系引起的。例子可能是:
让我印象深刻的是a)这可能会成为一种增加频率的做法,而b)在某些情况下,我们隐含地创建了一种新的编码语言,这种语言不是经过编译时检查的 - 事实上它几乎没有检查。它运行了。
是否有其他人面临类似的情况,是否有任何工具或方法可以使问题更容易处理?我想要一些与技术无关的一般例子 - 我自己的特定经验是使用C#和配置专有系统。
注意:虽然我在下面给出了答案,但我并不打算将自己作为最终答案。
答案 0 :(得分:2)
这将在很大程度上取决于您为项目使用的语言/框架/工具。
使用XML进行配置可能确实存在问题,因为它无法进行编译时检查。
例如,当使用Java和Spring Framework时,存在一个名为Spring Tool Suite的Eclipse插件,它可以在XML配置和实际代码之间进行同步检查。
但这只是特定语言和特定框架的一个例子。您应该尝试找出您的方案是否存在类似的东西。
顺便说一句,如果您告诉我们您正在使用的技术,我们可能会为您提供更多帮助。
答案 1 :(得分:2)
这是一种更高级别的语言,旨在从语义上验证XML,而不仅仅是语法上的。
答案 2 :(得分:2)
我使用自动功能测试来确保默认配置的数据完整性。我不知道你描述的问题必然依赖于配置格式是XML。话虽如此,我建议:
您可能无法对XML作为配置格式,错误耦合或从配置执行代码执行任何操作。您可以通过创建一系列功能测试来降低风险,确保:
您有时也可以通过提供替代(配置或配置条目)来帮助改变。
答案 3 :(得分:1)
来自@David Peleg的良好链接是Topologi,它提供检查XML的产品,包括“业务规则”检查。