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 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.