Schematron.net 结构化错误报告

Schematron.net structured error reporting

我正在使用 Schematron.net nuget 包,我想知道是否可以获取对 Validate 的调用的输出,以便以我可以处理的结构化格式提供结果。我现有的解决方案依赖于一个 try catch 块,并且断言失败都作为异常中的消息作为错误消息返回。有没有办法以 XML 的形式获取此信息?我已经看到这个 post 提出了类似的问题,但答案并未涉及 Schematron.net 实现。

我的代码如下所示:

try
{
   var bookValidator = new Validator();
   bookValidator.AddSchema("book.xsd");
   bookValidator.Validate("book.xml");
}
catch (Exception ex)
{
   Console.WriteLine(ex.Message);
}

其实很简单。我刚刚意识到将适当的 OutputFormatting 枚举传递给 Validator 构造函数允许我控制异常中消息的格式,如下所示:

try
{
   //OutputFormatting is a public enum from the Schematron library. Valid values include boolean, default, Log, simple and XML.
   OutputFormatting format = OutputFormatting.XML;
   var bookValidator = new Validator(format);
   bookValidator.AddSchema("book.xsd");
   bookValidator.Validate("book.xml");
}
catch (Exception ex)
{
   //ex.Message will now be in XML format and can be processed however I want!
   Console.WriteLine(ex.Message);
}

这是您的结构化结果。我希望这对某人有所帮助,因为这对我来说并不明显。