Giunti a questo punto dovrebbe essere ormai chiara la funzione di una DTD: descrivere in un linguaggio comprensibile da una macchina la sintassi e la grammatica di un linguaggio XML. Il tutto allo scopo di verificare la validità di un documento che a quella DTD fa riferimento.
Le DTD XHTML 1.0 sono contenute in tre documenti che potete anche scaricare sul vostro computer, sia per imparare come sono fatte sia per usarle direttamente nel vostro sito.
Conoscere il contenuto di una DTD è importante. Se non inserite, per esempio, l'attributo alt per un'immagine e validate la pagina vi verrà segnalato l'errore e potrete correggerlo.
Per fortuna non è necessario imparare una DTD. Esistono per lo scopo ottime reference, elenchi di tutti i tag, degli attributi e degli eventi consentiti che spiegano in dettaglio il loro uso.
Vedremo ora quali sono le principali caratteristiche di ciascuna.
E' la DTD più rigida, centrata esclusivamente sulla struttura del documento. Elimina diversi elementi ed esclude tutti gli attributi che definiscono la presentazione. Per questo scopo vanno usati i CSS. Segue un elenco degli elementi non supportati:
<applet>, <basefont>, <center>, <dir>, <font>, <frame>, <frameset>, <iframe>, <isindex>, <menu>, <noframes>, <s>, <strikegt;, <u>
Oltre agli elementi non consentiti particolare attenzione va posta ad attributi molto usati nella comune pratica del web design. Elenchiamo alcuni casi e rimandiamo ad una buona reference per i dettagli:
Basata sull'omologa DTD di HTML 4.0 è attualmente quella più usata. La spiegazione è semplice. Nelle intenzioni del W3C essa deve essere una sorta di passaggio verso una ridefinizione più rigida del linguaggio. In effetti è utile quando si voglia passare ad XHTML mantenendo il massimo grado di compatibilità con i vecchi browser. Supporta tutti gli elementi e gli attributi di presentazione di HTML 4.0, anche quelli ritenuti sconsigliati. Se dovete e volete ancora usare le tabelle per il layout o fare uso del tag <font> è la DTD che fa per voi.
E' identica alla Transitional, ma va usata quando si utilizzano i frame. L'unica differenza è in pratica la sostituzione del tag <body> con <frameset> nella pagina principale.