XML DTD Nedir?
Yazıda DTD nedir, DTD oluşturma ve XML içerisinde DTD kullanımı ile ilgili bilgiler yer almaktadır.
DTD nedir?
DTD Document Type Definition (Belge Türü Tanımı) kısaltmasıdır.
XML Nedir? yazısında XML’in belirli bir standardın olmadığını söylemiştim.
Ancak iki farklı platform arasında verinin taşınabilmesi için ortak bir iletişim standardının kullanılması gerekir.
DTD XML için bu standardın oluşturulmasında kullanılan yapıdır.
DTD ile belirli bir sistem için özel standart tanımlayabiliriz. Böylece sistem için kabul edilen standardın oluşturulması sağlanır.
XML ile oluşturulan veriler XML kurallarına uygun olarak yazılmışsa “Well Formed – İyi oluşmuş” bir XML denir.
XML DTD ile oluşturulan bir standarda uygun olarak yazılmışsa hem “Well Formed – İyi oluşmuş” hem de “Valid – Geçerli” olduğu söylenir.
DTD oluşturmak
DTD kuralları XML dosyalarının içerisine yazılabileceği gibi harici bir .dtd uzantılı dosyada da bulunabilir.
Dahili DTD örneği aşağıda yer almaktadır.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE kisiler [
<!ELEMENT kisiler (kisi*)>
<!ELEMENT kisi (sira, adi, soyadi)>
<!ELEMENT sira (#PCDATA)>
<!ELEMENT adi (#PCDATA)>
<!ELEMENT soyadi (#PCDATA)>
]>
<kisiler>
<kisi>
<sira>1</sira>
<adi>Yusuf</adi>
<soyadi>SEZER</soyadi>
</kisi>
<kisi>
<sira>2</sira>
<adi>Ramazan</adi>
<soyadi>SEZER</soyadi>
</kisi>
<kisi>
<sira>3</sira>
<adi>Sinan</adi>
<soyadi>SEZER</soyadi>
</kisi>
<kisi>
<sira>4</sira>
<adi>Mehmet</adi>
<soyadi>SEZER</soyadi>
</kisi>
</kisiler>
Harici DTD dosyasını XML dosyasına dahil etmek için
<!DOCTYPE kisiler SYSTEM "kisiler.dtd">
kod satırını XML tanımlayıcısının altına eklenmesi gerekir.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE kisiler SYSTEM "kisiler.dtd">
<kisiler>
<kisi>
<sira>1</sira>
<adi>Yusuf</adi>
<soyadi>SEZER</soyadi>
</kisi>
<kisi>
<sira>2</sira>
<adi>Ramazan</adi>
<soyadi>SEZER</soyadi>
</kisi>
<kisi>
<sira>3</sira>
<adi>Sinan</adi>
<soyadi>SEZER</soyadi>
</kisi>
<kisi>
<sira>4</sira>
<adi>Mehmet</adi>
<soyadi>SEZER</soyadi>
</kisi>
</kisiler>
Harici DTD dosyasının içeriği aşağıda yer almaktadır.
<!ELEMENT kisiler (kisi)>
<!ELEMENT kisi (sira, adi, soyadi)>
<!ELEMENT sira (#PCDATA)>
<!ELEMENT adi (#PCDATA)>
<!ELEMENT soyadi (#PCDATA)>
Farklı platformlar arasında veri taşımak için oluşturulan XML dosyası için DTD yapısını oluşturulması faydalı olacaktır.