XmlReaderSettings.ValidationEventHandler Événement

Définition

Se produit quand le lecteur trouve 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

ValidationEventHandler

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 valeur est définie sur l’un ou l’autre ValidationType DTD Schema. 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, une XmlSchemaValidationException exception est levée pour toutes les erreurs de validation. (Les avertissements de validation n’entraînent pas la levée d’un XmlSchemaValidationException avertissement).

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 ValidationEventHandler délégué ou sont exposés en tant que XmlSchemaValidationException si aucun gestionnaire d’événements n’est fourni à l’objet XmlReaderSettings (les avertissements de validation ne provoquent pas la levée d’un gestionnaire d’événements 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’ACCÈS d’URI au fichier de schéma qui a provoqué l’exception. La SourceUri propriété ne doit pas être exposée dans des scénarios non approuvés.

S’applique à

Voir aussi