W DTD, elementy są zadeklarowane w deklaracji elementu.
Deklarowanie Elements
W DTD, elementy XML zostały zgłoszone zgodnie z następującą składnią:
<!ELEMENT element-name category>
or
<!ELEMENT element-name (element-content)>
Puste Elements
Puste elementy są deklarowane ze słowem kluczowym kategorii puste:
<!ELEMENT element-name EMPTY>
Example:
<!ELEMENT br EMPTY>
XML example:
<br />
Elementy z danymi Parsed znaków
Elementy z tylko analizowanych danych znakowych są deklarowane #PCDATA wewnątrz nawiasów:
<!ELEMENT element-name (#PCDATA)>
Example:
<!ELEMENT from (#PCDATA)>
Elementy z wszelkich treści
Elementy zadeklarowana ze słowem kluczowym kategorii jest stosowany, może zawierać dowolną kombinację parsable danych:
<!ELEMENT element-name ANY>
Example:
<!ELEMENT note ANY>
Elementy z dziećmi (sequences)
Elementy z jednym lub większą liczbą dzieci są zadeklarowane z nazwą synów elementów wewnątrz nawiasów:
<!ELEMENT element-name (child1)>
or
<!ELEMENT element-name (child1,child2,...)>
Example:
<!ELEMENT note (to,from,heading,body)>
Kiedy dzieci są deklarowane w sekwencji oddzielonych przecinkami, dzieci muszą znajdować się w tej samej kolejności w dokumencie. W pełnym oświadczeniem, dzieci muszą być zadeklarowane, a dzieci mogą również mieć dzieci. Pełne oświadczenie "note" elementu jest:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
Deklarowanie Tylko jedno wystąpienie elementu
<!ELEMENT element-name (child-name)>
Example:
<!ELEMENT note (message)>
Powyższy przykład deklaruje, że dziecko elementem "message" musi pojawić się raz i tylko raz wewnątrz "note" elementu.
Deklarowanie Minimum jedno wystąpienie elementu
<!ELEMENT element-name (child-name+)>
Example:
<!ELEMENT note (message+)>
Znak + w powyższym przykładzie deklaruje, że dziecko elementem "message" musi wystąpić jeden lub więcej razy wewnątrz "note" elementu.
Deklarowanie zero lub więcej wystąpień elementu
<!ELEMENT element-name (child-name*)>
Example:
<!ELEMENT note (message*)>
Gwiazdka * Znak w powyższym przykładzie deklaruje, że dziecko elementem "message" może wystąpić zero lub więcej razy wewnątrz "note" elementu.
Deklarowanie zero lub jeden wystąpień elementu
<!ELEMENT element-name (child-name?)>
Example:
<!ELEMENT note (message?)>
Przycisk? podpisać w powyższym przykładzie deklaruje, że dziecko elementem "message" może wystąpić zero lub jeden raz wewnątrz "note" elementu.
Deklarowanie albo / albo zawartość
<!ELEMENT note (to,from,header,(message|body))>
Powyższy przykład deklaruje, że "note" element musi zawierać "to" całość, "from" elementu, a "header" elementu, i albo "message" lub "body" elementu.
Deklarowanie zawartości mieszanej
<!ELEMENT note (#PCDATA|to|from|header|message)*>
Powyższy przykład deklaruje, że "note" element może zawierać zero lub więcej wystąpień analizowanych danych znakowych, "to" , "from" , "header" lub "message" elementy.