我目前正在使用Schematron进行 XML 文档 [数据] 验证。Schematron 似乎可以正常工作,至少在初始测试中是这样,我喜欢以用户为中心的验证与 XPath 上下文/规则1相结合的一般方法。
但是,我希望在 POCC(普通旧 C# 代码)中设置同样类型的“声明式验证”,因为一些需要完成的验证超出了 Schematron 可以处理的范围 - 至少不需要额外的转换或管道,我不太喜欢 XML 。
我找到了一些库,如 Fluent Validation、类似的帖子和书籍,但似乎没有什么是针对 XML/XPath 量身定制的——但也许我太迷恋于简洁的 XPath 语法,无法理解 Linq-to-XML 如何真正适合..
所以问题是;
是否有一个 C# (.NET) 流利/声明性验证库专为利用 XPath 和处理 XML 文档而设计?
在投票将其作为“购物问题”结束之前,请考虑这样一个图书馆的明显稀缺/默默无闻。似乎某些声明式验证库可以在这种支持下被破解,但是在玩了一会儿之后,它就“感觉不自然”。在这方面扩展 fluent 验证库以支持 XPath 的任何实际经验也将是一个很好的答案,特别是如果它已被证明是一种合适的方法。
1该项目还使用 XSD Schema 验证进行结构/类型验证(即“类型良好”的验证)。这一阶段的验证是关于“正确语义”的验证;但是,XSD 不会生成“友好的”错误消息,它不能处理 [co-]dependent 值,并且......更冗长。RELAX NG 至少可以解决其中一个问题,但不是全部。