IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

valider un fragment XML


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut valider un fragment XML
    Salut, est ce que quelqu'un peut me dire comment est ce qu'on peut valider un fragment de fichier xml par rapport à un xml shéma??
    Merci d'avance.

  2. #2
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut
    voilà j'ai trouvé le code suivant mais il ne fonctionne pas : on lui donne n'importe quel fragment et il l'accepte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    public void xsdFragmentValidate(string xmlFrag)
    {
     XmlValidatingReader reader  = null;
     XmlSchemaCollection myschema = new XmlSchemaCollection();
     ValidationEventHandler eventHandler = new  ValidationEventHandler(XSDFragmentValidationcs.ShowCompileErrors );
     MainForm mf = (MainForm)(formMf);
     try
        {
    	//Create the XmlParserContext.
    	XmlParserContext context = new XmlParserContext(null, null, "", XmlSpace.None);
     
    	//Implement the reader. 
    	reader = new XmlValidatingReader(xmlFrag, XmlNodeType.Element, context);
    	OpenFileDialog dlgOpen = new OpenFileDialog();
            if (dlgOpen.ShowDialog() == DialogResult.OK)
            {
    		//Add the schema.
    		myschema.Add("http://tempuri.org/XMLSchema.xsd",dlgOpen.FileName );//dlgOpen.FileName//"c:\\SchemaGenerique.xsd"
              }
    	 //Set the schema type and add the schema to the reader.
    	reader.ValidationType = ValidationType.Schema;
    	reader.Schemas.Add(myschema);
     
    	while (reader.Read())
    	{}
     
    	mf.console.AppendText("Completed validating xmlfragment\n");
    	}
    	catch (XmlException XmlExp)
    	{
    	mf.console.AppendText(XmlExp.Message+"\n");
    	}
    	catch(XmlSchemaException XmlSchExp)
    	{
    	mf.console.AppendText(XmlSchExp.Message+"\n");
    	}
    	catch(Exception GenExp)
    	{
    	mf.console.AppendText(GenExp.Message+"\n");
    	}
     
     
      }
    	public static void ShowCompileErrors(object sender, ValidationEventArgs args)
    		{
     
    		Console.WriteLine("Validation Error:"+ args.Message);
    		}
    est ce que quelqu'un peut m'aider à résoudre e problème.

  3. #3
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut
    bon il parait qie ma question est un peu difficile, mais bon j'ai trouvé le problème
    en fait il faut bien gérer les namespace: si on utilise un namespace, on doit bien ajouter le namespace au fragment qu'on veux évaluer, sinon on corregie le code comme suit :
    on remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //Add the schema.
    myschema.Add("http://tempuri.org/XMLSchema.xsd",dlgOpen.FileName);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //Add the schema.
    myschema.Add(null,dlgOpen.FileName);
    "http://tempuri.org/XMLSchema.xsd"
    étant le namespace.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XML] validation de fichier XML:l'ordre des balises compte ?
    Par longbeach dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 04/09/2005, 18h53
  2. [DOM] Valider un fichier xml
    Par P4dre dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 08/08/2005, 11h17
  3. Réponses: 2
    Dernier message: 03/06/2005, 11h00
  4. Plugin Eclipse pour validation de donnees XML (shema)
    Par Raphael94 dans le forum Valider
    Réponses: 2
    Dernier message: 10/06/2004, 16h33
  5. validation d'un XML schema
    Par nicolas_jf dans le forum Valider
    Réponses: 2
    Dernier message: 05/05/2003, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo