Struktura třídy nebo typu dokumentu je v DTD popsána pomocí popisu jednotlivých značek (nebo též elementů) a atributů. Popisuje jak mohou být značky navzájem uspořádány a vnořeny. Vymezuje atributy pro každou značku a typ těchto atributů.
DTD je poměrně starý a málo expresivní jazyk. Jeho další nevýhoda je, že DTD samotný není XML soubor.
Silnější jazyky pro popis XML dokumentů jsou například XML Schema(XSD), RELAX NG, Schematron nebo DSD, které jsou již samy o sobě ve formátu XML.
Příklad velmi jednoduchého DTD dokumentu (příklad.dtd):
<!ELEMENT člověk (jméno, adresa*)> <!ELEMENT jméno (#PCDATA)> <!ELEMENT adresa (ulice?, číslo?, město)> <!ELEMENT ulice (#PCDATA)> <!ELEMENT číslo (#PCDATA)> <!ELEMENT město (#PCDATA)>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE člověk SYSTEM "příklad.dtd"> <člověk> <jméno>Tomáš</jméno> <adresa> <ulice>Nesmrtelná</ulice><číslo>99</číslo> <město>Brno</město> </adresa> </člověk>