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 :

Grouper des éléments [DTD]


Sujet :

Valider XML

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut Grouper des éléments
    Bonjour,

    Je cherche à créer une DTD pour des xml ou un élément a pourrait contenir un nombre quelconque d'éléments b, c, et d. b, c, et d peuvent être dans n'importe quel ordre, mais ils doivent être groupés.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <a>
        <c/>
        <c/>
        <d/>
        <b/>
        <b/>
        <b/>
    </a>
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <a>
        <b/>
        <b/>
        <c/>
        <d/>
        <d/>
    </a>
    sont valides.
    En revanche,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <a>
        <b/>
        <c/>
        <b/>
        <d/>
    </a>
    n'est pas valide car une balise c est intercalée entre deux balises b, qui doivent être groupées.

    J'ai pensé à écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!ELEMENT a(b*, c*, d*)>
    mais celà forcerait l'écriture de b, c et d dans cet ordre alors que n'importe quel ordre doit être valable : il validerait mon deuxième exemple mais pas le premier.
    Je pourrai utiliser | pour avoir tous les ordres possibles, mais mon cas réel contient plusieurs dizaines d'éléments.

    Bref, je sèche. Quelqu'un a une idée?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    C'est pas possible sans passer par plein de | qui énumèrent les différents cas.

    De toute façon ce serait très très moche.

    Le mieux est de regrouper les éléments multiple dans un méta élément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <a>
      <bs>
        <b></b>
        <b></b>
      </bs>
      <cs>...</cs>
      <ds>...</ds>
    </a>
    Mais ça ne résoud pas ton problème quant à l'ordre des éléments. De toute façon le XML a pris comme principe que l'ordre des éléments était important. Si tu veux changer ça, soit tu utilises des attributs, soit tu écris une règle (DTD) de 10 pieds de long qui recense toutes les combinaisons possibles.

  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
    Soit tu as une DTD plus permissive que prévu. C'est ce que je choisis généralement, et j'attends encore de tomber sur un problème.
    Déjà que la validation, à la base, ça fait gagner du temps, mais ça en fait aussi perdre pas mal...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut
    Merci pour vos réponses. A priori, on va imposer l'ordre. Nos xml manquent de standardisation.

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

Discussions similaires

  1. Grouper des éléments dans une même catégorie
    Par pioupi564 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/07/2008, 21h35
  2. [CR]grouper des dates par semaines, mais semaines FR !
    Par neo.51 dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 18/05/2004, 20h43
  3. couleurs des éléments 3D d'une appli
    Par Eugénie dans le forum MFC
    Réponses: 29
    Dernier message: 12/03/2004, 11h31
  4. [TShellListView] Tri des éléments
    Par M.Dlb dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/12/2003, 22h35
  5. [CR] Grouper des sections de détail?
    Par rodrigue50 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 06/06/2003, 14h32

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