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 :

Problème lors de la validation par DTD


Sujet :

Valider XML

  1. #1
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut Problème lors de la validation par DTD
    Salut.

    J'utilise régulièrement xml pour de l'échange de données. Voulant vérifier la validité d'un xml, j'ai glané, notamment sur ce tuto (http://gilles-chagnon.developpez.com...emas/?page=dtd) des infos, mais apparemment, je fais un truc qui coince. Editix, que j'utilise pour tester la validité, me dit "no protocol: contacts.dtd".

    Voici le xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
     
    <!DOCTYPE contacts SYSTEM "contacts.dtd">
     
    <contacts>
      <contact>
        <prenom>Pierre</prenom>
        <nom>Fauconnier</nom>
      </contact>
    </contacts>
    et son dtd, juste à côté dans le même dossier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!ELEMENT contacts (contact*)>
    <!ELEMENT contact (prenom, nom)>
    <!ELEMENT prenom (#PCDATA)>
    <!ELEMENT nom (#PCDATA)>
    Si quelqu'un peut me dire en quoi ce n'est pas valide... Je suppose que c'est une bêtise, mais à force d'être dessus, je n'y vois goutte.

    Merci d'avance!
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Si quelqu'un peut me dire en quoi ce n'est pas valide...
    Je dirais plutôt c'est bien valide. Le problème probablement provient de l'éditeur, plus exactement, la résolution du parcours, dans ce cas, relatif.

    Si le xml est tapé comme "document nouveaux" à l'EditiX, il serait difficile à déterminer par où se référer le parcours pour trouver contacts.dtd. Dans ce cas, essayez d'y mettre un parcours absolu du format comme "c:\x\y\contacts.dtd".

    Si le xml est chargé du système de fichier déjà, l'interprétation du parcours relatif serait comme on pense déjà, la même location que se trouve le xml.

    Voilà ce que je pense pour le moment.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Autrement dit : c'est valide, mais Editix se plaint qu'il n'y a aucun protocole indiqué dans l'URI système "contacts.dtd".

    Il ne sait pas où aller le chercher ce fichier contacts.dtd. Ce n'est pas par HTTP, ce n'est pas par fichier local, ce n'est une URN, donc où ? Il ne sait pas.

    Ne connaissant pas Editix je ne sais pas comment tu peux faire pour lui clarifier les choses. Normalement avoir le fichier XML et DTD dans le même répertoire, suffit à faire marcher ça (pas de de protocole dans l'URI, ça en fait une URI relative, donc "contacts.dtd" est relatif au fichier XML en cours, autrement dit c'est un fichier voisin.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Points : 297
    Points
    297
    Par défaut
    tu as peut être dans les paramètres de Editix un éléments qui lui donne l'emplacement des DTD qu'il doit aller chercher quand tu les appellent dans un XML ?

    mais sinon c'est bien valide comme dit précédemment (et le XML et la DTD).
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Merci à tous les trois pour vos réponses... Ca me rassure sur mes facultés...

    Le fichier de la DTD se trouve bien à côté du fichier xml dans le même dossier, et il porte bien ce nom-là. J'ai bien vérifié. A tout hasard, j'ai essayé avec le chemin absolu. Ca pose le même problème.

    Cela étant, il n'y a pas qu'Editix qui pose problème. J'ai essayé de l'ouvrir en VBA, il refuse également, lorsque je laisse la ligne <!DOCTYPE.... Si je la commente, ça passe.

    Bizarre...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    J'ai une ou deux versions anciennes d'EditiX que j'ai largement délaissé depuis des temps, et ce sont ceux il donne.
    Nom : DtdLocalFS.png
Affichages : 1145
Taille : 2,8 KoNom : DtdValidationLocalFS.png
Affichages : 1172
Taille : 15,3 Ko
    Mais, je pense la raison d'observation négative c'est peut-être la configuration de sécurité en place. En EditiX par défaut c'est de xerces, et en vba, c'est peut-être de msxml2 comme analyseur. Tout deux ont une configuration, si je ne me trompe, qui s'instruirent de ne par charger les dtd's exterieurs parce que dtd est conçu comme une risque de sécurité. Pour un système tout à fait "à-jour", ça peut être par défaut fait cette interdiction - je ne suis pas certain mais ça peut être la raison. Sinon, il n'y a de raison de ne pas passer la validation. Pourtant, on peut toujours jouer avec w3c schema pour l'affaire de validation.

Discussions similaires

  1. [XSD] Problème lors de la validation d'un xml
    Par TheRealWill dans le forum Valider
    Réponses: 2
    Dernier message: 29/09/2010, 14h12
  2. Problème lors de la compilation par le MavenEmbedder
    Par romaintaz dans le forum Maven
    Réponses: 4
    Dernier message: 06/01/2010, 16h15
  3. Parser + validation par DTD avec xerces
    Par xenoise dans le forum XML
    Réponses: 0
    Dernier message: 28/04/2008, 22h40
  4. [DOM] Validation par DTD bloquant sur les ID
    Par hicham285 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 08/04/2008, 15h04
  5. Gestion des évenements lors de la validation par le bouton entrée
    Par rattlehead dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/12/2006, 16h24

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