XHTML vs HTML
A causa del fatto che XHTML è un'applicazione XML, alcune pratiche che erano perfettamente legali nell'HTML 4 basato su SGML devono essere cambiate. Hai già visto la sintassi XHTML nel capitolo precedente, quindi le differenze tra XHTML e HTML sono molto evidenti. Di seguito è riportato il confronto tra XHTML e HTML.
I documenti XHTML devono essere ben formati
La buona formazione è un nuovo concetto introdotto da XML. In sostanza, questo significa che tutti gli elementi devono avere tag di chiusura e devi nidificarli correttamente.
CORRECT: Nested Elements
<p>Here is an emphasized <em>paragraph</em>.</p>
INCORRECT: Overlapping Elements
<p>Here is an emphasized <em>paragraph.</p></em>
Gli elementi e gli attributi devono essere in minuscolo
I documenti XHTML devono utilizzare lettere minuscole per tutti gli elementi HTML e i nomi degli attributi. Questa differenza è necessaria perché si presume che il documento XHTML sia un documento XML e XML fa distinzione tra maiuscole e minuscole. Ad esempio, <li> e <LI> sono tag diversi.
I tag finali sono obbligatori per tutti gli elementi
In HTML, alcuni elementi possono omettere il tag di fine. Ma XML non consente l'omissione dei tag di fine.
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>
I valori degli attributi devono essere sempre quotati
Tutti i valori degli attributi, compresi i valori numerici, devono essere citati.
CORRECT: Quoted Attribute Values
<td rowspan="3">
INCORRECT: Unquoted Attribute Values
<td rowspan=3>
Minimizzazione degli attributi
XML non supporta la minimizzazione degli attributi. Le coppie valore-attributo devono essere scritte per intero. I nomi degli attributi come compatto e verificato non possono essere presenti negli elementi senza che venga specificato il loro valore.
CORRECT: Non Minimized Attributes
<dl compact="compact">
INCORRECT: Minimized Attributes
<dl compact>
Gestione degli spazi vuoti nei valori degli attributi
Quando un browser elabora gli attributi, esegue le seguenti operazioni:
Strisce iniziali e finali di spazi bianchi.
Associa le sequenze di uno o più caratteri di spazio bianco (comprese le interruzioni di riga) a un singolo spazio tra le parole.
Script ed elementi di stile
In XHTML, lo script e gli elementi di stile non dovrebbero avere direttamente i caratteri "<" e "&", se esistono; quindi vengono trattati come l'inizio del markup. Le entità come "<" e "&" sono riconosciute come riferimenti di entità dal processore XML per la visualizzazione rispettivamente dei caratteri "<" e "&".
Il wrapping del contenuto dello script o dell'elemento di stile all'interno di una sezione contrassegnata da CDATA evita l'espansione di queste entità.
<script type="text/JavaScript">
<![CDATA[
... unescaped VB or Java Script here... ...
]]>
</script>
Un'alternativa è usare script e documenti di stile esterni.
Gli elementi con attributi id e name
XHTML consiglia la sostituzione dell'attributo name con l' attributo id . Si noti che in XHTML 1.0, l' attributo name di questi elementi è formalmente deprecato e verrà rimosso nelle versioni successive di XHTML.
Attributi con set di valori predefiniti
HTML e XHTML hanno entrambi alcuni attributi con set di valori predefiniti e limitati. Per esempio,type attributo del inputelemento. In HTML e XML, questi vengono chiamatienumerated attributes. In HTML 4, l'interpretazione di questi valori non faceva distinzione tra maiuscole e minuscole, quindi un valore diTEXT era equivalente a un valore di text.
In XHTML, l'interpretazione di questi valori fa distinzione tra maiuscole e minuscole, quindi tutti questi valori sono definiti in minuscolo.
Riferimenti di entità come valori esadecimali
Sia HTML che XML consentono riferimenti a caratteri utilizzando un valore esadecimale. In HTML questi riferimenti potrebbero essere fatti usando entrambi&#Xnn; o &#xnn; e sono validi ma nei documenti XHTML, è necessario utilizzare solo la versione minuscola come &#xnn;.
L'elemento <html> è un must
Tutti gli elementi XHTML devono essere nidificati all'interno dell'elemento radice <html>. Tutti gli altri elementi possono avere sottoelementi che devono essere in coppia e correttamente annidati all'interno del loro elemento genitore. La struttura di base del documento è:
<!DOCTYPE html....>
<html>
<head> ... </head>
<body> ... </body>
</html>