Schematron.net结构化错误报告

时间:2017-04-19 05:49:11

标签: c# xml schematron

我正在使用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);
}

1 个答案:

答案 0 :(得分:0)

实际上这很简单。我刚刚意识到将一个合适的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);
}

这是你的结构化结果。我希望能帮到某些人,因为这对我来说并不明显。