Udostępnij za pośrednictwem


XmlReaderSettings.ValidationEventHandler Zdarzenie

Definicja

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

ValidationEventHandler

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.

Dotyczy

Zobacz też