XHTML ve HTML
XHTML'nin bir XML uygulaması olması nedeniyle, SGML tabanlı HTML 4'te tamamen yasal olan bazı uygulamalar değiştirilmelidir. Önceki bölümde XHTML sözdizimini zaten görmüştünüz, bu nedenle XHTML ile HTML arasındaki farklar çok açık. XHTML ve HTML arasındaki karşılaştırma aşağıdadır.
XHTML Belgeleri İyi Biçimlendirilmiş Olmalıdır
İyi biçimlilik, XML tarafından sunulan yeni bir kavramdır. Esasen bu, tüm öğelerin kapanış etiketlerine sahip olması gerektiği ve bunları uygun şekilde iç içe yerleştirmeniz gerektiği anlamına gelir.
CORRECT: Nested Elements
<p>Here is an emphasized <em>paragraph</em>.</p>
INCORRECT: Overlapping Elements
<p>Here is an emphasized <em>paragraph.</p></em>
Öğeler ve Nitelikler Küçük Harfte Olmalıdır
XHTML belgeleri, tüm HTML öğeleri ve öznitelik adları için küçük harf kullanmalıdır. Bu fark gereklidir çünkü XHTML belgesi bir XML belgesi olarak kabul edilir ve XML büyük / küçük harfe duyarlıdır. Örneğin, <li> ve <LI> farklı etiketlerdir.
Tüm Öğeler için Bitiş Etiketleri Gereklidir
HTML'de, belirli öğelerin bitiş etiketini çıkarmasına izin verilir. Ancak XML, bitiş etiketlerinin atlanmasına izin vermez.
CORRECT: Terminated Elements
<p>Here is a paragraph.</p><p>here is another paragraph.</p>
<br><hr/>
INCORRECT: Unterminated Elements
<p>Here is a paragraph.<p>here is another paragraph.
<br><hr>
Öznitelik Değerleri Her Zaman Alıntılanmalıdır
Sayısal değerler dahil tüm öznitelik değerleri tırnak içine alınmalıdır.
CORRECT: Quoted Attribute Values
<td rowspan="3">
INCORRECT: Unquoted Attribute Values
<td rowspan=3>
Öznitelik Minimizasyonu
XML, öznitelik küçültmeyi desteklemez. Öznitelik-değer çiftleri tam olarak yazılmalıdır. Kompakt ve işaretli gibi öznitelik adları, değerleri belirtilmeden öğelerde bulunamaz.
CORRECT: Non Minimized Attributes
<dl compact="compact">
INCORRECT: Minimized Attributes
<dl compact>
Öznitelik Değerlerinde Boşluk İşleme
Bir tarayıcı öznitelikleri işlediğinde, aşağıdakileri yapar -
Baştaki ve sondaki boşlukları şeritler.
Bir veya daha fazla beyaz boşluk karakterinin (satır sonları dahil) dizilerini tek bir sözcükler arası boşluğa eşler.
Komut Dosyası ve Stil Öğeleri
XHTML'de, komut dosyası ve stil öğeleri, varsa doğrudan "<" ve "&" karakterlerine sahip olmamalıdır; daha sonra işaretlemenin başlangıcı olarak kabul edilirler. "<" Ve "&" gibi varlıklar, sırasıyla "<" ve "&" karakterlerini görüntülemek için XML işlemci tarafından varlık referansları olarak tanınır.
Komut dosyası veya stil öğesinin içeriğini CDATA işaretli bir bölüme sarmak, bu varlıkların genişletilmesini önler.
<script type="text/JavaScript">
<![CDATA[
... unescaped VB or Java Script here... ...
]]>
</script>
Bir alternatif, harici komut dosyası ve stil belgeleri kullanmaktır.
Kimlik ve ad Özniteliklerine Sahip Öğeler
XHTML, ad niteliğinin id niteliği ile değiştirilmesini önerir . XHTML 1.0'da, bu öğelerin ad özniteliğinin resmi olarak kullanımdan kaldırıldığını ve sonraki XHTML sürümlerinde kaldırılacağını unutmayın.
Önceden Tanımlanmış Değer Kümelerine Sahip Özellikler
Hem HTML hem de XHTML, önceden tanımlanmış ve sınırlı değer kümelerine sahip bazı niteliklere sahiptir. Örneğin,type özniteliği inputöğesi. HTML ve XML'de bunlaraenumerated attributes. HTML 4 altında, bu değerlerin yorumlanması büyük / küçük harfe duyarlı değildi, bu nedenle birTEXT değerine eşitti text.
XHTML altında, bu değerlerin yorumlanması büyük / küçük harfe duyarlıdır, bu nedenle tüm bu değerler küçük harfle tanımlanır.
Onaltılık Değerler Olarak Varlık Referansları
HTML ve XML, onaltılık değer kullanarak karakterlere başvuru yapılmasına izin verir. HTML'de bu referanslar aşağıdakilerden biri kullanılarak yapılabilir:&#Xnn; veya &#xnn; ve bunlar geçerlidir ancak XHTML belgelerinde, yalnızca küçük harfli sürümü kullanmalısınız. &#xnn;.
<html> Öğesi Bir Zorunluluktur
Tüm XHTML öğeleri, <html> kök öğesinin içine yerleştirilmelidir. Diğer tüm elemanlar, çiftler halinde olması ve kendi ana elemanlarının içine doğru şekilde yerleştirilmesi gereken alt elemanlara sahip olabilir. Temel belge yapısı -
<!DOCTYPE html....>
<html>
<head> ... </head>
<body> ... </body>
</html>