Intr-un DTD, elementele sunt declarate cu o declarație ELEMENT.
Declararea Elemente
Într-un DTD, elementele XML sunt declarate cu următoarea sintaxă:
<!ELEMENT element-name category>
or
<!ELEMENT element-name (element-content)>
Elemente goale
Elementele goale sunt declarate cu cuvinte cheie la categoria GOL:
<!ELEMENT element-name EMPTY>
Example:
<!ELEMENT br EMPTY>
XML example:
<br />
Elemente cu caracter Parsed Date
Elemente cu caracter de date numai sunt declarate cu parsate #PCDATA interior paranteze:
<!ELEMENT element-name (#PCDATA)>
Example:
<!ELEMENT from (#PCDATA)>
Elemente cu orice Conținut
Elementele declarate cu categoria de cuvânt cheie, pot conține orice combinație de date analizabilă:
<!ELEMENT element-name ANY>
Example:
<!ELEMENT note ANY>
Elemente cu copii (sequences)
Elemente cu unul sau mai mulți copii sunt declarate cu numele elementelor de copii din interiorul paranteze:
<!ELEMENT element-name (child1)>
or
<!ELEMENT element-name (child1,child2,...)>
Example:
<!ELEMENT note (to,from,heading,body)>
Când copiii sunt declarate într-o secvență separate prin virgulă, copiii trebuie să apară în aceeași ordine în document. Într-o declarație completă, trebuie să fie, de asemenea, a declarat copii, iar copiii pot avea, de asemenea, copii. Declarația completă a "note" element este:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
Declararea doar o apariție a unui Element
<!ELEMENT element-name (child-name)>
Example:
<!ELEMENT note (message)>
Exemplul de mai sus declară că elementul copil "message" trebuie să aibă loc o dată, și doar o singură dată în interiorul "note" element.
Declararea minimă o apariție a unui Element
<!ELEMENT element-name (child-name+)>
Example:
<!ELEMENT note (message+)>
Semnul + în exemplul de mai sus declară că elementul copil "message" trebuie să apară una sau mai multe ori în interiorul "note" element.
Declararea Zero sau mai multe apariții a unui element
<!ELEMENT element-name (child-name*)>
Example:
<!ELEMENT note (message*)>
* Semnul în exemplul de mai sus declară că elementul copil "message" poate avea loc zero sau mai multe ori în interiorul "note" element.
Declararea zero sau un Aparitii unui element
<!ELEMENT element-name (child-name?)>
Example:
<!ELEMENT note (message?)>
? sign in exemplul de mai sus declară că elementul copil "message" se poate produce zero sau o singură dată în interiorul "note" element.
Declararea fie / sau de conținut
<!ELEMENT note (to,from,header,(message|body))>
Exemplul de mai sus declară că "note" elementul trebuie să conțină o "to" elementul, un "from" de "header" "message" "body" "from" elementul, un "header" element și fie un "message" sau un "body" elementul.
Declararea conținut mixt
<!ELEMENT note (#PCDATA|to|from|header|message)*>
Exemplul de mai sus declară că "note" element poate conține zero sau mai multe apariții de date caracter parsate, "to" , "from" de "header" "message" "from" , "header" , sau "message" elemente.