Este exemplo mostra um DTD XML em um documento XML e o formato da estrutura da árvore desse documento:
<!DOCTYPE test PUBLIC "//this/is/a/URI/test" "test.dtd"
[
<!NOTATION TeX PUBLIC "//this/is/a/URI/TexID" "//TexID">
<!ENTITY ent1 "this is an entity">
<!ENTITY % ent2 "#PCDATA | subel2">
<!ENTITY % extent1 PUBLIC "//this/is/a/URI/extent1" "more.txt">
<!ENTITY extent2 PUBLIC "//this/is/a/URI/extent2" "more.txt">
<!ENTITY unpsd PUBLIC "//this/is/a/URI/me.gif" "me.gif" NDATA TeX>
<?test Do this?>
<!--isto é um comentário-->
<!ELEMENT subel2 (#PCDATA)>
<!ELEMENT subel1 (subel2 | el4)+>
<!ELEMENT el1 (#PCDATA)>
<!ELEMENT el2 (#PCDATA | subel2)*>
<!ELEMENT el3 (#PCDATA | subel2)*>
<!ELEMENT el4 (#PCDATA)>
<!ELEMENT el5 (#PCDATA | subel1)*>
<!ELEMENT el6 (#PCDATA)>
<!ATTLIST subel1
size (big | small) "big"
shape (round | square) #REQUIRED>
<!ATTLIST el5
el5satt CDATA #IMPLIED>
]>
Quando uma mensagem é analisada por um analisador XML genérico, a parte relevante da árvore de mensagens se parece como esta (assumindo que não haja retornos de linha ou espaços em branco entre as tags):
A estrutura IntSubset contém as seguintes estruturas no nível seguinte de aninhamento: a estrutura em árvore para cada uma dessas estruturas é mostrada nas estruturas em árvore a seguir.