HTML Yerine XHTML
Nedir XHTML ?
Son günlerde bilgisayar dünyasında hemen hemen her konuda XML kelimesi geçmektedir. İnternet, Network, İşletim Sistemleri ,Grafik-Animasyon programları, Web Servar'ları, Office programları vs.. bir çok alanda kullanılmaktadır. XML'in bu gücü nedeniyle HTML yerini XHTMl'e bırakmıştır.
XHTML (Extensible HTML) bir XML dilidir ve HTML'in işlevini görmektedir. XML'in tüm kurallarına uyar. XHTML ile HTML'in farklarına bakalım
- XHTML genişletilebilir (extensible). Bu sayede yeni element'ler eklenebilir.
- İnternet'e birbirinden çok farklı araçlardan bağlanılmaktadır. Cep telefonu, Tv, Palm vs.. Tüm bu sistemlerde web sayfasının görünebilmesi için standard bir dile ihtiyaç vardır.
- HTML hoşgörülü bir dildir. Bir etiket'i kapatmasanızda olur. Attribute'lerin değerlerini çift veya tek tırnak hatta tırnaksız olrak verebilirsiniz. Bu hoşgörülülük nedeniyle bir HTML dosyasının doğru yazılıp yazılmadığına emin olamazsınız. Halbuki XHTMl'de kurallar kesindir. Bir etiket açılmıssa kesinlikle kapatılmalıdır. Attribute değerleri çift tırnak ile verilir. Bir element'in özellikleri (attribute'leri, hangi element'lerin içinde olabileceği vs..) belirlidir. Bir element uygun olmadığı yerde kullanılamaz. Bu kurallar DTD ile verilir.
- XHTML herhangi bir XML aracı ile edit edilebilir. Belki binlerce XML dili mevcuttur. Her dil için ayrı bir editor kullanmak yerine tek bir XML editorü kullanmak daha yararlıdır. XHTML bir XML dili olduğu için bir XHTML dosyasının içeriği XML araçlarıyla görülebilir , değiştirilebilir.
- XHTML XSLT ile herhangi başka bir XML dosyasına veya başka bir tip'e dönüştürülebilir. Bu sayede XHTML'de saklanmış bilgi başka şekillerde değerlendirilebilir. Halbuki HTML'in kuralları kesin olmadığı için içeriğine ulaşmak zor olur. Örneğim XHTML sayfası bir XSLT ile PDF formatına çevrilebilir.
- Bir XML dosyasındaki bilgiler DOM denilen bir nesneye çevrilirler. Bu sayede herhangi bir XML dosyasının içeriğine aynı model kullanılarak erişilebilir. Böylece tüm XML dokümanları için tek bir script dili kullanılabilir. Halbuki HTML için kullanılan JavaScript diğer XML dilleri için kullanılamamaktadır.
- Bir XML document'inin içine namespace kullanarak diğer XML dillerinden element'ler kullanılabilir. Örneğin XHTML içine SVG veya MathML gömülebilir. XHTML'i değerlendiren program (Örneğin browser) bu MathML veya SVG element'lerini değerlendirebilir. Tam tersine başka bir XML document'inin içene XHTML namespace'i kullanarak XHTML gömülebilir.
Doğru Bir XHTML Oluşturmak
Bir XHTML document'inin root element'i HTML olmalıdır. ve xmlns attribute'si ile XHTML namesapce'si belirtilmelidir
<html xmlns="http://www.w3.org/1999/xhtml"/>
DOCTYPE declaration'u bulunmalıdır. Bu declaration html elementinden önce olmalıdır.
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
<html xmlns="http://www.w3.org/1999/xhtml">
.........
</html>
Açılan her element kapatılmalıdır.
<p>Bu paragraph well-formed'dir</p>
bunun yerine
<p>Bu paragraph well-formed değildir
<p>Çünkü p etiketi kapanmadan yenisi açıldı
XHTML case-sensitive'dir Yani büyük küçük harf birbirinden farklıdır. XHTML'de tüm etiketler ve attribute'ler küçük harftir.
Bir element'in içinde hiç birşey yoksa bile kapatılmalıdır. Örneğin br etiketinin içinde hiç bir etiket veya içerik yoktur.
<p>Bu paragraph well-formed'dir<br/>
Çünkü br etiketi kapatılmıştır</p>
script veya stiller eklerken & veya < gibi işaretler kullanılmaz. Bunların yerine entity referansları kullanımalıdır Örneğin & yerine & ve < yerine < kullanımalıdır. Eğer çok fazla bu işaretleri kullanıyorsanız CDATA element'ini kullanmalısınız.
<script type="text/javascript">
<![CDATA[
... burada < veya < işaretlerini kullanabilirsiniz.
]]>
</script>
Tek başına attribute kullanılamaz. Her attribute'nin değeri olmalıdır. Örneğin readonly attributesi HTML'deki gibi kullanılamaz.
<input type="text" size="10" readonly>
yerine
<input type="text" size="10" readonly="readonly"/>
kullanmalısınız