XML:Déclarations d'éléments

Un article de WikiTuto.

Jump to: navigation, search
  • XML Concepts de base
  1. Historique : de SGML à XML
  2. XML:Mise en oeuvre
  3. Structure d'un document XML
  4. Support par les navigateurs
  • Prise en main d'XML CookTop
  1. XML CookTop généralités
  2. Interface
  3. Exercices
  • Prise en main d'oXygen XML Editor
  1. Généralités
  2. Interface
  3. Fonctionnalités
  4. Exercices
  • Déclarations de Type de Document
  1. Introduction
  2. Types de DTD
  3. Déclarations d'éléments
  4. Déclarations d'attributs
  5. Déclarations d'entités
  • Initiation aux Schéma XML
  1. Introduction
  2. Les premiers pas
  3. Déclarations d'éléments et d'attributs
  4. Les types de données
  5. Espaces de nom
  6. Les dérivations
  7. Diverses autres fonctionnalités
  • Mise en forme à l'aide de feuilles de style XSL
  1. Présentation
  2. Exemples de mises en forme
  • Mise en forme à l'aide de feuilles de style XSL (XSLT)
  1. Les expressions de sélection
  2. XPath
  3. Éléments XSLT
  • Fonctions XPath
  1. Fonctions XPath applicables aux nœuds
  2. Fonctions XPath applicables aux chaînes de caractèress
  3. Fonctions XPath applicables aux nombres
  4. Fonctions booléennes
  5. Autres fonctions
  • Utilisation du DOM et XSLT dynamique
  1. Insertion de code JavaScript dans une page
  2. Utilisation du DOM
  • Synchroniser des contenus multimédia avec SMIL
  1. Généralités
  2. Construction progressive d'un fichier SMIL
  3. Conclusion
  • Un format de dessin vectoriel en XML: SVG
  1. Introduction
  2. SVG de base
  3. Éléments graphiques de base
  4. Structuration: éléments de groupage et références
  5. Transformations
  6. Autres fonctionnalités
  • L'animation dans le SVG
  1. Introduction
  2. Animation de base: l'élément animate
  3. Des animations plus complexes
  • Plus loin que les formulaires HTML: XForms
  1. Généralités
  2. Fonctionnalités des formulaires XForms
  3. Dans la pratique
  4. Pour aller plus loin...
  • Quelques mots sur les Services Web
  1. Généralités
  2. Trouver un service Web
  3. Accéder à un service Web
  4. Récapitulation et inconvénients
Source : Gilles Chagnon

Sommaire

Généralités

Une déclaration d'éléments est de la forme :

<!ELEMENT nom type_element>

nom est le nom de l'élément et type_element est le type auquel il est associé. Un élément peut être de type texte, vide (EMPTY), séquence ou choix d'élément. Dans ces deux derniers cas, on indique la liste des éléments-enfants.

Élément texte

Cet élément est le plus répandu, puisque c'est celui qui contient... du texte. Il se déclare ainsi :

