Aide mémoire sur les DTD

Histoire de se rafraichir la mémoire après quelques années, un petit memento sur les DTD.
Mettre standalone="yes" dans l'entête xml permet déjà de ne pas utiliser de dtd (pas recommandé).

Déclaration d'élément:
<!ELEMENT nom_élément (contenu)>
contenu peut être:
  • #PCDATA : n'importe quoi sauf un sous élément
  • elt1, elt2, ... : une suite de sous éléments ordonnée
  • un mix des deux précédents séparés par des |
  • EMPTY : pas de contenu ni de sous-éléments (ex: balise img en HTML)
  • ANY : n'importe quoi
A noter que les sous-éléments ont les suffixes suivants:
  • +: 1..n occurences
  • ?: 0..1 occurence
  • *: 0..n occurences
  • aucun: 1 et 1 seule occurence

Déclaration d'attribut:
<!ATTLIST nom_élément nom_attribut type_attribut valeur>
valeur:
  • #IMPLIED : optionnel
  • #REQUIRED : obligatoire
  • #FIXED : valeur fixe et non modifiable
  • littéral : la valeur par défaut entre guillemets
type_attribut:
  • CDATA : chaîne de caractères
  • NMTOKEN : alphanumérique + ", : . - _ "
  • NMTOKENS : NMTOKEN séparés par des espaces
  • Enumération: liste des valeurs possibles
  • ID: alphanumérique unique. Commence par un caractère ou _
  • IDREF: chaîne de caractères référençant un ID
  • IDREFS: liste d'IDREF
  • ENTITY: entité non analysée
  • ENTITIES : liste d'ENTITY
  • NOTATION: référence une notation système

Déclaration d'entité:
<!ENTITY nom_entite chaine>
On affiche ensuite la chaîne en appelant &nom_entite;

La discussion continue ailleurs

URL de rétrolien : http://www.d-ornano.com/blog-de-marc-hoang/index.php?trackback/14

Fil des commentaires de ce billet