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
설명
이러한 이벤트는 XML 인스턴스 문서를 ValidationType 읽는 DTD 동안 발생합니다 Schema. 속성에서 ReportValidationWarnings 설정을 사용하도록 설정한 ValidationFlags 경우 유효성 검사 경고가 발생할 때 이러한 이벤트도 발생합니다.
판독기가 유효성 검사를 위해 구성되어 있고 유효성 검사 이벤트 처리기가 설정 XmlSchemaValidationException 되지 않은 경우 모든 유효성 검사 오류에 대해 throw됩니다. 유효성 검사 경고로 인해 XmlSchemaValidationException throw되지 않습니다.
중요
유효성 검사 오류 메시지는 중요한 콘텐츠 모델 정보를 노출할 수 있습니다. 유효성 검사 오류 및 경고 메시지는 대리자를 ValidationEventHandler 사용하여 처리되거나 개체에 이벤트 처리기가 제공되지 XmlReaderSettings 않은 경우 노출 XmlSchemaValidationException 됩니다(유효성 검사 경고로 인해 XmlSchemaValidationException throw되지 않음). 이 콘텐츠 모델 정보는 신뢰할 수 없는 시나리오에서 노출되어서는 안 됩니다. 유효성 검사 경고 메시지는 기본적으로 표시되지 않으며 플래그를 ReportValidationWarnings 설정하여 보고할 수 있습니다.
SourceUri 예외를 발생시킨 XmlSchemaValidationException 스키마 파일에 대한 URI 경로를 반환하는 속성입니다. SourceUri 신뢰할 수 없는 시나리오에서는 이 속성을 노출해서는 안 됩니다.