Bilindiği gibi xml ile bir sistemden başka bir sisteme veri transferi yapılır. Bu verilerin belli bir standartta olup bu strandardın dışına çıkılmaması gerekir. Yani alıcı xml verisini aldığında geri gönderim yaparken şablon dışında bir veri gönderememeli. Document type definition bize xml için bir şablon sunar ve xml bu şablon dışına çıktığında geçersiz olur.
Bu şablon üzerinden sadece elementleri değil aynı zamanda attributeları da tanımlayabiliriz. Bunun için kalıp şu şekildedir.
<!ATLIST mail id CDATA "0"> <!-- <!ATLIST attributeınVerileceğiElement Attributeİsmi AttributeTipi AttributeDeğeri> -->
ÖRNEK
Her mail elementimizde id attribute’ı olsun ve valuesi 0 olsun.
<!DOCTYPE mail_kutusu[ <!ELEMENT mail_kutusu (mail)> <!ElEMENT mail (kime,kimden,konu,mesaj)> <!ELEMENT kime (#PCDATA)> <!ELEMENT kimden(#PCDATA)> <!ELEMENT konu(#PCDATA)> <!ELEMENT mesaj(#PCDATA)> <!ATLIST mail id CDATA "0"> ]> <mail_kutusu> <mail> <kime>CAGATAY</kime> <kimden>MUSTAFA</kimden> <konu>YAZILIM</konu> <mesaj>MESAJ ICERIGI</mesaj> </mail> </mail_kutusu>
Yukarıdaki kodlar mail elementine otomatik olarak id=”0″ attribute ve valuesini atar. Bunu XML’i explorerda açarak da görebilirsiniz. Ancak bizim DTD ile amaçladığımız şey otomatik olarak sabit attribute ve valuelar vermekten ziyade bir şablon oluşturmak olduğu için yukarıdaki gibi bir kullanım doğru olmaz. Onun yerine şu ifadeler kullanılır.
#REQUIRED : Attribute kullanımını zorunlu kılar. Attribute kullanılmassa Xml geçersiz olur.
<!ATLIST mail id CDATA #REQUIRED> şeklinde bir kullanımdan sonra "mail" tagleri eğer ID tanımlanmamışsa uyarı verecek id attribute'ı tanımlanmasını isteyecektir.
#IMPLIED : Attribute kullanılmasa da olur kullanılsa da olur.
<!ATLIST mail id CDATA #IMPILED> şeklinde bir kullanımdan sonra "mail" tagleri uyarı vermez çünkü id attributeının kullanımı opsiyonel bırakılmıştır.
#FIXED “4” : Her attribute’a fixed sabit bir değer atar.
<!ATLIST mail tarih CDATA #FIXED "2.12.2005"> şeklinde bir kullanımla her "mail" tagimizde fix tarih="2.12.2005" attribute'u bulunması sağlanmıştır. Biz yazmasak bile otomatik olarak yazılacaktır.