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 :

[11.2] Problème de lecture d'un XML EHierarchy_Request_Err


Sujet :

Langage Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 119
    Points : 41 252
    Points
    41 252
    Billets dans le blog
    63
    Par défaut [11.2] Problème de lecture d'un XML EHierarchy_Request_Err
    Bonjour,

    avant de me mettre au boulot, j'ai repris "une vieille tapisserie" le chargement et analyse de fichier SVG.
    Ce qui avait l'air de bien se passer avec un de mes drapeaux tests avec une version plus ancienne (10.3)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TLoadSVGForm.LoadSVG(aFile: TFileName);
    var
      XmlSvg: IXMLDocument;
    begin
      DefaultDOMVendor := 'ADOM XML v4';
      XmlSvg := LoadXMLDocument(aFile);
    ...
    pour cette version de document
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1500" height="1000" viewBox="0 0 24000 16000">
    <title>Flag of Barbados</title>
    <rect width="24000" height="16000" fill="#00267f" />
    <rect width="8000" height="16000" fill="#ffc726" x="8000" />
    <path id="h" fill="#000"
    d="M 12000,4124 C 11740,4833 11475,5571 10908,6136 C 11084,6078 11392,6026 11590,6031 L 11590,9013 L 10748,9138 C 10718,9135 10708,9088 10708,9024 C 10627,8098 10408,7320 10156,6515 C 10138,6405 9819,5985 10065,6059 C 10095,6063 10424,6197 10372,6133 C 9924,5669 9269,5335 8633,5236 C 8577,5222 8544,5250 8594,5315 C 9438,6614 10144,8147 10138,9966 C 10466,9966 11261,9772 11590,9772 C 11590,9772 11590,11876 11590,11876 L 12005,11876 12100, 6000 z"/>
    <use xlink:href="#h" transform="translate(24000,0) scale(-1,1)"/>
    </svg>

    me renvoie désormais une erreur
    Le projet ProjectLoadSVG.exe a déclenché la classe d'exception EHierarchy_Request_Err avec le message 'Hierarchy request error.'.
    [Edit] la version 10.4.2 me renvoie également l'erreur

    Si j'enlève manuellement le commentaire (ligne 2 du XML) cela passe.
    Nom : Capture.PNG
Affichages : 147
Taille : 22,5 Ko
    Question : comment faire pour ne pas faire cette manipulation ? une histoire de DOMVendor ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 119
    Points : 41 252
    Points
    41 252
    Billets dans le blog
    63
    Par défaut
    Je me réponds parce que je ne voulais pas rester sur un échec. Oui, je suis un vrai pitbull quelquefois
    Citation Envoyé par SergioMaster Voir le message
    une histoire de DOMVendor ?
    Utiliser DOMVendor:='Omni XML'; résous le problème

    Reste que, je reste sceptique :
    • Jusqu'à quand ce changement de DOMVendor sera efficace ?
    • Comment choisir le bon DOMVendor ?


    En conclusion, c'est résolu, mais je prends toute explication sur les DOMVendor

    En Nota Bene, voici ma démarche pour trouver le bon DOMVendor.
    J'ai écrit un programme simple
    Nom : Capture.PNG
Affichages : 126
Taille : 7,9 Ko

    avec ce code
    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
    {$R *.dfm}
     
    uses  Xml.xmldom, Xml.XMLIntf, Xml.XMLDoc, Xml.adomxmldom, Xml.omnixmldom;
     
    procedure TForm131.FormCreate(Sender: TObject);
    var v : integer;
    begin
    for  v:=0 to DomVendors.Count-1 do
      ComboBox1.Items.add(Domvendors.Vendors[v].Description);
    end;
     
    procedure TForm131.SpeedButton1Click(Sender: TObject);
    var   XmlSvg: IXMLDocument;
    begin
    if FileOpenDialog1.execute then
     begin
       edit1.Text:=FileOpenDialog1.FileName;
       memo1.Lines.LoadFromFile(FileOpenDialog1.FileName);
       try
          DefaultDOMVendor := combobox1.Text;
          XmlSvg := LoadXMLDocument(edit1.text);
       except
         on e:exception do showmessage(e.Message);
       end;
     end;
    end;
    même si la capture de l'exception ne fonctionne pas toujours comme il n'y avait que 3 DOMVendors ce fut assez simple à tester

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    alors j'ai regardé un peu car NotePad++ rapporte l'erreur "DTD interdite" sur ce document...alors que c'est valide en fait...

    les explications ici

    ils parlent de ProhibitDtd qui est en fait déprécié depuis...donc voici les explications en français de DtdProcessing qui lève une exception s'il a la valeur DtdProcessing.Prohibit.

    après je n'ai pas regardé dans Delphi s'il était possible de modifier ce paramètre

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 119
    Points : 41 252
    Points
    41 252
    Billets dans le blog
    63
    Par défaut
    Merci de ta recherche.

    Il y a bien quelques références à Dtd parsemées dans les unités Xml.xxxx.pas, mais seule l'unité Xml.Win.msxmldom.pas aurait un accès or, comme il s'agit d'une application FMX seuls les DOMVendors 'ADOM XML v4' ou 'Omni XML' m'intéressait donc, je passe

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    ceci dit c'est une des raisons qui me font détester XML...on pourrait penser que c'est juste un langage à balises, mais en fait il y a tout un bordel autour avec les DTD les XSLT et autres qui rendent l'ensemble sacrément casse gueule (d'autres te diront incroyablement puissant)

    et du XML j'en bouffe pas mal avec les services SOAP de l'ASIP Santé...et ils font bouger les règles en permanence ce qui rend le truc encore plus imbuvable...d'autant que leurs WS sont incapables de retourner des erreurs en bonne et due forme, ils se contentent généralement de te retourner une erreur 500 de plantage de la requête, point final. Le truc le plus énorme que j'ai vu c'est que pour une requête donnée, il faut soit faire du SOAP mis en forme (donc avec des retours à la ligne et non la forme compacte), soit insérer un espace devant une certaine balise sinon leur serveur ne reconnait pas la requête...

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 119
    Points : 41 252
    Points
    41 252
    Billets dans le blog
    63
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    et du XML j'en bouffe pas mal avec les services SOAP de l'ASIP Santé...et ils font bouger les règles en permanence ce qui rend le truc encore plus imbuvable
    J'imagine ça sans peine

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

Discussions similaires

  1. problème de lecture xsl avec xml
    Par rhtlk dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/07/2009, 14h06
  2. [C++ builder 6]Problème de lecture de fichier XML
    Par getz85 dans le forum C++Builder
    Réponses: 8
    Dernier message: 27/03/2009, 17h56
  3. Problème de lecture d'un XML
    Par NejNej dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/03/2009, 10h30
  4. Réponses: 1
    Dernier message: 21/09/2006, 07h15
  5. [DOM4J] Problème de lecture de fichier xml avec dom4j
    Par santana2006 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 05/04/2006, 16h52

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