【发布时间】:2014-10-09 15:04:25
【问题描述】:
很遗憾,我遇到了 XML 的交叉路径,需要根据当前保存在 XSD 中的规则来验证 XML 数据。
问题是同一个DOC的XML有3个版本,每个版本根据元素的值有不同的规则和子规则。
我想知道在过去几年中是否有任何 nuget package thing 可以验证 XML,具有更好的引擎、语法或避免使用内置、旧且不灵活的 .NET 垃圾的东西。
我知道的一种方法是解析 XML,检查值,例如版本,然后为该版本的文件使用 XSD。但有些规则适用于不同版本的相同元素,即男性/女性类型的问题。所以从技术上讲,我将不得不从 9 个 XSD 文件开始,随着规则变得复杂,我将获得更多。所有版本的所有规则都在使用中,使其变得更加复杂。
我看到一些东西在我的屏幕上用 assert.. 弹开。但 .NET 不支持。是否有某种验证引擎和语法。我真的只希望 1 个文件根据 XML 保存的数据应用规则。
【问题讨论】:
-
研究使用Schematron,它可以满足您拥有单个规则文件的目标,并能够应用依赖于正在验证的 XML 中的数据值的断言。
-
谢谢。我遇到了它,但不确定该怎么处理它。所以这次我更多地浏览了这个网站,并试图找到一些指向 .NET 的链接,在仔细阅读之后,我做到了。谢谢