Les parties les plus importantes d'une DTD sont les types d'éléments. Les instances des types d'éléments qui surviennent dans la hiérarchie des modèles DTD peuvent apparaître dans un document XML correct et sont nommés "éléments".
Chaque type d'élément est décrit par son contenu et par ses types d'attributs.
Grâce au contenu, on peut différencier trois catégories de types d'éléments :
Pour décrire un type d'élément qui possède uniquement du texte comme contenu, placez un objet du type Type d'élément avec le nom souhaité et un élément du type Contenu avec le symbole #PCDATA. Ensuite, tirez une liaison du type contient entre le type d'élément et le contenu.
Pour décrire un type d'élément sans contenu, placez un objet du type Type d'élément avec le nom souhaité et un élément du type Contenu avec le symbole EMPTY. Ensuite, tirez une liaison du type contient entre le type d'élément et le contenu. La balise <img> dans HTML est un exemple typique de type d'élément sans contenu. L'intérêt principal des types d'éléments vides est qu'ils peuvent posséder des attributs utiles, par ex. les attributs SRC, ALIGN, ALT et ISMAP de la balise img.
La forme la plus complexe d'un type d'élément est un type d'élément avec contenu mélangé. Dans ce cas, un texte ou des types d'éléments peuvent être affectés à un objet du type Type d'élément. Pour décrire la forme sous laquelle les affectations sont reliées entre elles, des règles peuvent être utilisées. Les liaisons possibles entre le type d'élément et les affectations décrivent la fréquence avec laquelle une association peut apparaître dans le contenu du type d'élément.
Pour connecter les affectations, l'opérateur Sequence et la règle XOR sont à votre disposition.
Lorsque seule une affectation d'un ensemble est autorisée dans le contenu du type d'élément décrit, les affectations doivent être connectées entre elles par une règle XOR.
Lorsque plusieurs affectations sont autorisées uniquement dans un certain ordre dans le contenu du type d'élément décrit, elles doivent être connectées par un opérateur Sequence. Pour définir de manière univoque l'ordre souhaité, indiquez la position voulue pour l'affectation entre l'opérateur et l'affectation sur la liaison.
Les affectations peuvent également être connectées sans opérateur de connexion à l'élément décrit. Dans ce cas, on part du principe d'une connexion Sequence avec ordre quelconque.