XmlReaderSettings.ValidationEventHandler Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Występuje, gdy czytelnik napotka błędy walidacji.
public:
event System::Xml::Schema::ValidationEventHandler ^ ValidationEventHandler;
public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler;
member this.ValidationEventHandler : System.Xml.Schema.ValidationEventHandler
Typ zdarzenia
Przykłady
W poniższym przykładzie pokazano ustawienia, które należy określić w celu utworzenia czytnika, który weryfikuje użycie wbudowanego schematu, a także wyświetla ostrzeżenia dotyczące walidacji. Procedura obsługi zdarzeń weryfikacji używa XmlSeverityType wyliczenia, aby odróżnić ostrzeżenia i błędy.
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
Uwagi
Te zdarzenia występują podczas odczytywania dokumentu wystąpienia XML, jeśli ValidationType parametr jest ustawiony na DTD wartość lub Schema. ReportValidationWarnings Jeśli ustawienie zostało włączone we ValidationFlags właściwości, te zdarzenia występują również w przypadku napotkania ostrzeżeń dotyczących walidacji.
Jeśli czytnik jest skonfigurowany do sprawdzania poprawności i nie ustawiono procedury obsługi zdarzeń weryfikacji, XmlSchemaValidationException zostanie zgłoszony błąd dla wszystkich błędów walidacji. (Ostrzeżenia sprawdzania poprawności nie powodują XmlSchemaValidationException zgłoszenia).
Ważne
Komunikaty o błędach walidacji mogą uwidaczniać poufne informacje o modelu zawartości. Komunikaty o błędach walidacji i ostrzeżeniach są obsługiwane przy użyciu delegata ValidationEventHandler lub są widoczne jako program obsługi zdarzeń XmlSchemaValidationException nie jest dostarczany do XmlReaderSettings obiektu (ostrzeżenia weryfikacji nie powodują XmlSchemaValidationException zgłoszenia błędu). Te informacje o modelu zawartości nie powinny być widoczne w niezaufanych scenariuszach. Komunikaty ostrzegawcze dotyczące walidacji są domyślnie pomijane i można je zgłaszać przez ustawienie flagi ReportValidationWarnings .
Właściwość SourceUri obiektu XmlSchemaValidationException zwraca ścieżkę identyfikatora URI do pliku schematu, który spowodował wyjątek. Właściwość SourceUri nie powinna być widoczna w niezaufanych scenariuszach.