XmlReaderSettings.ValidationEventHandler 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
读取器遇到验证错误时发生。
public:
event System::Xml::Schema::ValidationEventHandler ^ ValidationEventHandler;
public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler;
member this.ValidationEventHandler : System.Xml.Schema.ValidationEventHandler
事件类型
示例
以下示例演示了用于指定用于创建使用内联架构进行验证的读取器以及显示验证警告的设置。 验证事件处理程序使用 XmlSeverityType 枚举来区分警告和错误。
using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;
public class ValidXSD {
public static void Main() {
// Set the validation settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
// Create the XmlReader object.
XmlReader reader = XmlReader.Create("inlineSchema.xml", settings);
// Parse the file.
while (reader.Read());
}
// Display any warnings or errors.
private static void ValidationCallBack (object sender, ValidationEventArgs args) {
if (args.Severity==XmlSeverityType.Warning)
Console.WriteLine("\tWarning: Matching schema not found. No validation occurred." + args.Message);
else
Console.WriteLine("\tValidation error: " + args.Message);
}
}
Imports System.Xml
Imports System.Xml.Schema
Imports System.IO
public class ValidXSD
public shared sub Main()
' Set the validation settings.
Dim settings as XmlReaderSettings = new XmlReaderSettings()
settings.ValidationType = ValidationType.Schema
settings.ValidationFlags = settings.ValidationFlags Or XmlSchemaValidationFlags.ProcessInlineSchema
settings.ValidationFlags = settings.ValidationFlags Or XmlSchemaValidationFlags.ReportValidationWarnings
AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack
' Create the XmlReader object.
Dim reader as XmlReader = XmlReader.Create("inlineSchema.xml", settings)
' Parse the file.
while (reader.Read())
end while
end sub
' Display any warnings or errors.
private shared sub ValidationCallBack (sender as object, args as ValidationEventArgs)
if (args.Severity=XmlSeverityType.Warning)
Console.WriteLine(" Warning: Matching schema not found. No validation occurred." + args.Message)
else
Console.WriteLine(" Validation error: " + args.Message)
end if
end sub
end class
注解
如果 ValidationType XML 实例文档设置为或 DTD 设置为 , Schema则在读取 XML 实例文档时发生这些事件。 如果已在属性上启用设置,ReportValidationWarningsValidationFlags则遇到任何验证警告时,也会发生这些事件。
如果为读取器配置了验证,并且尚未设置任何验证事件处理程序,则会为所有验证错误引发一个 XmlSchemaValidationException 。 (验证警告不会导致 XmlSchemaValidationException 引发)。
重要
验证错误消息可能会公开敏感内容模型信息。 验证错误和警告消息使用 ValidationEventHandler 委托进行处理,或在未向 XmlSchemaValidationException 对象提供事件处理程序的情况下作为 XmlReaderSettings 公开(验证警告不会引发 XmlSchemaValidationException)。 不应在不受信任的方案中公开此内容模型信息。 默认情况下会禁止验证警告消息,可以通过设置 ReportValidationWarnings 标志来报告。
SourceUri 的 XmlSchemaValidationException 属性会返回导致异常的架构文件的 URI 路径。 SourceUri属性不应在不受信任的方案中公开。