XmlReaderSettings.ValidationEventHandler Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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.