XmlReaderSettings.ValidationEventHandler Olay

Tanım

Okuyucu doğrulama hatalarıyla karşılaştığında oluşur.

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

Olay Türü

ValidationEventHandler

Örnekler

Aşağıdaki örnek, satır içi şema kullanarak doğrulayan ve doğrulama uyarıları da görüntüleyen bir okuyucu oluşturmak için belirtilmesi gereken ayarları gösterir. Doğrulama olayı işleyicisi, uyarılar ve hatalar arasında ayrım yapmak için numaralandırmayı kullanır 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

Açıklamalar

veya olarak ayarlandıysa ValidationType DTD Schema, xml örneği belgesi okunurken bu olaylar oluşur. ReportValidationWarnings ayarı özelliğinde ValidationFlags etkinleştirildiyse, doğrulama uyarılarıyla karşılaşıldığında bu olaylar da gerçekleşir.

Okuyucu doğrulama için yapılandırılmışsa ve hiçbir doğrulama olayı işleyicisi ayarlanmamışsa, tüm doğrulama hataları için bir XmlSchemaValidationException oluşturulur. (Doğrulama uyarıları, bir XmlSchemaValidationException atlanmasına neden olmaz).

Önemli

Doğrulama hata iletileri hassas içerik modeli bilgilerini kullanıma sunabilir. Doğrulama hatası ve uyarı iletileri temsilci kullanılarak ValidationEventHandler işlenir veya nesneye XmlReaderSettings hiçbir olay işleyicisi sağlanmadıysa (XmlSchemaValidationExceptiondoğrulama uyarıları bir XmlSchemaValidationException oluşturulurken neden olmaz) olarak kullanıma sunulur. Bu içerik modeli bilgileri güvenilmeyen senaryolarda gösterilmemelidir. Doğrulama uyarı iletileri varsayılan olarak gösterilmez ve bayrağı ayarlanarak ReportValidationWarnings bildirilebilir.

özelliğinin SourceUri XmlSchemaValidationException özelliği, özel duruma neden olan şema dosyasının URI yolunu döndürür. Özelliğin SourceUri güvenilmeyen senaryolarda kullanıma sunulmaması gerekir.

Şunlara uygulanır

Ayrıca bkz.