我正在根据架构 xsd 验证 XML 文件。到目前为止一切顺利,代码在失败时会生成异常。
bool isValid = true;
List<string> errorList = new List<string>();
try
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, schemaFilePath);
settings.ValidationType = ValidationType.Schema;
XmlDocument document = new XmlDocument();
document.LoadXml(xml);
XmlReader rdr = XmlReader.Create(new StringReader(document.InnerXml), settings);
while (rdr.Read()) { }
}
catch (Exception ex)
{
errorList.Add(ex.Message);
isValid = false;
}
LogErrors(errorList);
return isValid;
但我需要代码在将验证中发现的所有错误发送到我的日志之前构建一个列表,而不是始终仅显示找到的第一个错误。
有什么想法吗?
您可以使用Validate
method http://msdn.microsoft.com/en-us/library/ms162371.aspx与一个ValidationEventHandler
。你可以按照MSDN的方式创建ValidationEventHandler
如果需要,可以单独进行,也可以内联进行。
e.g
//...Other code above
XmlDocument document = new XmlDocument();
document.Load(pathXMLCons);
document.Validate((o, e) =>
{
//Do your error logging through e.message
});
如果您不这样做,XmlSchemaValidationException
将会被抛出,并且只有那个可以被抓住。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)