I doctype più comuni da utilizzare
- Dettagli
- Categoria: Gestione siti
- Pubblicato Giovedì, 22 Dicembre 2011 21:45
Il Document Type Definition, abbreviato DTD, serve a definire le componenti ammesse nella costruzione di un documento xml.
Quindi esso:
- definisce gli elementi leciti all'interno del documento. Non si possono usare altri elementi se non quelli definiti. Una specie di vocabolario per i file che lo useranno.
- definisce la struttura di ogni elemento. La struttura indica cosa può contenere ciascun elemento, l'ordine, la quantità di elementi che possono comparire e se sono opzionali o obbligatori. Una specie di grammatica.
- dichiara una serie di attributi per ogni elemento e che valori possono o devono assumere questi attributi.
- fornisce infine alcuni meccanismi per semplificare la gestione del documento, come la possibilità di dichiarare entità e la possibilità di importare parti di altri DTD.
Analizziamo questo esempio di Doctype XHTML 1.1 Strict (il doctype più ferreo)
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
HTML specifica che il tipo di linguaggio base utilizzato è l'HTML.
PUBLIC che il documento è pubblico.
- (è il segno "meno") e significa che le specifiche non sono registrate all'ISO (organizzazione di standardizzazione internazionale). Se lo fossero state, ci sarebbe stato un "+".
W3C dichiara che il documento fa riferimento alle specifiche rilasciate dal W3C.
DTD XHTML 1.1 definisce che il documento fa riferimento a una DTD XHTML di versione 1.1
EN afferma che la lingua con cui è scritta la DTD è l'inglese.
Oramai in quasi tutti i casi si usa nel Doctype l'indirizzo di riferimento in cui è possibile trovare la DTD; questo perchè con le versioni avanzate di XHTML le DTD si sono duplicate e ne esistono diversi tipi; mentre in passato, come per l'HTML, non lo si fa quasi mai, perché gli indirizzi su cui trovare la documentazione sono universalmente noti.
In questo caso quindi www.w3.org/TR/xhtml11/DTD/xhtml11.dtd è l'indirizzo specifico ed ufficiale della DTD usata.
html xmlns significa html xmlNameSpace e viene specificato nei soli documenti XHTML per specificare l'indirizzo ufficiale e generale per le direttive di tutti i documenti XHTML, specificando poi il linguaggio di interpretazione del proprio documento xml, in questo caso italiano quindi IT, tramite xml:lang=it
Questo era il caso del Doctype XHTML 1.1 Strict, l'ultima versione di definizione, ed anche la più ferrea e rigorosa.
I tipi di Doctype esistenti si suddividono in 3:
Transitional, Frameset e Strict.
Per ogni diversa versione di (X)HTML usata possono essere disponibili questi doctype, in alcuni casi solo uno, in altri 2, ed in altri casi tutti 3.
Ad esempio per la versione analizzata in precedenza, XHTML 1.1, esiste solo l'indicazione Strict, mentre per l'XHTML 1.0 o l'HTML 4.01 sono disponibili sia Transitional, che Frameset, che Strict.
Veniamo quindi a chiarire le 3 definizioni di Doctype:
Transitional: è una versione cosiddetta temporanea, per consentire il passaggio da una specifica all'altra. Nella DTD Transitional i tag deprecati sono ammessi, e non richiede troppo rigore e precisione estrema.
Appunto per questa sua "facilità d'uso" che impone meno restrizioni durante lo sviluppo del documento, tale DTD andrà bene nella maggior parte dei casi ed è forse la più adoperata.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Frameset: tale definizione viene usata quando una pagina è suddivisa in frames.
Al posto dell'elemento body si trova l'elemento frameset, ma per il resto è identica alla definizione Transitional con le sue raccomandazioni d'uso.
Quindi questa indicazione dichiara la suddivisione della pagina in righe e/o colonne, in modo da caricare poi i frames corrispondenti con i relativi tag conformi.
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
Strict: è una DTD particolarmente rigorosa e la più rigida, anche se la più apprezzata per correttezza e sintassi.
In essa non è consentito l'uso degli elementi deprecati.
La Doctype Strict non permette alcun tag o attributo diretto che incorpora ancora elementi di presentazione; infatti, essendo il più restrittivo, tutta la parte di presentazione è demandata ed affidata ai CSS, e non è consentito utilizzare alcun tag che specifichi degli stili degli elementi della pagina.
Ad esempio non possono essere adoperati attributi come font, colori, ed ogni tag di creazione di stile direttamente all'interno del documento, ma il tutto dev'essere definito in un file CSS esterno.
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Per quanto riguarda qualche accorgimento pratico, è bene ricordare che, a differenza dell'HTML, nell'XHTML i tag devono essere più precisamente strutturati, cioè obbedire ad una serie di regole che ne assicurino la coerenza reciproca.
Tra le fondamentali raccomandazioni per una corretta sintassi di scrittura in XHTML i tag devono essere terminati, compresi quelli vuoti e senza obbligo di chiusura come img, hr, br, aggiungendo una / di chiusura al tag di apertura, ad esempio:
Bisogna poi sostituire l'entità & aggiungendoci amp;
Altro cambiamento molto importante è l'uso delle maiuscole e minuscole. Infatti non si possono usare le maiuscole per i nomi dei tag e degli attributi, ma va tutto scritto in minuscolo.
Deve essere inoltre presente l' uso dell' attributo alt per il testo da visualizzare in alternativa ad un'immagine, in modo da consentire la compatibilità con dispositivi il cui display non supporta immagini.
Ancora altri attributi sono invece stati vietati dal nuovo standard, ad esempio option selected e per quanto riguarda l'indicazione Strict, anche il tag <font>
Altri tag necessitano invece di regole aggiunte, ad esempio su a e gli elementi di map l'attributo name è stato sostituito da id, che a sua volta deve avere valori univoci all'interno della forma, ma quest'ultimo cambiamento riguarda esclusivamente l'ultima DTD XHTML 1.1
Altro accorgimento pratico per questo avanzato doctype XHTML 1.1 è quello di sostituire su ogni elemento l'attributo lang con la forma più appropriata xml:lang
Queste 3 sono le forme di doctype quasi esclusivamente utilizzate; sarà possibile scegliere la più adeguata per il proprio documento ed inserirla prima dell'head.
Per le DTD XHTML bisogna specificare anche il metacomando già mostrato prima che precisa il riferimento preciso delle definizioni xml e il linguaggio del relativo documento, nel nostro caso italiano:
Esistono altri tipi di doctype validi, ad esempio per dispositivi mobili come telefoni cellulari, e sistemi particolari, che sono la netta minoranza, consultabili qui.
Con l'avvento dell'XHTML sempre più restrittivo, alcuni degli errori più frequenti e più facilmente commettibili per coloro che scrivono codice XHTML sono:
- Elementi privi di terminatore (come sopra detto l'XHTML è molto più restrittivo dell'HTML sotto questo aspetto)
- Omissione del testo da visualizzare in alternativa ad un'immagine (da usare mediante l'attributo alt, in modo da consentire la compatibilità con dispositivi il cui display non supporta immagini)
- Inserire tag e attributi direttamente nel corpo del documento;
- Annidare blocchi di codice all'interno di elementi inline;
- Dimenticare le virgolette per delimitare gli attributi;
- Inserire elementi non consentiti o in modo non valido;
- Usare in modo scorretto entità varie (ad esempio & senza averci aggiunto anche amp;)
- Usare le maiuscole per i nomi dei tag e degli attributi.


