使用Schematron / XSD在C#中进行XMLvalidation

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

我一直在四处寻找,我发现的少数几个图书馆已经很老了,而且似乎不再支持了。 Schematron在2002年只是“热门”吗? 有没有可以在C#中进行validation的库 – 或者我该怎么做?

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

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

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

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

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

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