<!ELEMENT elt (#PCDATA)>

Élément vide

Un élément vide est, comme son nom l'indique, un élément qui n'a aucun contenu -que ce soit de type texte, ou bien un autre élément. Le mot-clef utilisé pour la déclaration de ce type d'élément est EMPTY :

<!ELEMENT elt EMPTY>

Exemple d'utilisation :

<elt />

Un élément vide peut fort bien posséder un ou plusieurs attributs. Par exemple

<img width="100" height="30" src="paysage.jpg" alt="Paysage de neige" />

Indicateurs d'occurence

Lors de la déclaration de séquence ou de choix d'éléments, à chaque élément enfant peut être attribuée une indication d'occurence (?, + ou *).

Exemples d'indicateur d'occurences :

<!ELEMENT elt0 (elt1, elt2?, elt3+, elt*)>

  • elt1 ne comprend aucune indication d'occurence. Il doit donc apparaître une seule et unique fois dans l'élément elt0 ;
  • elt2 a pour indication d'occurence ?. Cela signifie que l'élément doit apparaître au maximum une fois (il peut ne pas apparaître du tout) ;
  • elt3 a pour indication d'occurence +. Cela signifie que l'élément doit apparaître au moins une fois ;
  • elt4 a pour indication d'occurence *. Cela signifie que l'élément doit apparaître autant de fois que l'auteur le désire.


Séquence d'éléments

Une séquence d'éléments est une liste ordonnée des éléments qui doivent apparaître en tant qu'éléments-enfants de l'élément que l'on est en train de définir. Ce dernier ne pourra contenir aucun autre élément que ceux figurant dans la séquence. Cette liste est composée d'éléments séparés par des virgules et est placée entre parenthèses.

Chaque élément-enfant doit de plus être déclaré par ailleurs dans la DTD (avant ou après la définition de la liste, peu importe). Dans le fichier XML, ils doivent apparaître dans l'ordre de la séquence.

<!ELEMENT elt0 (elt1, elt2, elt3)>

Exemple d'utilisation valide :

<elt0>
  <elt1>(...)</elt1>
  <elt2>(...)</elt2>
  <elt3>(...)</elt3>
</elt0>

Exemples d'utilisations non valides :

1.

<elt0>
       <elt1>(...)</elt1>
       <elt3>(...)</elt3>
     </elt0>
     ... car l'élément elt2 est manquant.

2.

<elt0>
       <elt1>(...)</elt1>
       <elt3>(...)</elt3>
       <elt2>(...)</elt2>
     </elt0>
     ... car l'ordre des éléments n'est pas respecté.


On rappelle qu'il est possible d'utiliser des indicateurs d'occurence. Par exemple...

<!ELEMENT elt0 (elt1+, elt2*, elt3?)>

Choix d'éléments

Un choix d'élément donne... le choix dans une liste de plusieurs éléments possibles. L'utilisation précise dépend des indicateurs d'occurence. De même que pour la séquence, les éléments-enfants doivent être déclarés dans la DTD. Cette liste est composée d'éléments séparés par le caractère | (combinaison de touches AltGr+6 sur un clavier AZERTY).

<!ELEMENT elt0 (elt1 | elt2 | elt3)>

Exemple d'utilisation valide :

<elt0><elt2>(...)</elt2></elt0>

Exemple d'utilisation non valide :

<elt0>
  <elt2>(...)</elt2>
  <elt3>(...)</elt3>
</elt0>

Exemple d'utilisation d'un choix d'éléments avec indicateurs d'occurence par élément :

<!ELEMENT choix.elt (elt1* | elt2* | elt3*)>

Exemple d'utilisation valide :

<elt0>
  <elt2>(...)</elt2>
  <elt2>(...)</elt2>
</elt0>

Exemples d'utilisation non valide :

<elt0>
  <elt3>(...)</elt3>
  <elt2>(...)</elt2>
</elt0>
<elt0>
  <elt2>(...)</elt2>
  <elt3>(...)</elt3>
</elt0>

Exemple d'utilisation d'un choix d'éléments avec indicateur d'occurence global :

<!ELEMENT elt0 (elt1 | elt2 | elt3)*>

Exemple d'utilisation valide :

<elt0>
  <elt2>(...)</elt2>
  <elt3>(...)</elt3>
  <elt1>(...)</elt1>
</elt0>

Dans ce dernier cas, il n'y a pas de contrainte visible sur l'ordre d'apparition des éléments.

Élément quelconque

L'élément quelconque est l'élément-"fourre-tout" dans une DTD. Il peut contenir tout autre élément défini dans la DTD, aussi bien qu'être vide ou contenir du texte. Les éléments-enfants éventuels peuvent apparaître dans n'importe quel ordre, et en quantité non définie. Il est préférable de ne pas utiliser trop souvent ce type de déclaration, car on perd les avantages qu'offre la rédaction d'une DTD, qui sont de fixer des contraintes précises sur la structure du document XML qui lui est lié. Le mot-clef utilisé pour la déclaration de ce type d'élément est ANY.

<!ELEMENT elt ANY>

Élément à contenu mixte

Un élément à contenu mixte peut contenir aussi bien du texte, que des éléments-enfants. Il se présente comme une liste de choix, avec des indicateurs d'occurence bien choisis. Le texte contenu peut se trouver à n'importe quel endroit dans l'élément, et peut être une section CDATA.

Exemple de déclaration :

<!ELEMENT citation (#PCDATA | auteur)*>

Exemple d'utilisation :

<citation>
Être ou ne pas être   <auteur>Shakespeare</auteur>
</citation>

Exercice 1. Écriture d'une DTD avec éléments

Énoncé Correction

Sources

Gilles Chagnon

Voir aussi

Boîte à outils
Annuaire gratuitCe site est listé dans la catégorie Informatique : Aide et astuces en informatique Annuaire