C# Schematron.net结构化错误报告

C# Schematron.net结构化错误报告,c#,xml,schematron,C#,Xml,Schematron,我正在使用Schematron.net nuget包,我想知道是否有可能获得一个调用的输出,以验证以结构化格式给出结果,然后我可以处理该结果。我现有的解决方案依赖于try-catch块,断言失败都作为异常中的消息作为错误消息返回。有没有办法以XML的形式获取这些信息?我已经看到了这一点,它提出了一个类似的问题,但答案并不涉及Schematron.net实现 我的代码如下所示: try { var bookValidator = new Validator(); bookValidat

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

我的代码如下所示:

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

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

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);
}
这就是你结构化的结果。我希望这能帮助别人,因为这对我来说并不明显