DTD - Éléments

Dans une DTD, les éléments sont déclarés par des déclarations d'éléments.

Déclaration d'un élément

Dans une DTD, les éléments XML sont déclarés par des déclarations d'éléments. Les déclarations d'éléments utilisent la syntaxe suivante :

<!ELEMENT 元素名称 类别>

ou

<!ELEMENT 元素名称 (元素内容)>

Les éléments vides

Les éléments vides sont déclarés par le mot-clé de catégorie EMPTY :

<!ELEMENT 元素名称 EMPTY>

Exemple :

<!ELEMENT br EMPTY>

Exemple XML :

<br />

Les éléments ne contenant que PCDATA

Les éléments ne contenant que PCDATA sont déclarés par #PCDATA entre parenthèses :

<!ELEMENT 元素名称 (#PCDATA)>

Exemple :

<!ELEMENT from (#PCDATA)>

Les éléments portant tout contenu

Les éléments déclarés par le mot-clé de catégorie ANY peuvent contenir toute combinaison de données interprétables :

<!ELEMENT 元素名称 ANY>

Exemple :

<!ELEMENT note ANY>

Les éléments portant des sous-éléments (séquence)

Les éléments portant un ou plusieurs sous-éléments sont déclarés par les noms des sous-éléments entre parenthèses :

<!ELEMENT 元素名称 (子元素名称 1)>

ou

<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,...)>

Exemple :

<!ELEMENT note (to,from,heading,body)>

Lorsque les sous-éléments sont déclarés dans une séquence séparée par des virgules, ces sous-éléments doivent apparaître dans le même ordre dans le document. Dans une déclaration complète, les sous-éléments doivent également être déclarés, et les sous-éléments peuvent également avoir des sous-éléments. La déclaration complète de l'élément "note" est :

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to      (#PCDATA)>
<!ELEMENT from    (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body    (#PCDATA)>

Déclaration des éléments apparaissant une seule fois

<!ELEMENT 元素名称 (子元素名称)>

Exemple :

<!ELEMENT note (message)>

L'exemple ci-dessus déclare : l'élément "message" doit apparaître une fois et ne doit apparaître qu'à l'intérieur de l'élément "note".

Déclaration des éléments apparaissant au moins une fois

<!ELEMENT élément_nom (sous_élément_nom+)>

Exemple :

Déclaration d'un élément apparaissant une fois ou plusieurs fois

<!ELEMENT note (message+)>

Les plus dans les exemples ci-dessus indiquent : l'élément message doit apparaître au moins une fois dans l'élément "note".

Déclaration d'un élément apparaissant zéro ou plusieurs fois

Exemple :

<!ELEMENT élément_nom (sous_élément_nom*)>

Les astérisques dans les exemples ci-dessus indiquent : l'élément message peut apparaître zéro ou plusieurs fois dans l'élément "note".

Déclaration d'un élément apparaissant zéro ou une fois

<!ELEMENT élément_nom (sous_élément_nom?)>

Exemple :

<!ELEMENT note (message?)>

Les points d'interrogation dans les exemples ci-dessus indiquent : l'élément message peut apparaître zéro ou une fois dans l'élément "note".

Déclaration de contenu "non.../soit..."

Exemple :

<!ELEMENT note (to,from,header,(message|body))>

Les exemples ci-dessus déclarent : l'élément "note" doit contenir l'élément "to", l'élément "from", l'élément "header", et l'élément non "message" soit l'élément "body".

Déclaration de contenu mixte

Exemple :

<!ELEMENT note (#PCDATA|to|from|header|message)*>

Les exemples ci-dessus déclarent : l'élément "note" peut contenir PCDATA apparaissant zéro ou plusieurs fois, "to", "from", "header" ou "message".