XHTML

linguaggio di marcatura
Versione del 16 mag 2006 alle 23:30 di 87.4.242.133 (discussione) (Cenni generali: sorry, precedente correzione nel posto sbagliato, sistemata nel posto giusto)

XHTML (acronimo per eXtensible HyperText Markup Language) nasce ufficialmente il 26 gennaio 2000 come raccomandazione W3C, e può essere definito sostanzialmente una riformulazione di HTML 4 come applicazione XML 1.0, ovvero come linguaggio definito a partire dalle specifiche XML. Il linguaggio prevede un uso più restrittivo dei tag HTML; solo la struttura della pagina è scritta in XHTML, mentre il layout è imposto dai cosiddetti CSS (Cascading Style Sheets, ovvero fogli di stile gerarchici). HTML è, a sua volta, un'applicazione particolare di SGML, linguaggio di markup esistente da tempo ed estremamente flessibile.

Cenni generali

XHTML è il successore diretto e la versione più aggiornata di HTML. La necessità di un linguaggio dotato di una sintassi meglio definita rispetto a quella dell'HTML cominciò ad essere avvertita quando si diffuse l'uso di inviare pagine web a molti dei nuovi dispositivi diversi dai tradizionali computer, come ad esempio piccoli apparecchi portatili, dotati di risorse hardware e software non sufficienti ad interpretare il linguaggio HTML. Va tenuto presente che più generica è la sintassi di un linguaggio di programmazione, più difficile risulta realizzare dispositivi in grado di interpretarlo correttamente. Una specifica DTD (Document Type Declaration) definisce l'insieme di regole mediante le quali un dato documento può essere renderizzato (cioè rappresentato correttamente) dall'XHTML.

La maggior parte delle versioni dei browser attualmente più diffusi è già in grado di renderizzare correttamente documenti XHTML. Inoltre anche i browser più vecchi sono solitamente in grado di interpretare documenti XHTML, poiché questo linguaggio è in buona misura un sottoinsieme di HTML. Analogamente, quasi tutti i browser compatibili con XHTML renderizzano correttamente anche documenti HTML. Secondo un'opinione diffusa, questo alto grado di compatibilità sta rallentando la migrazione da HTML a XHTML. Per sfruttare integralmente le potenzialità dell'XHTML è necessario usarlo in abbinamento ai CSS (Cascading Style Sheets, cioè fogli di stile), in modo da scrivere un codice per pagine web in cui la presentazione è separata dal contenuto.

Le differenze fra HTML e l'XHTML Transitional (vedi oltre) non sono molto grandi, e sono volte principalmente ad aumentarne l'aderenza alle specifiche dell'XML. La differenza più importante è che tutti i tag devono essere well formed (letteralmente ben strutturati), cioè obbedire ad una serie di regole ben precise che ne assicuri la coerenza reciproca. Inoltre i tag devono essere scritti tutti in lettere minuscole, convenzione in contrasto con l'abitudine invalsa a partire dalla versione 2.0 di HTML, quando la maggior parte dei programmatori preferiva le maiuscole. Nell'XHTML tutti gli attributi (compresi quelli numerici) devono essere scritti fra virgolette, cosa facoltativa in SGML e HTML, in cui le virgolette possono essere omesse se il contenuto è una stringa alfanumerica o comprende alcuni altri caratteri speciali riservati. Tutti gli elementi del linguaggio devono inoltre essere terminati, compresi quelli vuoti (ad esempio img e br). Per eseguire la terminazione in modo implicito si può aggiungere uno slash di chiusura al tag di apertura (es: <img … /> and <br />). Altri tipi di abbreviazione non sono invece permessi (es: <option selected>). Per ulteriori dettagli consultare le seguenti specifiche W3C XHTML.


Le stesse pagine di Wikipedia sono attualmente scritte usando la versione 1.0 Transitional (di transizione) di XHTML.

Versioni di XHTML

