Aracılığıyla paylaş


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ü

Ö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 ValidationTypeDTDSchema, bu olaylar bir XML örneği belgesi okunurken 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 açığa çıkarabilir. Doğrulama hatası ve uyarı iletileri, ValidationEventHandler temsilcisi kullanılarak işlenir veya XmlSchemaValidationException nesnesine hiçbir olay işleyicisi sağlanmadığında XmlReaderSettings olarak sunulur (doğrulama uyarıları bir XmlSchemaValidationException istisnasının fırlatılmasına neden olmaz). Bu içerik modeli bilgileri güvenilmeyen senaryolarda gösterilmemelidir. Doğrulama uyarı iletileri varsayılan olarak gizlenmiştir ve ReportValidationWarnings bayrağı ayarlanarak raporlanabilir.

SourceUri özelliği, XmlSchemaValidationException istisnanın sebebi olan şema dosyasının URI yolunu döndürür. SourceUri özelliği güvenilmeyen senaryolarda kullanıma sunulmamalıdır.

Şunlara uygulanır

Ayrıca bkz.