XmlReaderSettings.ValidationEventHandler Olay
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 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.