Partager via


XmlReaderSettings.ValidationEventHandler Événement

Définition

Se produit lorsque le lecteur rencontre des erreurs de validation.

public:
 event System::Xml::Schema::ValidationEventHandler ^ ValidationEventHandler;
public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler;
member this.ValidationEventHandler : System.Xml.Schema.ValidationEventHandler 

Type d'événement

Exemples

L’exemple suivant montre les paramètres à spécifier pour créer un lecteur qui valide à l’aide d’un schéma inline et qui affiche également des avertissements de validation. Le gestionnaire d’événements de validation utilise l’énumération XmlSeverityType pour différencier les avertissements et les erreurs.

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

Remarques

Ces événements se produisent lors de la lecture d’un document d’instance XML si la ValidationType valeur est définie DTD sur Schemaou . Si le ReportValidationWarnings paramètre a été activé sur la ValidationFlags propriété, ces événements se produisent également lorsque des avertissements de validation sont rencontrés.

Si le lecteur est configuré pour la validation et qu’aucun gestionnaire d’événements de validation n’a été défini, il XmlSchemaValidationException est levée pour toutes les erreurs de validation. (Les avertissements de validation n’entraînent pas de XmlSchemaValidationException levée).

Important

Les messages d’erreur de validation peuvent exposer des informations sensibles sur le modèle de contenu. Les messages d’erreur et d’avertissement de validation sont gérés à l’aide du délégué ValidationEventHandler ou exposés sous forme de XmlSchemaValidationException si aucun gestionnaire d’événements n’est fourni à l’objet XmlReaderSettings (les avertissements de validation n’entraînent pas la levée d’un XmlSchemaValidationException). Ces informations de modèle de contenu ne doivent pas être exposées dans des scénarios non approuvés. Les messages d’avertissement de validation sont supprimés par défaut et peuvent être signalés en définissant l’indicateur ReportValidationWarnings .

La SourceUri propriété d’un XmlSchemaValidationException retourne le chemin d’URI du fichier de schéma qui a provoqué l’exception. La propriété SourceUri ne doit pas être exposée dans des scénarios non fiables.

S’applique à

Voir aussi