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

Valider XML Discussion :

[VC++] Erreur lors de l'ajout du XSD


Sujet :

Valider XML

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 129
    Points
    129
    Par défaut [VC++] Erreur lors de l'ajout du XSD
    Bonjour à tous,

    Voilà quelques heures que je suis bloqué que un truc sûrement tout bête (ou pas...). J'ai une application écrite en VC++ qui prend en entrée un fichier GPX (c'est tout simplement un fichier XML contenant des données GPS). Je souhaiterai dans cette application pouvoir valider ce fichier grâce au schéma fourni ici : gpx.xsd

    J'ai trouvé pas mal d'exemples de code mais rien n'y fait. Voilà ce qui plante (je vous passe les if(FAILED(hResult))) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    HRESULT hResult = S_OK;
    hResult = CoInitialize(NULL);
     
    hResult = ptrSchemaCache.CreateInstance(__uuidof(XMLSchemaCache60));
     
    hResult = ptrSchemaCache->add(_bstr_t( _T("")), _variant_t( _T("D:\\gpx.xsd")));
    Mon ptrSchemaCache est déclaré comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #import <msxml6.dll>
    using namespace MSXML2;
     
    [...]
     
    MSXML2::IXMLDOMSchemaCollectionPtr ptrSchemaCache;
    Donc clairement, ça plante sur le ptrSchemaCache->add(). Ca compile sans problème mais lors du débugage, j'ai le message d'erreur suivant que je passe sur cette instruction :

    Unhandled exception at 0x7c812afb in GeoVision.exe: Microsoft C++ exception: _com_error at memory location 0x0012fb80..
    Qui est à priori généré dans la fonction suivante de msxml6.tli :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    inline HRESULT IXMLDOMSchemaCollection::add ( _bstr_t namespaceURI, const _variant_t & var ) {
        HRESULT _hr = raw_add(namespaceURI, var);
        if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
        return _hr;
    }

    Je pense n'avoir rien oublié...

    Si quelqu'un à une idée... ça fait un moment que je me casse les dents là-dessus

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 129
    Points
    129
    Par défaut
    Bon... ben je m'auto-répond en espérant que ça puisse servir à d'autres :

    Dans mon fichier XSD :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <xsd:schema
    	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    	xmlns="http://www.topografix.com/GPX/1/1"
    	targetNamespace="http://www.topografix.com/GPX/1/1"
    	elementFormDefault="qualified">
    C'est le targetNamespace qui est important.

    Du coup dans mon code je dois modifier le add() par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    hResult = ptrSchemaCache->add(_bstr_t( _T("http://www.topografix.com/GPX/1/1")), _variant_t( _T("D:\\gpx.xsd")));
    Y'a des fois comme ça, ben c'est tout bête et on y passe des heures....

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

Discussions similaires

  1. Erreur lors de l'ajout d'une référence web
    Par Pilloutou dans le forum Visual Studio
    Réponses: 2
    Dernier message: 12/02/2007, 15h11
  2. Réponses: 4
    Dernier message: 06/01/2007, 23h11
  3. [INSERT] Erreur lors de l'ajout d'un objet
    Par bouchette63 dans le forum DB2
    Réponses: 3
    Dernier message: 30/08/2006, 09h32
  4. Réponses: 3
    Dernier message: 08/10/2005, 14h57
  5. Erreur lors de l'ajout d'une table
    Par FredMines dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/07/2005, 13h13

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