我目前正在使用Schematron进行XML文档[数据]验证。 Schematron似乎适当地工作,至少在初始测试中,并且我喜欢以用户为中心的验证与XPath上下文/规则 1 相结合的一般方法。
但是,我想在POCC(Plain Old C#Code)中进行相同类型的“声明性验证”设置,因为需要完成的一些验证超出了Schematron可以处理的范围 - 至少没有额外的转换或管道,我不喜欢XML 。
我找到了few libraries like Fluent Validation,similar posts和books,但似乎没有任何内容适合XML / XPath - 但也许我太熟悉简洁的XPath语法了解Linq-to-XML如何真正适合..
所以问题是;
是否有适合利用XPath并使用XML文档的C#(.NET)流畅/声明性验证库?
在投票结束这个“购物问题”之前,请考虑这样一个图书馆的明显稀缺/模糊。似乎某些声明性验证库可以被这种支持所黑客攻击,但是在玩了一下之后,它就不会“感觉自然”了。在这方面扩展流畅的验证库以支持XPath的任何实践经验也会得到一个很好的答案,特别是如果它已被证明是一种合适的方法。
1 该项目还使用XSD Schema验证进行结构/类型验证(即“井型”验证)。这个验证阶段是关于“正确的语义”验证;但是,XSD不会生成“友好”错误消息,它无法处理[co-]相关值,并且...更详细。 RELAX NG至少可以解决其中一个问题,但不是全部。
答案 0 :(得分:0)
XSLT 2.0可用于基于声明的XPath验证。以下是一些好处:
随着2.0版的发布,XSLT现在允许您将样式表设计为架构感知。模式感知XSLT系统提供了许多好处,包括在XSLT转换之前验证输入树以确保XSLT样式表仅处理有效输入的能力,以及验证输出树以确保XSLT转换正在生成的能力有效的XML输出。您还可以为:
指定数据类型
XSLT 2.0与.Net的集成详见以下问题和答案:
<强>参考强>