Utiliser un fichier xsd en tant que ressource

Signaler
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
-
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
-
Bonjour,

je souhaite créé une application console qui permet de valider des fichiers XML à l'aide d'un schema xsd.

J'ai ajouté mon fichier xsd dans ma solution.
Mais je ne sais pas comment y accéder pour l'ajouter dans mon XmlReaderSettings.Schema afin de faire la validation.

Est ce que quelqu'un pourrais m'aider??


Merci

4 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
58
Messages postés
2
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
29 août 2011

Bonsoir,

Ce sujet est très intéressant. Au fait, je cherche à implémenter pour mon éditeur XML(j'ai codé à base du treeview de visual csharp 2008) une fonction(s) qui permet d'aider l'utilisateur(de mon application) sur le choix des éléments et attributs à ajouter à un nœud xmlnode sélectionné. Et cela à partir d'un fichier XSD.

Ex: Mon but est que quand l'utilisateur clique sur un noeud "élément", il obtient une liste déroulante des éléments(éléments enfants)/attributs permis pour ce nœud. Toutes ces informations devrons être extraits d'un fichier XSD externe.
Je veux donc charger en mémoire et manipuler les noeuds du fichier xsd.

Ce que j'ai fait:
private bool ValidateDoc(XmlDocument doc)
{
bool isXmlValid = true;
StringBuilder xmlValMsg = new StringBuilder();
StringWriter sw = new StringWriter();
doc.Save(sw);

XmlReaderSettings settings = new XmlReaderSettings();
//settings.ProhibitDtd = false;
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add("", "http://bibnum.bnf.fr/ns/tdmNum.xsd");

settings.ValidationEventHandler += new ValidationEventHandler(delegate(object sender, ValidationEventArgs args)
{
isXmlValid = false;
xmlValMsg.AppendLine(args.Message);
});
XmlReader validator = XmlReader.Create(new StringReader(sw.ToString()), settings);
try
{
int i = 0;
while (validator.Read())
{
string m = validator.SchemaInfo.ToString();
// Permet d'ajouter du code ici afin de traiter le contenu.
}
}
catch (XmlException e)
{
Console.WriteLine(e.Message);
}

validator.Close();

message = xmlValMsg.ToString();
return isXmlValid;
}

Cet code permet simplement la validation globale du fichier XML mais non l'extraction et l'utilisation des règles dans le XSD.

Est-ce que vous pourriez m'aider??
Messages postés
2
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
29 août 2011

S'il vous plaît répondez, c'est très urgent!!!
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
21
Bonsoir, il y a un éditeur XML dans SharpDevelop qui justement fait l'auto-complétion, ca s'appelle XmlEditor dans l'arboresence du code SharpDevelop : http://sharpdevelop.net/opensource/sd/download/

ShareVB