1. #1
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    10 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 10 895
    Points : 27 312
    Points
    27 312
    Billets dans le blog
    11

    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)
    ---------------
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié l'intervention => Merci pour le
    ---------------

  2. #2
    Membre chevronné
    Inscrit en
    octobre 2011
    Messages
    1 087
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 087
    Points : 1 885
    Points
    1 885

    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
    11 257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 257
    Points : 19 062
    Points
    19 062

    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
    168
    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 : 168
    Points : 239
    Points
    239

    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

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    10 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 10 895
    Points : 27 312
    Points
    27 312
    Billets dans le blog
    11

    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)
    ---------------
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié l'intervention => Merci pour le
    ---------------

  6. #6
    Membre chevronné
    Inscrit en
    octobre 2011
    Messages
    1 087
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 087
    Points : 1 885
    Points
    1 885

    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 : 13
Taille : 2,8 KoNom : DtdValidationLocalFS.png
Affichages : 13
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, 15h12
  2. Problème lors de la compilation par le MavenEmbedder
    Par romaintaz dans le forum Maven
    Réponses: 4
    Dernier message: 06/01/2010, 17h15
  3. Parser + validation par DTD avec xerces
    Par xenoise dans le forum XML
    Réponses: 0
    Dernier message: 28/04/2008, 23h40
  4. [DOM] Validation par DTD bloquant sur les ID
    Par hicham285 dans le forum DOM
    Réponses: 1
    Dernier message: 08/04/2008, 16h04
  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, 17h24

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