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. In questo modo dovrete modificare l'URI nella dichiarazione DOCTYPE:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.miodominio.it/DTD/xhtml1-strict.dtd">
Nell'esempio si suppone che la DTD sia localizzata nella cartella DTD di un server miodominio.it. Se ciò può sembrare una bizzarria ora non lo sarà forse tra qualche anno quando milioni di browser tenteranno di convalidare documenti XHTML contro le DTD del W3C. È evidente che il pericolo è quello di rallentamenti e strozzature.
L'aspetto su cui ora vogliamo soffermarci è il contenuto di una DTD. Il codice è quanto di più criptico si possa immaginare, ma non mancano manuali che spiegano bene come interpretarle. Facciamo un esempio. Ecco come viene definito nella DTD Strict l'uso dell'elemento <img>:
<!ELEMENT img EMPTY>
<!ATTLIST img
%attrs;
src %URI; #REQUIRED
alt %Text; #REQUIRED
longdesc %URI; #IMPLIED
height %Length; #IMPLIED
width %Length; #IMPLIED
usemap %URI; #IMPLIED
ismap (ismap) #IMPLIED
>
Traduzione in italiano:
L'elemento immagine è vuoto (EMPTY). Puo assumere tutti gli attributi fondamentali (%attrs;): sono quelli comuni alla maggior parte degli elementi (id, class, style, title). Altri attributi possibili sono: src, alt, longdesc, width, height, usemap, ismap. Src e alt sono obbligatori (#REQUIRED). Gli altri opzionali (#IMPLIED).
Conoscere il contenuto di una DTD è dunque importante. Se non inserite, per esempio, l'attributo alt per un'immagine e validate la pagina vi verrà segnalato l'errore e potrete correggerlo. Ma se si conoscono le regole in partenza è certamente meglio, si eviterà di procedere per prova e correzione d'errore.
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. Nella sezione riferimenti in fondo alla pagina segnaliamo un paio di reference online, ma le trovate anche nei migliori manuali su XHTML o HTML.
Il riferimento ad HTML non deve stupire. Le tre DTD XHTML 1.0 sono infatti basate sulle corrispondenti DTD elaborate per HTML 4.0. Vedremo ora quali sono le principali caratteristiche di ciascuna.
DTD Strict
È 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>, |
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:
- sono esclusi tutti gli attributi del tag <body> tranne quelli comuni (vedi sopra)
- non si può usare align per l'allineamento del testo in paragrafi e altri elementi
- non è supportato l'attributo target per i link e i form
- per una tabella (<table>) non si possono specificare il bordo, il colore di sfondo (bgcolor) o l'allineamento (align)
- le celle di tabella (<td>) non supportano il colore di sfondo, la larghezza (width), l'altezza (height). Supportano invece l'allineamnto del testo (align)
DTD Transitional
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.
DTD Frameset
È 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.
Riferimenti
XHTML Reference di W3Schools: W3Schools è una specie di HTML.it americano. Tante guide e tutorial su vari aspetti del web design con un linguaggio semplice ed efficace. La reference XHTML è un capolavoro di chiarezza e facilità d'uso.
XHTML Reference di zvon.org: ottimo sito che spazia da HTML ai linguaggi emergenti. La reference XHTML è completa ma poco chiara.