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

Bibliothèques Discussion :

Xerces C++ : validation et DTD


Sujet :

Bibliothèques

  1. #1
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut Xerces C++ : validation et DTD
    Bonjour à tous,
    je cherche à valider un document XML sans déclaration de type (ni DTD ni schéma) avec une DTD que je charge dynamiquement.
    Exemple :
    je reçois les données suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version="1.0"?>
    <root>
      <elm></elm>
    </root>
    et je souhaite savoir si le document est conforme à une DTD contenue dans un fichier "toto.dtd".

    Voici le code que j'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    XercesDOMParser* parser = new XercesDOMParser;
    parser->setDoValidation( true ) ;
    parser->setValidationScheme(XercesDOMParser::Val_Always);
    Grammar* grammar =  parser->loadGrammar("path/to/toto.dtd",Grammar::DTDGrammarType,true);
    parser->useCachedGrammarInParse(true);
    CustomErrorHandler* handler = new CustomErrorHandler;
    parser->setErrorHandler(handler);
     
    try {
       parser->parse(_T("document.xml"));
    } catch (SAXParseException& e) {
       //error handling
    }
    où CustomErrorHandler est une classe comptant juste les erreurs rencontrées.
    Mais ce code échoue avec l'erreur suivante :
    Unknown element 'root'.
    Celui-ci fait pourtant bien partie de la DTD.

    Voici ma question :
    * quelqu'un connaît-il un moyen simple d'arriver à mes fins ?

    Merci à tous.

    ps : c'est aussi valable avec un schéma plutôt qu'une DTD
    ps : si vous avez la solution en Java, je prend aussi !

  2. #2
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Par défaut Parse DTD en C++
    Si quelqu'un a la reponse, je suis aussi preneur !

    Katzy

Discussions similaires

  1. [Xerces-C++] Validation DTD
    Par yassine480480 dans le forum XML
    Réponses: 1
    Dernier message: 14/10/2008, 16h24
  2. Parser + validation par DTD avec xerces
    Par xenoise dans le forum XML
    Réponses: 0
    Dernier message: 28/04/2008, 22h40
  3. [SAX] Parser XML et validation avec dtd
    Par arno00020 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 22/11/2005, 17h30
  4. [DOM] Erreur pour valider une DTD
    Par lenghh dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 19/05/2004, 18h15
  5. Forcer la validation suivant DTD externe
    Par iceman dans le forum Valider
    Réponses: 9
    Dernier message: 30/12/2003, 08h54

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