Tasarım prototipleri üzerinden hazırlanan geçerli(valid) XHTML dokümanlarının ilk satırına baktığımızda gördüğümüz tek satırlık bir cümle vardır. Kısaca DTD (Doküman Tip Tanımlaması) olarak adlandırılan bu satırda, hazırlanmış olan sayfanın hangi dil ve hangi esneklikle yazıldığına dair bilgileri buluruz. Bu tanımlamanın yapılmasında amaç, web sayfasını tarayıcıya tanıtmak ve böylece sayfanın tarayıcı tarafından doğru şekilde yorumlanmasını (render) sağlamaktır.
http://tr.wikipedia.org/wiki/DTD
http://www.w3schools.com/DTD/default.asp
http://en.wikipedia.org/wiki/Document_Type_Definition
Oluşturulan içeriğin yapısına ve ihtiyaçlarına göre doğru DTD’yi seçmek gerekmektedir. W3C, ihtiyacımız çerçevesinde kullanılmak üzere geçerli DTD’leri kendi sitesinde tavsiye etmiştir.
http://www.w3.org/QA/2002/04/valid-dtd-list.html
Kullanılacak DTD, hazırladığımız HTML/XHTML dokümana göre seçilmelidir. Eğer çalışmanızda HTML 4.0 kullandıysanız, XHTML’e ait bir DTD’yi kullanamazsınız. Ya da eğer frame (çerçeve) içeren bir web uygulaması gerçekleştiriyorsanız buna uygun bir DTD seçmeniz gerekmektedir.
Buna ek olarak günümüz web uygulamalarında kullanılacak dile ait Strict (Katı), Transitional (geçiş) ve Frameset olmak üzere üç ayrı DTD bulunmaktadır. Örnek olarak aşağıda XHTML 1.0 için W3C’un önerdiği DTD’leri görmektesiniz.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.DTD">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.DTD">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.DTD">
Frameset adından da anlaşıldığı gibi frame(çerçeve) içeren XHTML dokümanlarında kullanılmak üzere önerilmiştir. Strict kullanılan bir dokümanda ise XHTML 1.0′ın bütün kurallarını tavizsiz uygulanmaktadır. Eğer bu kuralların uygulanması konusunda enselik göstermek istiyorsanız o zaman Transitional DTD’yi seçmeniz uygun olacaktır.
Aşağıda hızlıca örneklemeye çalıştım;
XHTML’de bütün etiketler kapatılmak zorundadır.
DOĞRU: <a href=”sayfam.html”>Sayfam</a>
YANLIŞ: <a href=”sayfam.html”>Sayfam ?
Bütün etiketler ve özellikler küçük harfle yazılmalıdır.
DOĞRU: <a href=”sayfam.html”>Sayfam</a>
YANLIŞ : <A hRef=”sayfam.html”>Sayfam</a>
Bütün özellikler “özellik” şeklinde tırnak içerisine alınmalıdır.
DOĞRU: <a href=“sayfam.html“>Sayfam</a>
YANLIŞ: <a href=sayfam.html>Sayfam</a>
Bütün etiketler doğru bir şekilde birbiri içerisine konulmuş olmalıdır.
DOĞRU: <p><a href=”sayfam.html”>Sayfam</a></p>
YANLIŞ: <p><a href=”sayfam.html”>Sayfam</p></a>
YANLIŞ: <a href=”sayfam.html”> <p>Sayfam</p></a>
Doğru seçilmeyen DTD’ler tarayıcının kafasının karışmasına, geçersiz bir HTML/XHTML sayfasının oluşmasına, buna bağlı olarak da tarayıcı yorumlamasında tutarsızlıklara ve hatalara sebebiyet verecektir. Bu anlamda geçerli bir web sayfasının oluşmasında ilk adım doğru DTD’nin seçilmesiyle başlar.
Bazı web geliştiricilerin yaptığım en vahim hata DTD tanımlamasının yapmamaktır. DTD tanımlamasının hiç yapılmamış olması, tarayıcının Standart Mod‘da çalışmamasına sebep olacaktır. Bu durumda tarayıcı Quirks Mod denilen bir modda sayfaları yorumlamaya çalışacaktır.
http://en.wikipedia.org/wiki/Quirks_mode
Quirks Mod‘un argoda tam karşılığı “tarayıcının kafasına göre takılmasıdır“. Bu da web geliştiricisi için istenmeyen bir durumdur.
NOT: Bana ait olan bu yazı ilk olarak bildirgec‘de yayınlanmıştır…
Fırından yeni çıkmış yazılardan haberdar olmak için RSS yayınıma abone olabilir ya da beni Twitter'dan takip edebilirsiniz.
Yorumla BakalımBu Makale için toplam 4 adet yorum bulunmaktadır...
Bu Makale 29 January, 2009 ve saat 11:43 itibariyle Web Standartları, XHTML kategorisi altına kaydedilmiştir. Bu makale ile ilgili yorumları RSS 2.0 beslemesinden takip edebilirsiniz.. Bu makale için yorum yapabilir, veya kendi web sitenize trackback sağlayabilirsiniz...
9 June, 2009 ve saat 18:32:55'de gönderdi...
DTD’ler konusunda sade ve çok aydınlatıcı bir yazı olmuş teşekkürler Özgür..
9 June, 2009 ve saat 19:10:03'de gönderdi...
Ben Teşekkür ederim, yorumların için…
24 May, 2010 ve saat 09:31:26'de gönderdi...
Harika anlatım olmuş Özgürcüm. Tebrik ederim…
24 May, 2010 ve saat 10:33:54'de gönderdi...
Saol Kadirim…