XHTML Nedir ve XHTMLdeki DTD ne işe yarar?
XHTML kısaltmasının açılımı İngilizce’de eXtensible Hyper Text Markup Language yani dilimizde ki karşılığı ise “Geliştirilebilir Büyütülmüş Metin İşaretleme Dili”dir.
XHTML’i aslında şu başlıklar altında toplamak daha doğru olur.
- XHTML aslında HTML içinde kullanılabilen bir XML uygulamasıdır.
- XHTML’in çıkış amacı HTML’in “kirli” yapısını yenilemektir.
- XHTML 1.0 aslında HTML 4.0.1 ile hemen hemen aynıdır. (Bütün elemanları barındırır.)
- XHTML’in kuralları sabittir, XHTML daha temiz ve düzenlidir.
- XHTML standartlara sâdık kodlama, CSS temelli tasarım ve XML’e geçişte bir basamaktır.
- XHTML’i çoğu tarayıcılar tanır.
Neden XHTML?
XHTML, çünkü kullanıcıların istekleri içerik ve görsellikten evvel hızdır ve siz “kirli” html’den uzaklaşıp xhtml’in düzenli ve temiz kodlamasını kullanırsınız, kullanmak zorundasınız.
XHTML 26 Haziran 2000′den beri bir web standartıdır ve W3C (World Wide Web Consortium – WWW Birliği) tarafından tavsiye edilmiştir.
XHTML web standartlarını kulak arkası etmeyen, css temelli tasarımla uğraşan/uğraşacak, xml’e başlayacak veya xml kullanacak herkesin öğrenmesi gereken bir standarttır.
Eğer işi biraz espirili bir dille anlatmak gerekirse kısaca biz html kodlarına ”Kendine çeki düzen ver, adama benze.” demişiz ve ortaya XHTML çıkmıştır. :)
Gel gelelim işin en can alıcı noktasına; düzen düzen diye bas-bas bağırıyoruz ama ne gereği var? Niye standartlara uyalım diye tatlı canımızı sıkalım? Günümüzde bir çok web tarayıcısı mevcuttur. Gerek bilgisayarlarda, gerek mobil cihazlarda olsun web tarayıcıların görevi kullanıcıya görsellik ve içeriği en doğru biçimde vermektir. Ve tabii ki bir çok tarayıcı ve bir çok firmanın oluşu çok büyük bir dezavantaj doğurdu. Bunlardan en önemlisi tabii ki standartlara uyulmaması ve tarayıcıların yayınlamadaki farklılıklar barındırması.
İşte bu noktada standartlara uygun, düzenli, doğru ve temiz kodlanmış sayfalar değer kazanıyor ve gerek müşteriler, gerek sektördeki firmalar “temiz kodlamaya” önem vermektedirler.
Hiçbir web tasarımcı “html işimi görüyor” diye xhtml’den uzaklaşmamalı. En azından web tasarımcı olduğunu öne süren ve bu işte ilerlemek isteyen kişiler xhtml (ve tabi devamında css) öğrenmek zorundadır. Bunun sebebi standartlardır.
Dipnot: HTML 4.0.1′in de standartları vardır ve bunlarda doğrulanabilir fakat XHTML kadar düzenli kurallar değildir. Bunlar genel olarak CSS ile ilgili kurallardır.
#sayfa_sonu#
XHTML’in Ana Hatları ve Önemli Kurallar
XHTML aslında HTML bilen herkes için çok rahat öğrenilebilecek bir dil. Hatta HTML biliyorsanız aslında biraz daha sıkı kuralların bulunduğu yeni bir html olduğunu anlarsınız.
Aşağıda bir liste halinde önemli kuralları ve dikkat etmeniz gereken bazı hususları sıraladım.
- XHTML’de bütün elemanlar kesinlikle kapalı olmak zorundadır.
-HTML’de bildiğiniz gibi elemanların kapatma işareti / (slash) idi, xhtml’de bu işaret sadece <p></p> gibi elemanların kapanmasında değil içeriksiz elemanların kapanmasında da rol oynuyor.
-Doğru; <li>…</li> ve <img src=”…” … style=”…” />
-Yanlış; <li>… ve <img src=”…” … style=”…”> - XHTML dökümanları kesinlikle doğru kodlanmış olmalı ve XHTML dökümanları kesinlikle DTD* bildirimi, <html>, <head>, <title> ve <body> elemanlarını barındırmalıdır. Ayrıca <html> elemanı xmlns parametresini almak zorundadır. (DTD= Document Type Definition – Döküman Tipi Tanımı)
Not: DTD bildirimi bir XHTML elemanı değildir ve bu nedenle küçük harflerden oluşma zorunluluğu yoktur, ayrıca kapatma işaretine de ihtiyaç duymaz.
-Örnek; <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“> - XHTML dökümanlarında elemanlar kesinlikle iç-içe bulunmalıdır.
-Doğru; <b><i>Ömer Balyalı</i></b>
-Yanlış; <b><i>Ömer Balyalı</b></i> - XHTML dökümanlarında bütün elemanlar kesinlikle küçük harflerle yazılmak zorundadır.
-Doğru; <a href=”index.html” target=”_blank”>Anasayfa</a>
-Yanlış; <a HREF=”index.html” TARGET=”_blank”>Anasayfa</a> - XHTML dökümanlarında bütün elemanların parametre değerleri kesinlikle çift tırnak içerisinde olmak zorundadır.
-Doğru; <a href=”index.html” target=”_blank”>Anasayfa</a>
-Yanlış; <a href=index.html target=_blank>Anasayfa</a> - XHTML dökümanlarında elemanların bütün parametreleri kesinlikle değer almak zorundadır. (Değerler true-false alabileceği gibi bir diğer genel kullanım ise parametrenin değer olarak yine kendisini almasıdır, örnek olarak disabled=”disabled”)
-Doğru; <input type=”button” disabled=”true” />
-Yanlış; <input type=”button” disabled /> - XHTML dökümanlarında içeriksiz elemanlarda kapatma işareti’nden (slash) önce bir karakterlik boşluk bulunmak zorundadır.
-Doğru; <input type=”button” disabled=”true” />
-Yanlış; <input type=”button” disabled=”true”/> - XHTML dökümanlarında <img> elemanında kesinlikle alt=”" parametresi bulunmak zorundadır.
-Doğru; <img … alt=”" />
-Yanlış; <img … /> - XHTML’de lang=”" parametresini kullanan elemana ayrıca xml:lang=”" parametreside eklenmek zorunluluğu vardır.
-Doğru; <div lang=”en” xml:lang=”en”>GNU’s not Unix!</div>
-Yanlış; <div lang=”en”>GNU’s not Unix!</div> - XHTML dökümanlarında name=”" parametresi yerine id=”" parametresi kullanılmaktadır.
-Zorunlu değildir ve name kullanmanız hataya yol açmaz, aynı zamanda hem name hem de id parametresini kullanabilirsiniz.
DTD – Döküman Tipi Tanımı Belirtme Zorunluluğu
XHTML dökümanlarında DOCTYPE, <html>, <head>, <title>, <body> elemanlarının zorunlu olduğunu daha evvel söylemiştim. Bu bölümde Döküman tipi tanımı belirtme zorunluluğundan bahsedeceğim.
Şimdiye kadar öğrendiklerimizle çok basit bir XHTML sayfası oluşturalım.
<html xmlns=”http://www.w3.org/1999/xhtml“>
<head>
<title>XHTML’e Giriş – Ömer Balyalı</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-9″ />
<style type=”text/css”>@import “stil.css”;</style>
</head>
<body>
<h3>Neden XHTML ve XHTML’e Giriş</h3>
<br />
<p>Merhabalar,
Öncelikle bu makaleyi okuyan kişilerin temel HTML bilgisine sahip olduğu varsayılır. Fakat HTML’e yeni başlıyorsanız (yani daha html bilginiz yok ise) yine de bu makaleyi okumanızı şiddetle tavsiye ediyorum. </p>
</body>
</html>
Evet, burada DTD belirtimi her XHTML dökümanında olduğu gibi sayfanın en başında
XHTML’de Bulunan DTD’ler
XHTML’de üç adet DTD bulunmaktadır;
- Strict
- Transitional
- Frameset
Strict
Strict, İngilizce’de “katı kurallar, düzenli, kusursuz” gibi anlamlara gelir. XHTML’de “strict” bütün kurallara kesin olarak uyulacağı biçiminde adına yakışır biçimde kelimenin anlamını olduğu gibi aktarmaktadır.
XHTML Strict DTD’si XHTML 1.0′ın bütün kurallarını katı bir biçimde ele alır ve XHTML tam mânâsıyla “Strict DTD” ile yazılır. “Strict DTD” de eskitilmiş HTML 4.0.1 elemanları bulunmaz ve eskitilmiş HTML elemanlarıyla birlikte Strict DTD’yi kullanmanız hata verecektir.
-DTD Belirtimi;
Transitional
Transitional, İngilizce’de “geçiş, geçişme” anlamındadır ve Strict’te olduğu gibi XHTML’de de aynı anlamdadır.
XHTML Transitional DTD’si XHTML 1.0′ın tüm özelliklerini barındırır fakat bazı hususlar vardır, adından da anlaşılabileceği gibi Transitional DTD demek XHTML Strict(yani gerçek XHTML) ile HTML 4.0.1 arasındaki geçişi sağlar. Bu ne demek oluyor? Bu HTML 4.0.1′de ki eskitilmiş elemanlarında XHTML’de kullanılabileceği anlamına geliyor. Ayrıca CSS desteklemeyen tarayıcılar içinde kod yazmak için Transitional DTD kullanılmaktadır.
-DTD Belirtimi;
Frameset
Frameset, Çerçevelerin bulunduğu sayfalarda kullanılan bir DTD’dir. Frameset’in farkı çerçevelere izin vermesidir. (İpucu: Aslında günümüz web tasarımında çerçeveler pek tercih edilmeyen elemanlardır.Fakat unutmamalıyız ki özellikle web betiklerinin yönetim panelleri, barındırma hizmeti aldığımız sunucudaki kontrol panellerde çerçeveler çok sık görebileceğimiz bir elemandır çerçeveler. Ve eğer bizde kontrol panel tasarımı ve kodlaması yapıyorsak çerçeveleri göz ardı edemeyiz ve XHTML’i de kullanabiliyoruz.)
-DTD Belirtimi;
DTD’ler Hakkında Önemli Not: DTD’ler XHTML sayfanızı doğrulatma 1.ci önceliğe sahip elemanlardır. Ve DTD’si bulunmayan XHTML dökümanlarına doğrulayıcılar XHTML muamelesi yapmazlar.
XHTML Modülerliği Hakkında
XHTML basit fakat çok güçlü bir dildir. XHTML bazen basit bazende büyük ve karmaşık bir dil olarak kullanılabilir.
W3C, XHTML modüllerini parçalayarak gerekli yerlerde, gerekli modüllerin kullanılmasını sağlayarak bir çok cihazda uyumluluğu kontrol altına almıştır. Ayrıca XHTML ve XML’in standartları ve kurallarına uyarak bir çok uygulama ve modül geliştirmekte mümkündür.
Bu nedenle XHTML’in modülerliği çok önemlidir. Ve XHTML’in bir XML uygulaması olması burada çok büyük önem kazanmaktadır. Bu sayede XHTML ile birlikte kendi modüllerinizide kullanarak cep telefonu, el bilgisayarı, ev sinema sistemleri gibi aygıtlara çok değişik uygulamalar oluşturabilirsiniz.
XHTML Modülleri ile geliştiriciler aşağıdaki listedeki imkanlardan yararlanmaktadırlar;
- Hazır XHTML modül ve uygulamalarını ilgili cihazlar için kullanabilirsiniz.
- XHTML uygulamalarını bilgisayar harici cihazlara taşıyabilir veya sadece o cihazlar için uygun uygulamalar yazabilirsiniz.
- XHTML’in sınırları çerçevesinde XML kullanarak kendi uygulamalarınızı yazabilir ve ekstra özellikler ekleyebilirsiniz.
- Karışık uygulamalar için XHTML’i genişletebilirsiniz.
XHTML Modülleri
Applet Module - Eskitilmiş applet elemanını tanımlar.
Base Module – Base elemanını tanımlar.
Basic Forms Module - Temel form elemanlarını tanımlar.
Basic Tables Module - Temel tablo elemanlarını tanımlar.
Bi-directional Text Module - BDO elemanını tanımlar.
Client Image Map Module - Tarayıcı taraflı imaj haritası elemanlarını tanımlar.
Edit Module - del ve ins gibi düzenleme elemanlarını tanımlar.
Forms Module - Formlarda kullanılan bütün elemanları tanımlar.
Frames Module - Çerçeve elemanlarını tanımlar.
Hypertext Module - a elemanını tanımlar.
Iframe Module - iframe elemanını tanımlar.
Image Module - img elemanını tanımlar.
Intrinsic Events Module - Durum niteliklerini tanımlar. (onclick, onmouseover gibi)
Legacy Module - Eskitilmiş eleman ve parametreleri tanımlar.
Link Module - Link elemanını tanımlar.
List Module - ol,li,ul,dd,dt ve dt elemanını tanımlar.
Metainformation Module - Meta elemanlarını tanımlar.
Name Identification Module - Eskitilmiş name elemanını tanımlar.
Object Module - Object ve param elemanlarını tanımlar.
Presentation Module - b,i ve strong gibi gösterim elemanlarını tanımlar.
Scripting Module - script ve noscript elemanlarını tanımlar.
Server Image Map Module - Sunucu taraflı imaj haritası elemanlarını tanımlar.
Structure Module - Ana elemanları tanımlar. (html, head, title ve body)
Style Attribute Module - style parametrelerini tanımlar.
Style Sheet Module - style elemanını tanımlar.
Tables Module - Tablolarda kullanılan elemanları tanımlar.
Target Module - target parametresini tanımlar.
Text Module - Metin gösterim özellikleri ile ilgili elemanları tanımlar. (p, h1, h2)
-Eskitilmiş elemanlar XHTML’de kullanılmamaktadır.
Sonsöz
XHTML’e temel bir giriş yapmak, XHTML’in kurallarını öğrenmek için bu makale ne kadar yeterli olsa bile yine de XHTML her dilde olduğu gibi kullanılarak alışacağınız bir dildir. Bu makale ile HTML bilen herkes bu makaleyi okuyarak ve 1-2 saat pratik yaparak XHTML’i kullanacak duruma gelebilir.
Konumuzun dışında gibi gözüksede XML, XHTML, DTD, XML Şemaları, XSLT, XPath, XLink ve XPointer hakkında kapsamlı bilgi için Sistem Yayıncılık tarafından çıkartılmış olan Elizabeth Castro’nun XML kitabını tavsiye ediyorum.
İnternette fazla araştırma yapmanıza gerek olmasada yine kısa bir araştırma ile XHTML bilgilerinizi genişletebilirsiniz. Fakat en önemlisi pratik yapmak ve bundan sonraki bütün dökümanlarınızı XHTML ile kodlamaktır.
Web Tasarım alanında standartları ve gelişebilirliği yakalamak üzere bir daha ki makalede görüşmek üzere.