XHTML
XHTML | |
---|---|
![]() | |
![]() | |
Estensione | .xhtml,.xht,.xml,.html,.htm
|
Tipo MIME | application/xhtml+xml
|
Uniform Type Identifier (UTI) | public.XHTML
|
Sviluppatore | W3C |
1ª pubblicazione | 26 gennaio 2000 |
Ultima versione | 2.0 (2 luglio 2009) |
Formato aperto? | Sì |
Sito web | w3.org/MarkUp/ |
L'XHTML(sigla dieXtensible HyperText Markup Language,Linguaggio di marcatura di ipertesti estensibile) è unlinguaggio di marcaturache associa alcune proprietà dell'XMLcon le caratteristiche dell'HTML:un file XHTML è una pagina HTML scritta in conformità con lo standard XML.
L'XHTML è nato ufficialmente il 26 gennaio2000come standard delWorld Wide Web Consortium(W3C), e può essere definito tecnicamente una riformulazione dell'HTML 4.01 in XML 1.0; è una sorta di "ponte" tra questi due linguaggi.
Caratteristiche generali
[modifica|modifica wikitesto]L'XHTML è il successore diretto dell'HTML 4.01. La necessità di un linguaggio dotato di unasintassimeglio definita rispetto a quella dell'HTML tradizionale cominciò ad essere avvertita quando si diffuse l'uso di inviarepagine webai nuovi dispositivi apparsi sul mercato diversi dai tradizionalicomputer,come ad esempio piccoli apparecchi portatili, dotati di risorsehardwareesoftwarenon sufficienti ad interpretare il linguaggio HTML. Va tenuto presente che più generica è la sintassi di unlinguaggio di markup,più difficile risulta realizzare dispositivi in grado di interpretarlo correttamente. Una specificaDocument Type Definition(DTD) definisce l'insieme di regole mediante le quali un dato documento può essererenderizzato(cioèrappresentato correttamente) dall'XHTML.
- Struttura logica della pagina
Il linguaggio prevede un uso più restrittivo deitag HTML(sia in termini di validità che in termini di sintassi) per descrivere solo la struttura logica della pagina, mentre illayoute la resa grafica sono imposti daifogli di stile a cascata(Cascading Style Sheets,CSS).
- Visualizzazione grafica
Tutti ibrowserattualmente più diffusi sono in grado di renderizzare correttamente i documenti XHTML, ma anche i browser più vecchi sono solitamente in grado di interpretare i documenti XHTML, poiché questo linguaggio è in buona parte un sottoinsieme dell'HTML e le sue regole sintattiche sono compatibili anche a ritroso. Lo stesso vale anche in senso inverso: quasi tutti i browser compatibili con l'XHTML renderizzano correttamente anche i documenti HTML.
L'XHTML Transitional(XHTML di transizione,vedi oltre) si distingue dall'HTML principalmente perché è più compatibile con le specifiche dell'XMLe dall'XHTML stretto (XHTML strict) per una maggior tolleranza nei confronti di definizioni deprecate.
La differenza più importante è che tutti itagdevono essere ben strutturati, cioè obbedire ad una serie di regole che ne assicurino la coerenza reciproca, e devono essereterminati,compresi quellivuoti(ad esempioimg
ebr
). Per eseguire la terminazione in modo implicito si può aggiungere una "/" di chiusura al tag di apertura (es:<img… />
e<br />
). Altri tipi di abbreviazione non sono invece permessi (es:<option selected>
).
La sintassi prevede inoltre che i tag debbano essere sempre scritti 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 fravirgolette,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. Per ulteriori dettagli si rinvia allespecifiche W3C XHTML.Le pagine diWikipediasono state scritte usando la versione 1.0 Transitional di XHTML.
Validazione dei documenti XHTML
[modifica|modifica wikitesto]Un documento XHTML che risponde alle specifiche è definitodocumento validoovverowell formed.Teoricamente, tutti i browser dovrebbero essere conformi agli standard W3C, e quindi essere in grado di rendere i documenti su qualsiasipiattaforma.La validazione (cioè ilcontrollo sintattico) dei documenti XHTML non assicura tuttavia al 100% la compatibilità con tutti i browser, principalmente per limiti di questi ultimi, ma è comunque fortemente consigliata. Uno strumento per controllare la validità dei documenti è disponibile presso ilMarkup Validation Servicedel W3C (vedi[1]).
Come sopra accennato, perché un documento possa essere validato, deve contenere un elemento chiamato DTD (Document Type Definitiono Document Type Declaration), 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:// w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
- XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
- XHTML 1.0 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http:// w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd" >
- XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http:// w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
Il tipo di codifica applicata (character encoding) deve essere sempre specificato all'inizio del documento. Ciò consente alvalidatore,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 gli sviluppatori 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[1]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é&
). - Usare le maiuscole per i nomi dei tag e/o degli attributi.
Questo non è, ovviamente, un elenco esauriente degli errori, ma solo un'indicazione di quelli che i programmatori commettono più frequentemente. Quando una pagina è validata utilizzando il servizio di validazione delW3C,il validatore restituisce una piccolaiconache può essere inserita nel documento per comprovarne la conformità allo standard. Il W3C fornisce lo stesso servizio anche per i fogli di stileCSSe per i documenti HTML.
Versioni
[modifica|modifica wikitesto]Come sopra accennato, XHTML è una riformulazione di HTML come linguaggio XML. Quindi, come è logico aspettarsi, ne esistono tre differenti DTD, corrispondenti ad altrettante DTD di HTML 4.01
XHTML 1.0
[modifica|modifica wikitesto]- XHTML 1.0 Transitional:nato per favorire la migrazione dalla vecchia versione HTML 3.2 o per uso insieme a link e framein-line.Accetta come validi anche i tag HTML che sono stati definiti comedeprecatiin XHTML ed è tollerante rispetto ad alcune non conformità sintattiche.
- XHTML 1.0 Strict:rispetto alla versioneTransitionalnon accetta i tag HTML definiti deprecati, non è tollerante a non conformità sintattiche e prevede controlli più rigorosi anche rispetto al valore di alcuni attributi dei tag (per esempio, l'attributoiddeve avere valori univoci all'interno dello stesso documento).
- XHTML 1.0 Frameset:nato per motivi di compatibilità per suddividere la finestra visualizzata dal browser in diversiframe(sottofinestre), pratica un tempo diffusa ma ora deprecata dal World Wide Web Consortium.
XHTML 1.1
[modifica|modifica wikitesto]L'ultima versione di XHTML è laXHTML 1.1,che è una riformulazione dell'XHTMLStrict,quindi ha una sola DTD. Non accetta i tag e gli attributi più criticati della precedente versione (come la struttura aframeset). Questa versione invece supporta i tag del cosiddetto markup «ruby», che consente di visualizzare i set di caratteri delle lingue orientali.
XHTML 2.0
[modifica|modifica wikitesto]XHTML 2è un linguaggio di progettazione per il web; il 2 luglio2009ilWorld Wide Web Consortiumne ha decretato la cessazione dello sviluppo[2],mentre era ancora in fase di specifica, a favore dell'HTML5.Nelle intenzioni, doveva rappresentare l'evoluzione dell'XHTML 1.0.
Si caratterizza principalmente per una struttura modulare, in cui le regole per l'impostazione dei vari elementi di una pagina web (suddivisione del testo; moduli elettronici; dati tabellari eccetera) sono descritte in moduli separati, che possono evolvere indipendentemente tra loro.
Rispetto alla prima versione di XHTML, vengono rese più forti le caratteristicheXMLper le regole sintattiche, inoltre vengono approfondite ed estese le possibilità di controllo sui moduli elettronici (form), introducendo strutture più complesse ed elementi di elaborazione.
La definizione procedeva in parallelo a quella dell'HTML5,che veniva considerato dal World Wide Web Consortium come uno standard di markup complementare rispetto a XHTML 2, ma la fase di specifica si è arrestata di fronte a due problemi:
- la scarsa compatibilità;
- si sarebbe trattato a tutti gli effetti di un markup quasi completamente nuovo, piuttosto che di un'evoluzione dell'XHTML 1.1.
Dunque si è preferito abbandonare l'XHTML 2 a favore dell'HTML5,che riprende alcune delle definizioni e degli approcci concepiti per XHTML 2 ma adattati per garantire un funzionamento compatibile con gli attuali browser.
XHTML 5
[modifica|modifica wikitesto]Lo standard HTML 5 include delle direttive per scrivere codice HTML processato come XML, al quale ci si riferisce abitualmente come XHTML 5.
Le modifiche allo standard HTML 5 sono anche implicitamente applicate all'XHTML 5, ma non si tratta di due linguaggi differenti, quanto di due diversesintassidello stesso linguaggio.[3]Il W3C ha messo a disposizione un manuale per produrre documenti che producano lo stesso output indipendentemente se processati come HTML o XML.[4]
Versioni per dispositivi mobili
[modifica|modifica wikitesto]Esistono altre versioni di XHTML, studiate per dispositivi portatili:
- 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 telefonicellulari.È da considerare come la controparte degli esistenti linguaggiWMLeC-HTML.
- XHTML Mobile Profile:basato sulla versioneBasicdi XHTML, sviluppato daNokiaper aggiungere all'XHTML Basic funzionalità specifiche dei terminali telefonici.
Note
[modifica|modifica wikitesto]- ^Perannidaresi 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 tipoa scatole cinesi.Ciascun livellovedeetrattai blocchi ai livelli sottostanti comeentitàindivisibili.
- ^XHTML 2 Working Group Expected to Stop Work End of 2009, W3C to Increase Resources on HTML 5
- ^A vocabulary and associated APIs for HTML and XHTML
- ^Polyglot Markup: A robust profile of the HTML5 vocabulary,sudev.w3.org.URL consultato il 5 maggio 2019(archiviato dall'url originaleil 17 aprile 2019).
Voci correlate
[modifica|modifica wikitesto]Altri progetti
[modifica|modifica wikitesto]Wikimedia Commonscontiene immagini o altri file sull'XHTML
Collegamenti esterni
[modifica|modifica wikitesto]- Specifica XHTML 1.0Archiviatoil 15 giugno 2003 inInternet Archive.(traduzione non normativa)
- Lista completa dei tag XHTML con descrizione delle funzionalità, supporto dei browser ed esempi pratici di applicazione,sulau.csi.it.URL consultato il 4 febbraio 2006(archiviato dall'url originaleil 17 febbraio 2006).
- (EN)W3C's HTML Home Page,suw3.org.
- (EN)Specifica XHTML 1.0(testo originale normativo)
- (EN)Specifica XHTML 1.1,suw3.org.
- (EN)Working Draft della specifica XHTML 2.0,suw3.org.
- (EN)XHTML tutorialsu Wikibooks
Controllo di autorità | LCCN(EN)sh99011665·GND(DE)4600114-1·BNE(ES)XX548362(data)·BNF(FR)cb135582181(data)·J9U(EN,HE)987007554001405171 |
---|