XmlReaderSettings.ValidationEventHandler Event

Definition

판독기에서 유효성 검사 오류가 발견되면 발생합니다.Occurs when the reader encounters validation errors.

public:
 event System::Xml::Schema::ValidationEventHandler ^ ValidationEventHandler;
public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler;
member this.ValidationEventHandler : System.Xml.Schema.ValidationEventHandler 

Examples

다음 예제에서는 인라인 스키마를 사용 하 여 유효성을 검사 하 고 또한 유효성 검사 경고를 표시 하는 판독기를 만들려면를 지정 하는 설정을 보여 줍니다.The following example shows the settings to specify to create a reader that validates using an inline schema and that also displays validation warnings. 유효성 검사 이벤트 처리기는 XmlSeverityType 열거를 사용 하 여 경고와 오류를 구분 합니다.The validation event handler uses the XmlSeverityType enumeration to differentiate between warnings and errors.

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 

Remarks

이러한 이벤트는 ValidationType DTD 또는 Schema으로 설정 된 경우 XML 인스턴스 문서를 읽는 동안 발생 합니다.These events occur while reading an XML instance document if the ValidationType is set to either DTD or Schema. ValidationFlags 속성에서 ReportValidationWarnings 설정이 사용 하도록 설정 된 경우 유효성 검사 경고가 발생 하는 경우에도 이러한 이벤트가 발생 합니다.If the ReportValidationWarnings setting has been enabled on the ValidationFlags property these events also occur when any validation warnings are encountered.

유효성 검사를 위해 판독기가 구성 되 고 유효성 검사 이벤트 처리기가 설정 되지 않은 경우 모든 유효성 검사 오류에 대 한 XmlSchemaValidationException이 throw 됩니다.If the reader is configured for validation and no validation event handler has been set, an XmlSchemaValidationException is thrown for all validation errors. 유효성 검사 경고로 인해 XmlSchemaValidationException throw 되지 않습니다.(Validation warnings do not cause an XmlSchemaValidationException to be thrown).

Important

유효성 검사 오류 메시지는 중요 한 콘텐츠 모델 정보를 노출할 수 있습니다.Validation error messages may expose sensitive content model information. 유효성 검사 오류 및 경고 메시지는 ValidationEventHandler 대리자를 사용 하 여 처리 되거나 XmlReaderSettings 개체에 제공 된 이벤트 처리기가 없는 경우 XmlSchemaValidationException로 노출 됩니다 (유효성 검사 경고로 인해 XmlSchemaValidationException throw 되지 않음).Validation error and warning messages are handled using the ValidationEventHandler delegate, or are exposed as an XmlSchemaValidationException if no event handler is provided to the XmlReaderSettings object (validation warnings do not cause an XmlSchemaValidationException to be thrown). 신뢰할 수 없는 시나리오에서이 콘텐츠 모델 정보를 노출 되어야 합니다.This content model information should not be exposed in untrusted scenarios. 유효성 검사 경고 메시지는 기본적으로 표시 되지 않으며 ReportValidationWarnings 플래그를 설정 하 여 보고할 수 있습니다.Validation warning messages are suppressed by default and can be reported by setting the ReportValidationWarnings flag.

XmlSchemaValidationExceptionSourceUri 속성은 예외를 발생 시킨 스키마 파일의 URI 경로를 반환 합니다.The SourceUri property of an XmlSchemaValidationException returns the URI path to the schema file that caused the exception. SourceUri 속성은 신뢰할 수 없는 시나리오에서 노출 되 면 안 됩니다.The SourceUri property should not be exposed in untrusted scenarios.

Applies to

See also