Schematron.net结构化错误报告

问题描述:

我正在使用Schematron.net nuget包,我想知道是否有可能获得调用的输出以验证以结果格式给出结果,然后我可以进行处理。我现有的解决方案依赖于try catch块,断言失败作为错误消息在异常中返回。有没有办法以XML的形式获取这些信息?我看到这个问题提出了类似的问题post,但答案并未涉及Schematron.net的实现。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); 
} 

而且有你的结构化的结果。我希望能帮助某人,因为这对我来说并不明显。