大多数 XML 解析器会在文档中出现第一个错误后放弃。事实上,IIRC,这实际上是解析器“官方”规范的一部分。
我正在寻找可以打破该规则的东西。它应该接受一个给定的模式(假设一个有效的模式)和一个 xml 输入,并尝试在第一个错误之后继续进行,并为每个错误引发一个事件或在完成时返回一个列表,所以我可以使用它来生成某种报告文件中的错误。这个要求来自上面,所以让我们尽量将纯粹主义者的“但继续下去没有意义”的评论保持在最低限度。
我正在寻找可以评估文档是否格式正确以及它是否符合架构的东西。理想情况下,它会将这些评估为不同类别的错误。我更喜欢 .Net 解决方案,但我也可以使用独立的 .exe。如果您知道使用不同平台的人,请继续发布它,因为其他人可能会发现它有用。
更新:
我希望我使用它的大多数文档大部分都是格式良好的。可能是一个 & 包含在数据中,而不是在这里和那里的 &,或者偶尔放错标签。我不指望解析器能够从任何事情中恢复,只是为了尽最大努力继续前进。如果一个文档太乱了,它应该尽可能多地吐出,然后是某种“致命的,无法继续”的错误。否则,模式验证部分非常简单。