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);
}
这是您的结构化结果。我希望这对某人有所帮助,因为这对我来说并不明显。
我正在使用 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);
}
这是您的结构化结果。我希望这对某人有所帮助,因为这对我来说并不明显。