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 :

[DTD]<!ELEMENT> et PCDATA


Sujet :

Valider XML

  1. #1
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 50
    Points
    50
    Par défaut [DTD]<!ELEMENT> et PCDATA
    Bonjour,
    Je débute en XML, ma question vous semblera peut être idiote mais je n'ai pas réussi à trouver la réponse sur le web (J'ai peut être mal cherché ).

    Voilà,
    J'aimerais définir dans ma DTD une racine qui admettrait exactement :
    - Une chaîne de caractères quelconque.
    - Une balise <branche1>
    - Une balise <branche2>

    J'ai donc codé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <!ELEMENT racine (#PCDATA,racine1,racine2)>
    Mon pb est que ceci ne marche pas, et ce, à cause de #PCDATA, car si je l'enlève et que je l'enlève la chaîne de caractères dans mon doc xml, ca fonctionne.

    Merci.

  2. #2
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    Oups, mon code est évidemment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <!ELEMENT racine (#PCDATA, branche1, branche2)>
    Le pb demeure.

  3. #3
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    selon les spécifications XML du W3C, #PCDATA ne peut pas être inclus dans une séquence d'éléments (éléments séparés par une virgule).

    Tu peux par contre l'utiliser dans une structure mixte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!ELEMENT racine (#PCDATA|branche1|branche2)>
    Ce n'est évidemment pas tout à fait la même chose : la structure mixte, contrairement à ce que tu cherches à faire, acceptera n'importe quelle combinaison de branche1, branche2 et de noeuds texte, sans contrainte de nombre pour aucun. Un exemple qui sera validé par cette DTD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <racine>Ceci est un <branche2>exemple</branche2> de balise <branche1>validée</branche1> par cette <branche2>DTD</branche2></racine>
    Les DTD ne sont donc pas la solution à ton problème. Pour une validation plus "fine", il faut voir du côté des XML Schemas.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  4. #4
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    Merci de cette réponse ; c'est ce que je pensais mais je voulais avoir une confirmation car je n'étais pas sûr .

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

Discussions similaires

  1. [DTD] #PCDATA vs CDATA
    Par win_ubuntu dans le forum Valider
    Réponses: 5
    Dernier message: 23/11/2010, 19h27
  2. [DTD] element au choix
    Par chamanR dans le forum Valider
    Réponses: 1
    Dernier message: 12/10/2010, 10h37
  3. Réponses: 2
    Dernier message: 07/09/2010, 11h26
  4. Réponses: 2
    Dernier message: 17/01/2007, 17h57
  5. [débutante][DTD]: erreur: <!ELEMENT expexted>???
    Par mouna201 dans le forum Valider
    Réponses: 4
    Dernier message: 29/01/2006, 10h49

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