Bonjour,
J'ai un fichier XML et son schéma xsd. Je voudrai lire ce fichier et vérifier qu'il respecte bien le schéma xsd. S'il ya une erreur dans le fichier, je voudrai CLAIREMENT afficher ce qui ne va pas. J'ai ce code là :
Code :
- ..........
- //Ouverture d'un flux vers le fichier XML
- FileStream fs = new FileStream(p_filename, FileMode.Open);
- XmlReader reader = new XmlTextReader(fs);
- //Création de l'analyseur XML
- xmlValidatingReader = new XmlValidatingReader(reader);
- xmlValidatingReader.ValidationType = ValidationType.Schema;
- XmlSchemaCollection sc = new XmlSchemaCollection();
- //Récupération du chemin où se trouve le schéma xsd
- string schemaPath = Spir.Commun.Technical.Tools.SysUtils.GetConfigFile(p_schemaname);
- sc.Add(null,schemaPath);
- //Ajout d'un capteur d'évènement si il y a une erreur de validation
- xmlValidatingReader.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(ValidationErrorCallback);
- //Ajout du schéma sur lequel on va valider le fichier XML
- xmlValidatingReader.Schemas.Add(sc);
- //Lecture du fichier
- while (xmlValidatingReader.Read())
- {
- }
- xmlValidatingReader.Close();
- ........
- private void ValidationErrorCallback(object sender, ValidationEventArgs args)
- {
- throw new ApplicationException("Cause : Format du fichier XML invalide - Erreur : " + args.Message);
- }
|
Le problème ici, est que j'affiche "args.Message", mais je voudrai qu'un utilisateur lambda puisse comprendre le message. Par exemple afficher : "Erreur à la ligne 17 : L'élément MonElement n'est pas valide. Il ne respecte pas le schéma xsd". Un message du genre. Est-ce que c'est facilement réalisable? Ou je ne pourrai pas avoir mieux que le message d'erreur provenant de ValidationEventArgs?
Merci par avance de vos réponses.