Aşağıda basit bir DTD örneği görülmektedir :
<!ELEMENT isci(ad,soyad)>
<!ELEMENT ad (#PCDATA)>
<!ELEMENT soyad (#PCDATA)>
Yukarıdaki örnekte içinde karakter kabul eden ad ve soyad adında iki element tanımlanmıştır. Bu iki elementi içeren isci adında başka bir element tanımlanmıştır. Bu şekilde bir DTD tanımlandığından örneğin isci element ad elementinin içinde kullanılamaz.
Br gibi içinde bir şey tanımlı olmayan elemetler aşağıdaki gibi tanımlanırlar :
<!ELEMENT br EMPTY>
Eğer bir element'in içinde sadece karakter olması gerekiyorsa aşağıdaki gibi tanımlanmalıdır :
<!ELEMENT surname (#PCDATA)>
Örneğin worker element'inin içinde name ve surname element'leri bulunuyorsa aşağıdaki gibi tanımlanmalıdır:
<!ELEMENT worker (name,surname)>
Eğer biri kullanılırsa diğerinin kullanılmamasını istiyorsanız aşağıdaki gibi tanımlamalısınız :
<!ELEMENT worker (name|surname)>
Eğer hiç bir şey yazılmassa (cardinality operatorü kullanılmazsa) sadece 1 kere kullanılmalıdır ve kullanılması gereklidir anlamına gelir.
Eğer ? kullanılırsa ya hiç ya da bir kere kullanılabilir.
Örneğin aşağıdaki örnekte middlename worker elementinin içinde hiç kullanılmayabilir veya sadece 1 kere kullanılabilir.
<!ELEMENT worker (name,middlename?,surname)>
Eğer hiç veya istenildiği kadar kullanılabilmesi içinde * operatorü kullanılır. Örneğin aşağıda nick element'i ya hiç kullanılmayabilir veya istenildiği kadar kullanılabilir.
<!ELEMENT worker (name,middlename?,surname,nick*)>
Eğer bir element'in en az bir kere veya daha fazla kullanılmasını istiyorsanız + operatoru kullanılır. Aşağıda song elementi bu şekilde tanımlanmıştır.
<!ELEMENT worker (name,,surname,song+)>
Bu ifadeler toplu olarak da kullanılabilir. Aşağıdaki kod buna örnektir
<!ELEMENT section (head?,(paragraph|code|listing|warning|tip)*) >
aşağıda tanımlanmış worker element'inin id ve no diye iki attributesi olması için aşağıdaki gibi bir tanımlama yapmak gereklidir :
<!ATTLIST worker
id CDATA #REQUIRED
no CDATA #IMPLIED "0"
name CDATA #FIXED "noname"
>
Burada id attribute'si bir yazı alacağını belirtiyoruz (CDATA karekter data anlamına gelmektedir). #REQUIRED ile bu attribute'nin kullanılmasının mecburi olduğunu belirtiyoruz. #IMPLIED ise no attribute'sinin kullanılmasının isteğe bağlı olduğunu bildirir ve no değerine herhangi bir değer girilmezse 0 olacağı belirtilmiştir. #FIXED ise başlangıçta bir değer atamak için kullanılır. Kullanıcı #FIXED ile atanmış değeri değiştiremez
Aşağıda copyrightSentence entity'si tanımlanmıştır :
<!ENTITY copyrightSentence "© 2002 by Fibiler.com">
XML'de aşağıdaki gibi kullanılabilir :
<copyrigth>©rightSentence;</copyrigth>
Burada copyrightSentence entity'si tanımlanmıştır. Bu entity ©rightSentence; şeklinde kullanılınca yerine © 2002 by Fibiler.com ifadesini geçirecektir. Burada © ifadesi de copyright işaretini gösteren bir entity referance'dır. Böylece bu cümleyi her yere yazmak yerine entity referance'sı kullanılabilir.
Aşağıdaki örnekte bir inline entity'si yaratılmıştır ve kullanılmıştır:
<!ENTITY % inline "i|b|em">
..
..
<!ELEMENT p (%inline;)>
Bu entity i|b|em yazısını göstermektedir. p (%inline) ile p(i|b|em) ifadesi aynı anlama gelmektedir
External entity başka bir DTD dosyasında bulunan entity'in kullanmak içindir. Aşağıda bir external entity tanımı gözükmektedir :
<!ENTITY test SYSTEM "http://www.fibiler.com/test.dtd">
kullanımı ise :
<worker><name>&test;</name></worker>
şeklindedir.
Aşağıdaki örnekte parse edilemeyen bir resim dosyası içeriğini entity olarak tanımlamak için kullanılan ifade görülmektedir :
<!ENTITY logo SYSTEM "http://www.fibiler.com/test/logo.gif" NDATA GIF89a>
Bu entity aşağıdaki gibi kullanılabilir
<sirket><photo src="&logo;"/></sirket>
&logo; ifadesi http://www.fibiler.com/test/logo.gif adresinde belirtilen veriye referans verir. NDATA(Notation Data) bu datanın parse edilebilir bir data olmadığını gösterir. Photo element'inin src attribute'sinin tipi Entity olarak verilmelidir :
<!ATTLIST photo src ENTITY #REQUIRED>