Come sopra accennato, XHTML è una riformulazione di HTML come linguaggio XML. Quindi, come è logico aspettarsi, ne esistono tre differenti versioni, corrispondenti ad altrettante versioni di HTML 4.0

  • XHTML 1.0 Transitional: nato per favorire la migrazione dal HTML 3.2, o per uso insieme a link e frame in-line
  • XHTML 1.0 Strict: separa il contenuto dal layout, cioè dalla presentazione, che ora viene definita mediante i CSS (vedi sopra)
  • XHTML 1.0 Frameset: per suddividere la finestra visualizzata dal browser in diversi frame (sottofinestre)
  • XHTML 1.1: Module-based XHTML, con cui i programmatori possono inserire nelle pagine funzionalità e tag aggiuntivi, come ad esempio i frameset. Questa versione inoltre supporta i tag del cosiddetto markup ruby, che consente di visualizzare i set di caratteri delle lingue orientali.
  • XHTML Basic: versione speciale semplificata dell'XHTML, per dispositivi le cui risorse non sono in grado di supportare il set completo di comandi e tag XHTML, come ad esempio i telefoni cellulari. È da considerare come la controparte degli esistenti linguaggi WML e C-HTML.
  • XHTML Mobile Profile: basato sulla versione Basic di XHTML, sviluppato da Nokia per aggiungere all' XHTML Basic funzionalità specifiche dei terminali telefonici.

Le specifiche della versione XHTML 2.0 sono tuttora in via di definizione, non senza contrasti fra le varie parti interessate, visto che sono sorti vari problemi di compatibilità con le versioni precedenti. Ciò è dovuto al fatto che si tratta a tutti gli effetti di un nuovo linguaggio di markup, piuttosto che di un'evoluzione della precedente versione.

Validazione dei documenti XHTML

Un documento XHTML che risponde alle specifiche è definito documento valido ovvero well formed. Teoricamente, tutti i browser dovrebbero essere conformi agli standard W3C, e quindi essere in grado di renderizzare i documenti su qualsiasi piattaforma. La validazione (cioè il controllo sintattico) dei documenti XHTML non assicura tuttavia al 100% la compatibilità con tutti i browser, ma è comunque fortemente consigliata. Uno strumento per controllare la validità dei documenti è disponibile presso il Markup Validation Service del W3C ( vedi [1]).

Come sopra accennato, perché un documento possa essere validato, deve contenere un elemento chiamato DTD (Document Type Declaration oppure Document Type Definition), da posizionare preferibilmente all'inizio del documento. I tipi più comuni di DTD, e le relative sintassi dichiarative, sono:

XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Il tipo di codifica applicata (character encoding) deve essere sempre specificato all'inizio del documento. Ciò consente al validatore, come ad esempio quello prima citato, messo a disposizione dal W3C, di controllare se il documento risponde allo standard. Il processo di validazione identifica e fornisce una descrizione degli errori rilevati (error log).

Alcuni degli errori più comuni che i programmatori commettono scrivendo 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 testi direttamente nel corpo del documento.
  • Annidare (vedi Nota *) blocchi di codice all'interno di elementi inline.
  • Dimenticare le virgolette per delimitare gli attributi.
  • Annidare gli elementi in modo non valido.
  • Usare in modo scorretto entità varie (ad esempio & anziché &amp;).
  • Usare le maiuscole per i nomi dei tag e/o degli attributi.

Questo non è, ovviamente, un elenco esaustivo degli errori, ma solo un'indicazione di quelli che i programmatori commettono più frequentemente. Quando una pagina è validata utilizzando il servizio di validazione del W3C, il validatore restituisce una piccola icona che può essere inserita nel documento per comprovarne la conformità allo standard. Il W3C fornisce lo stesso servizio anche per i fogli di stile CSS e per i documenti HTML.

Nota *: per annidare si intende inserire un blocco di codice (o di attributi) all'interno di un altro blocco di livello superiore, e così via, secondo un ordine gerarchico del tipo a scatole cinesi. Ciascun livello vede e tratta i blocchi ai livelli sottostanti come entità indivisibili.

Libri

Voci correlate

Collegamenti esterni