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

Langage Delphi Discussion :

Delphi, XML, XSD, ActiveX MSXML 4.0


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Delphi, XML, XSD, ActiveX MSXML 4.0
    Bonjour à tous et à toutes

    Je travaille avec du XML avec Delphi 5 et OmniXML,
    jusque là tout va bien, mes fichiers XMLs se génèrent tout est OK.

    Maintenant, j'ai besoin de vérifier que mes fichiers respectent bien un schéma XSD et là, je coince...

    J'ai trouvé une piste de réponse ici: http://www.developpez.com/delphi/faq/?page=xml

    Ce code me plait bien, par contre, en tout début, il est dit d'installer/utiliser l'ActiveX MSXML 4.0. et lui mystère...
    Je ne l'ai ni dans mes ActiveX dispo dans Delphi, ni trouvé sur le web...
    J'ai trouvé d'autres codes sur le web, mais tous renvoient vers l'utilisation de ce sacré ActiveX MSXML 4.0....

    Je recherche donc de l'aide sur cet ActiveX MSXML 4.0 ou une autre solution pour valider un XML à l'aide d'un fichier XSD.
    En clair, je suis preneur de tous les tuyaux dispos sur Delphi et les fichiers XSD.

    Merci d'avance

  2. #2
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2002
    Messages : 144
    Points : 157
    Points
    157
    Par défaut
    Pour ajouter msXml 4.0, ce n'est pas vraiment un activex a importer mais une bibliotheque de type. Pour cela, rien de plus simple, Menu Delphi -> Projet -> Importer une bibliotheque de type .

    La fenetre suivante apparait :

    Pièce jointe 24266

    Il ne reste plus qu'a cliquer sur installer et le tour est joué...

    Fait attention dans quelle palette du installe le composant...

    Maintenant tu peux utiliser le parser microsoft...

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bon, j'ai un peu progressé, mais c'est pas encore ça...

    J'ai importé Microsoft XML v4.0, je l'ai compilé, mais au moment de l'install,
    j'ai un message:
    Ne peut pas charger le paquet 'MSXML.'
    Il contient l'unité 'MSXML2_TLB' qui est également contenue dans le paquet 'PivotCube'



    Je ne sais d'ailleurs même pas ce que c'est de composant 'PivotCube', j'ai repris un poste de dev où était déjà installé Delphi avec tout un tas de composants...

  4. #4
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 258
    Points : 156
    Points
    156
    Par défaut
    Pas de problème pour Delphi 2006. Fallait savoir que c'était un type library et pas un ocx. Par contre, j'ai vu qu'il y avait MSXML 5 et si aussi. Intéressant? Ou dois-je reste au 4?

    Je teste cela demain.

    Merci

  5. #5
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2002
    Messages : 144
    Points : 157
    Points
    157
    Par défaut
    Bonjour, PivotCube est un outils OLAP (Analyse Complexe de base de données multidimensionnelles : http://pivotcube.com).

    Si cet outils ne te sert à rien tu peux retirer le paquet dans Delphi, et cela te permettra d'installer MsXML4.0.

    Par contre, si tu en a besoin... il va falloir que tu modifie le paquet PivotCube, et là je vais avoir du soucis pour t'aider

  6. #6
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Effectivement, je pense que mon erreur de "PivotCube" n'a rien à voir avec mon MSXML.

    Aujourd'hui, j'ai donc décidé de tester ma validation XSD sur un nouveau poste, qui lui est sous Delphi 6.
    Sur ce poste là, tout est OK, ça se passe bien (importation, compilation, install).
    Je verrais dans un deuxième temps l'histoire de mon "PivotCube" sur mon poste principal, puisqu'il faut que je regarde toute mes sources pour savoir si j'utilise vraiement ce "PivotCube".

    Maintenant, j'essai donc d'utiliser le code que j'ai trouvé là, http://www.developpez.com/delphi/faq/?page=xml, mais je comprends pas tout.

    En fait, je ne sais pas trop par quel bout commencer la validation...
    Il faut faire à la suite un ValidateXMLFileName, un ValidateXMLText et un ValidateXMLDoc?? Il y a un point d'entrer unique?

    Pour ma part, je fais un ValidateXMLFileName qui se passe bien, ensuite, je passe au ValidateXMLText et là, j'ai un message d'erreur:

    Document XML non conforme au schéma
    Raison: Non valide au niveau supérieur du document


    Et là, je ne comprends pas bien ce qu'il essaie de me dire!!
    Je me suis dit que mes fichiers XML/XSD étaient peut être pourris à la base,
    je les ai donc ouvert avec XML Notepad 2007 et lui me dit que c'est tout OK.

    La boulette est donc vraiment chez moi, mais je comprends pas où...

    Quelqu'un aurait un exemple correct de validation de code?

    Merci d'avance

  7. #7
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 258
    Points : 156
    Points
    156
    Par défaut
    Tant qu'on est dans le sujet..

    depuis que j'ai mis MSXML4, je n'arrive plus à visualiser le XML.

    J'utilisais ceci

    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
     
    procedure TfrmVlan.DisplayXMLTreeShort(aBrowser: TWebBrowser;
      aXML: IXMLDOMDocument2);
    var
      HTMLDoc: variant;
      XSLDoc: IXMLDOMDocument2;
    begin
      aBrowser.Navigate('about:blank');
      HTMLDoc := aBrowser.Document;
      if not VarIsNull(HTMLDoc) then
      begin
        XSLDoc := coDOMDocument40.Create;
        if XSLDoc.Load('res://msxml4.dll/defaultss.xsl') then
        begin
          HTMLDoc.write(aXML.TransformNode(XSLDoc));
          HTMLDoc.Close;
        end;
      end;
    end;
    Je nai plus rien qui s'affiche. Si je prend

    res://msxml.dll/defaultss.xsl
    à la place (comme c'était avant avec msxml 1), j'ai le message d'erreur suivant

    Exception class EOleException with message 'The "http://www.w3c.org/TR/WD-xsl" namespace is no longer supported in this version od MSXML'
    Et rien ne s'affiche

Discussions similaires

  1. Validation de XML par XSD sans MSXML
    Par XPierrot dans le forum Langage
    Réponses: 3
    Dernier message: 23/03/2006, 08h46
  2. Lire des ms office via leur schema xml xsd
    Par goblin dans le forum Modules
    Réponses: 1
    Dernier message: 08/02/2006, 21h32
  3. [Delphi 4] [OPC] [ActiveX] Reconnexion propre à un serveur.
    Par _Marsu_ dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 11/05/2004, 16h00
  4. delphi XML / HTML caractéres speciaux !
    Par adem dans le forum EDI
    Réponses: 2
    Dernier message: 29/08/2002, 17h48

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