使用Schematron/XSD在C#中进行XML验证

asg*_*las 11 .net c# xml xsd schematron

我一直在寻找一种方法来对XML文档进行更高级的业务规则验证.到目前为止,Schematron似乎能够做到,我需要什么.

我一直在环顾四周,我发现的少数几个图书馆已经很老了,似乎不再支持了.Schematron在2002年只是"热门"吗?有没有可以在C#中进行验证的库 - 或者我该怎么做?

或者是否有其他人可以进行高级验证并拥有C#库并且是标准化的?

Sco*_*aad 13

对于它的价值,这是我的经验......

我有时希望架构可以在业务规则验证方面做得更多.但是,根据我的经验,模式可用于定义数据协定(格式,类型等)...... 执行业务规则.试图让它更多的是遇到各种各样的问题,这可能就是为什么Schematron似乎已经在它的受欢迎程度中消失了(可能是我无法备份的坏假设).

为了解决这个问题,通常可以采用双通法:

  • 使用模式验证验证xml结构/数据类型等.
  • 对xml应用业务规则检查(在正常的c#代码中).

我理解你是否想要采用一体化方法进行验证,但是从长远来看,尝试使用模式会导致更多麻烦.最后,通过隔离代码,您最终可以更好地控制业务规则检查.

  • 它值得很多!我自己有一些相同的想法,但问题不在于我需要一个多功能的方法 - 我需要一个可以在许多应用程序之间共享的"验证包" - 其中很多我不是附属的.因此,对XML的业务规则验证需要某种开放标准. (5认同)
  • 值得注意的是Schematron现在是ISO标准. (5认同)