dtd

²
Déclaration du doctype
interne <!DOCTYPE racine [déclarations des éléments, attributs,...]>
privée <!DOCTYPE racine SYSTEM "fichier.dtd">
externe publique <!DOCTYPE racine PUBLIC "identifiant" "url"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >

Déclaration Elements
 <!ELEMENT nom_element DEF_CONTENU> 
EMPTY l'élément n'a pas de contenu, il est donc vide. <!ELEMENT elt EMPTY>
ANY l'élément contient des éléments quelconques. <!ELEMENT elt ANY>
(#PCDATA) l'élément contient du texte.
&(nom_element) 'élément contient un autre élément de nom nom_element.
 <!ELEMENT elt (elt1, elt2?, elt3+, elt4*)> 
pas d'indication exactement une occurrence
? 0 ou 1 occurrence
+ 1 occurrence ou plus
* 0 occurrence ou plus

Déclaration Attributs
<!ATTLIST nom_element nom_attribut type obligation valeur_défaut>
Types
CDATA n'importe quelle chaîne de caractères possible. C'est le type d'attribut le plus général.
ID
IDREF attribut faisant référence à un attribut de type ID.
IDREFS liste d'IDREF séparés par des blancs
ENTITY
ENTITIES interne: <!ENTITY MH "McGraw-Hill"> utilisation : utilisation &MH
externe : <!ENTITY texte SYSTEM "texte.xml" > utilisation : & texte;
NMTOKEN unité lexicale nominale : ne peut contenir que des lettres, des chiffres, un point [ . ] , un tiret [ - ], un trait de soulignement [ _ ] et un deux-points [ : ].
NMTOKENS une ou plusieurs unités lexicales nominales séparées par des espaces blancs. Par espace blanc, on entend un ou plusieurs espaces, retours chariot, sauts de ligne ou tabulations.
énumération liste de toutes les valeurs possibles séparées par des |
< !ATTLIST date mois (Janvier | Février | Mars) #REQUIRED >
obligation
#REQUIRED attribut obligatoire (on ne mentionne pas de valeur par défaut)
#IMPLIED attribut optionnel (on ne mentionne pas de valeur par défaut)
#FIXED l'attribut est optionnel. Cependant s'il est présent sa valeur est nécessairement celle définie par défaut.

IGNORE ET INCLUDE
Mots clés pour activer ou désactiver les éléments selon les besoins <![INCLUDE [<!ELEMENT poeme (strophe+)>]]>

entité paramétrique
<!ENTITY % nom "VALEUR"> <!ENTITY % type_defaut "CDATA"> <!ATTLIST chapitre titre %type_defaut; #REQUIRED>