XmlReaderSettings.ValidationEventHandler XmlReaderSettings.ValidationEventHandler XmlReaderSettings.ValidationEventHandler Event

定義

リーダーが検証エラーを検出すると発生します。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 

次の例では、インラインスキーマを使用して検証し、検証の警告を表示するリーダーを作成するように指定する設定を示します。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 

注釈

これらのイベントは、がまたはValidationType SchemaのいずれかDTDに設定されている場合に、XML インスタンスドキュメントの読み取り中に発生します。These events occur while reading an XML instance document if the ValidationType is set to either DTD or Schema. プロパティで設定が有効になっている場合、これらのイベントは、検証の警告が発生したときにも発生します。 ReportValidationWarnings ValidationFlagsIf the ReportValidationWarnings setting has been enabled on the ValidationFlags property these events also occur when any validation warnings are encountered.

リーダーが検証用に構成されていて、検証イベントハンドラーが設定XmlSchemaValidationExceptionされていない場合は、すべての検証エラーに対してがスローされます。If the reader is configured for validation and no validation event handler has been set, an XmlSchemaValidationException is thrown for all validation errors. (検証の警告によってXmlSchemaValidationExceptionがスローされることはありません)。(Validation warnings do not cause an XmlSchemaValidationException to be thrown).

重要

検証エラーメッセージによって、機密性の高いコンテンツモデル情報が公開される場合があります。Validation error messages may expose sensitive content model information. 検証エラーと警告メッセージはValidationEventHandler 、デリゲートを使用して処理されるか、 XmlSchemaValidationException XmlReaderSettings XmlSchemaValidationExceptionオブジェクトにイベントハンドラーが提供されない場合はとして公開されます (検証の警告によってがスローされることはありません)。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.

のプロパティはSourceUri 、例外の原因となったスキーマファイルへの URI パスを返します。XmlSchemaValidationExceptionThe 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.

適用対象

こちらもご覧ください