我正在使用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);
}
答案 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);
}
这是你的结构化结果。我希望能帮到某些人,因为这对我来说并不明显。