Extensible Hypertext Markup Language
| XHTML | |
|---|---|
|
| |
| Estensione file : |
.xhtml, .xht
|
| Tipo MIME : | applicazione / xhtml + xml |
| Sviluppato da: | World Wide Web Consortium |
| Genere: | Linguaggio con marcatori |
| Esteso da: | XML , HTML |
| Standard : |
1.0 (Raccomandazione) , 1.1 (Raccomandazione) , |
Lo standard W3C Extensible Hypertext Markup Language ( HTML espandibile ; abbreviazione XHTML ) è un linguaggio di markup basato su testo per la strutturazione e la marcatura semantica di contenuti come testi, immagini e collegamenti ipertestuali nei documenti. È una riformulazione di HTML 4.01 in XML . Contrariamente all'HTML, che è stato definito usando SGML , XHTML usa il subset XML SGML più rigido e più facile da analizzare come base del linguaggio. I documenti XHTML sono quindi conformi alle regole di sintassi di XML.
XHTML 1.0: transizione da HTML a XHTML
XHTML 1.0 contiene tutti gli elementi di HTML 4.01, in modo che sia facilmente possibile una conversione di pagine compatibili con HTML 4.01 in XHTML 1.0. Un browser web non compatibile con XHTML può tuttavia visualizzare correttamente i documenti XHTML in determinate condizioni (vedi Tipi MIME e compatibilità HTML ): li elabora come un normale HTML. Ciò sfrutta il fatto che i parser HTML dei browser più diffusi tollerano gli errori di sintassi . Questa tolleranza agli errori è emersa come risposta al fatto che numerosi documenti HTML sul World Wide Web non soddisfacevano lo standard formale e che gli utenti trovavano fastidiosi i messaggi del browser sugli errori di sintassi HTML. Per XHTML, d'altra parte, si applica l'idea XML di base di uno scambio di dati semplice e di un'elaborazione automatizzata senza problemi. Di conseguenza, i programmi che elaborano XHTML non sono più così tolleranti.
I tipi di documento XHTML più recenti non contengono più markup di layout. XHTML Transitional 1.0 è l'ultimo tipo di documento che contiene ancora elementi di layout, come <font>o <b>. Tipi di documenti più moderni come XHTML Strict 1.0 contengono ancora pochi elementi di layout, ma solo per ragioni di compatibilità con le versioni precedenti dei tipi di documento Transitional . Infine, in XHTML Basic o XHTML 2, gli elementi di layout non sono più inclusi. Per la progettazione visiva degli elementi XHTML, fare riferimento solo a regole CSS esterne .
Modularizzazione XHTML
Per consentire lo sviluppo di linguaggi basati su XHTML, gli elementi correlati e correlati in XHTML 1.1 sono stati raggruppati in cosiddetti moduli. Sulla base di questi moduli nei DTD e in futuro nello schema XML , è possibile assemblare i propri tipi di documento XHTML secondo il principio modulare e combinarli con altri linguaggi basati su XML. Esempi di applicazioni della modularizzazione XHTML sono XHTML 1.1, XHTML Basic e le miscele con SMIL ( multimedia ), SVG ( grafica vettoriale ) e MathML (set di formule matematiche). Il modulo oggetto viene utilizzato per integrare oggetti generali come plug-in multimediali .
Panoramica della versione
XHTML è un termine usato per riassumere le varie versioni di XHTML:
- XHTML 1.0 rappresenta la riformulazione basata su XML di HTML 4.01 . XHTML 1.0 contiene i ben noti tre tipi di documenti Strict , Transitional e Frameset . XHTML 1.0 è stato progettato in modo tale da rendere possibile la retrocompatibilità con i più diffusi browser HTML. Allo stesso tempo, può essere elaborato dai browser più recenti secondo regole rigorose.
- L'attuale versione XHTML 1.1 si separa dagli elementi e dagli attributi deprecati delle varianti di transizione e frameset, che influenzano direttamente la presentazione del documento. Lo scopo del linguaggio corrisponde in gran parte a XHTML 1.0 Strict, più elementi per le spiegazioni di Ruby . XHTML 1.1 non è progettato per essere compatibile con i browser HTML.
- XHTML Basic è progettato per dispositivi minimalisti come telefoni cellulari e palmari utilizzando solo alcuni componenti linguistici (moduli) di XHTML. XHTML Basic è la base per XHTML Mobile Profiles (vedere WAP 2.0 ) e per WML 2.0.
- La modularizzazione ha portato a ulteriori versioni miste , come XHTML 1.1 più MathML più SVG .
- La versione XHTML 2.0 , il cui sviluppo è stato interrotto a favore di HTML5 alla fine del 2009, avrebbe rotto con l'eredità di HTML 4 e avrebbe fornito modifiche fondamentali.
Importanti innovazioni sarebbero state la notazione semplificata e illimitata dei collegamenti ipertestuali , l'integrazione semplificata di altri tipi di media (ad esempio grafica e video), le opzioni estese per garantire l' accessibilità e la specifica più sofisticata dei metadati . Le precedenti funzioni principali di HTML o XHTML sarebbero state esternalizzate ad altri linguaggi XML in XHTML 2.0, vale a dire XForms per i moduli, eventi XML per l'integrazione di script e XFrame per i frame .
Le principali differenze tra HTML e XHTML
| HTML | XHTML | |
|---|---|---|
| I nomi degli elementi e degli attributi fanno distinzione tra maiuscole e minuscole | Non rilevante (z. B. <br>, <Br>, <BR>)
|
sempre piccolo (solo <br />)
|
Elementi senza contenuto, ad es. B.br
|
<br> <br /> (a seconda del DTD)
|
o un tag elemento vuoto (ad es. <br />) o con un tag di fine (ad es. <br></br>)
La variante |
| Inizio o fine della giornata | L'omissione è consentita in alcuni casi | dichiarare sempre entrambi |
| Specificare il valore dell'attributo tra virgolette | facoltativo purché il valore dell'attributo non contenga determinati caratteri. | sempre |
| attributi booleani , ad es. B. controllato |
<input type="radio" checked>
|
Specificare il nome dell'attributo come valore dell'attributo, ad es. B. <input type="radio" checked="checked" />
|
Anche:
- Il tag di inizio dell'elemento radice
htmldeve sempre contenere la specifica dello spazio dei nomi per XHTML:<html xmlns="http://www.w3.org/1999/xhtml"> - In XHTML 1.1, l'
langattributo è stato sostituito dall'attributoxml:langdi XML. XHTML 1.0 consiglia di specificare entrambi gli attributi; B<html xmlns="http://www.w3.org/1999/xhtml" xml:>.. - Il ruolo del
nameattributo negli elementia,frameemapprende 1,0 dal XHTMLidattributo. Se si desidera la compatibilità con le versioni precedenti, sia l' attributoname- sia l'idattributo - dovrebbero essere annotati con lo stesso valore di attributo e XHTML 1.0 dovrebbe essere dichiarato temporaneamente. Nella modularizzazione XHTML 1.1 o XHTML, non c'ènamepiù un attributo per questi elementi. - L'attributo
nameper gli elementiformedimgè disponibile solo temporaneamente in XHTML 1.0, non in XHTML 1.0 Strict e XHTML 1.1. Questa restrizione è particolarmente rilevante per l' accesso DOM agli elementi.
esempio
Questo è il testo di origine di un documento HTML conforme agli standard. L'esempio è volutamente mantenuto il più breve possibile e ha lo scopo di mostrare le differenze nella sintassi consentita. In HTML, è una buona idea annotare tutti gli elementi necessari per intero.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<head>
<title>Beispiel</title>
<h1>Beispielseite</h1>
<p>Ein Absatz
<p>Noch ein<br>
Absatz
<ol>
<li>Listelement
<li>Listelement
</ol>
<p><img src=bild.gif alt="Bildmotiv">
</body>
L' htmlelemento è stato completamente omesso, manca il giorno di fine o di inizio per l' elemento heado e gli elementi non sono stati chiusi. L' attributo dell'immagine è mostrato senza virgolette.
bodyplisrc
Lo stesso documento dell'XHTML 1.1 valido potrebbe essere simile a questo:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Beispiel</title>
</head>
<body>
<h1>Beispielseite</h1>
<p>Ein Absatz</p>
<p>Noch ein<br />
Absatz</p>
<ol>
<li>Listelement</li>
<li>Listelement</li>
</ol>
<p>
<img src="bild.gif" alt="Bildmotiv" />
</p>
</body>
</html>
La dichiarazione XML <?xml version="1.0" encoding="UTF-8" ?> è facoltativa, ma è consigliata dal W3C perché indica ai parser XML la codifica dei caratteri del documento. La codifica dei caratteri UTF-8 deve essere scritta in lettere maiuscole. A prima vista, questo contraddice il principio XHTML di scrivere tutti gli elementi e gli attributi in minuscolo. Tuttavia, è il nome ufficiale fornito da IANA e il parser XML può ignorare le lettere maiuscole e minuscole quando lo interpreta . Se le informazioni di codifica è mancante e nessuna codifica in HTTP - intestazione viene inviato, il browser, secondo lo standard XML codifica UTF-8 o UTF-16 utilizzo.
Specificando la dichiarazione XML, Internet Explorer 6 e Opera da 7.0 a 7.03 passano alla cosiddetta modalità quirks , che porta a peculiarità durante l'elaborazione dei fogli di stile e JavaScript . Per questo motivo, la dichiarazione XML viene spesso omessa quando il documento viene text/htmlconsegnato a questo browser come (vedere la sezione seguente sui tipi MIME).
Tipi MIME e compatibilità HTML
Quando si trasmettono documenti HTML e XHTML, vengono utilizzati alcuni tipi MIME , e. B. Content-Typenell'intestazione per e-mail e soprattutto per HTTP :
- Secondo RFC 2854 , i documenti HTML devono essere inviati con il tipo MIME
text/html. - Un documento XHTML 1.0 dovrebbe normalmente essere inviato con il tipo MIME secondo RFC 3236
application/xhtml+xml. Se il documento aderisce alle linee guida per la compatibilità con le versioni precedenti, può essere inviato secondo l' RFC 2854 e lo standard XHTML 1.0text/html. A causa della mancanza del supporto XHTML del software diffuso, quest'ultima opzione è di particolare importanza. - Poiché XHTML 1.1 non è concepito per essere compatibile con i normali browser HTML, tali documenti dovrebbero, secondo una notifica W3C, essere
application/xhtml+xmlconsegnati solo come. Lo stesso vale per gli altri discendenti della modularizzazione XHTML, come XHTML Basic.
Il modo in cui i browser elaborano il documento dipende dal tipo MIME. Solo quando un documento XHTML viene application/xhtml+xmldichiarato con il tipo di contenuto, ad esempio , i browser compatibili con XHTML utilizzano i loro parser XML, attraverso i quali vengono sfruttati i vantaggi del codice XHTML rigoroso, come la facilità di elaborazione. In tal caso, il documento può essere rappresentato solo se è XML ben formato . Molti browser attuali, inclusi Mozilla , Mozilla Firefox , Google Chrome , Opera e Safari , supportano il tipo MIME application/xhtml+xml. Tuttavia, il diffuso Internet Explorer può fare qualcosa solo con questo tipo MIME dalla versione 7.0: le versioni precedenti aprono una finestra di download invece di visualizzare il documento. Va quindi text/htmlutilizzato se il browser non ha espressamente dichiarato di supportarlo Acceptnell'intestazione della richiesta application/xhtml+xml. Questo può essere determinato sul lato server per inviare il tipo MIME appropriato, per cui dovrebbe essere eseguito un controllo della versione per Internet Explorer dalla versione 7.0, poiché IE */*invia ancora come tipo MIME.
XHTML e layout
Con HTML 4, il W3C iniziò a escludere gradualmente dall'HTML quegli elementi e attributi che erano direttamente responsabili della presentazione del documento e che non esprimevano alcuna strutturazione indipendente dall'output. Come HTML 4, XHTML 1.0 contiene una variante di transizione con questi componenti del linguaggio obsoleti. Tuttavia, nel web design moderno si è affermato che viene utilizzata la variante rigorosa e che i documenti sono formattati in modo coerente con CSS . Il contenuto strutturato e il rispettivo layout possono quindi essere definiti separatamente. Con XHTML 1.1 e il previsto XHTML 2.0, il W3C voleva finalmente completare questo sviluppo consentendo solo l'implementazione del markup del testo indipendente dall'output e del layout con CSS o linguaggi simili.
Estensioni
Miglioramenti all'HTML
Come linguaggio SGML, le pagine HTML hanno una struttura definita con precisione che è specificata nella definizione del tipo di documento (DTD). Senza la conoscenza della DTD, tuttavia, la struttura ad albero gerarchica di un documento non può essere determinata in modo inequivocabile. Alcuni elementi non hanno un tag di fine (come <br>un'interruzione di riga) o un tag di fine opzionale (come <p>un paragrafo di testo). Solo il DTD determina quali elementi sono. Se il parser non lo sa, la gerarchia del documento è ambigua. XHTML come linguaggio XML rimedia a questa lacuna.
L'HTML in realtà non è espandibile, ma i browser comuni procedono come segue durante l'elaborazione dell'HTML:
- L'identificazione da parte di elementi sconosciuti viene ignorata.
- In caso di errori sintattici, si tenta comunque di creare un albero degli elementi logici. Viene fatto un tentativo per sfruttare al meglio un sito non conforme, i. H. in ogni caso viene visualizzata una pagina.
Ciò consente l'elaborazione di diverse versioni HTML. Se una versione introduce un nuovo elemento, viene semplicemente ignorato dai browser meno recenti. Lo stesso vale per gli attributi. Ad esempio, se un browser compatibile con HTML 3.2 acronymnon conosce l'elemento per le abbreviazioni introdotto in HTML 4.0 , verrà ignorato e l'abbreviazione apparirà nella normale formattazione del testo. Lo stesso vale per le estensioni specifiche del browser. L' blinkelemento è ad esempio incluso in qualsiasi standard HTML. Alcuni browser, originariamente solo Netscape Navigator , visualizzano il testo lampeggiante, mentre altri visualizzano il testo normalmente.
Estensioni a XHTML
A differenza dell'HTML, XHTML è stato creato pensando alla possibilità di estensibilità. XHTML utilizza il concetto di spazio dei nomi XML per questo scopo. Una versione XHTML forma un tale spazio dei nomi. Altri linguaggi XML come MathML , SVG e RDF rappresentano ulteriori spazi dei nomi In un documento XHTML, gli elementi di altri spazi dei nomi possono ora essere usati xmlnsricevendo una specifica dello spazio dei nomi corrispondente tramite l'attributo . Per fare questo, deve essere usato un doctype speciale, che definisce gli elementi - quando si usa il MathML è:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
"http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">
Un esempio dell'uso del concetto di spazio dei nomi per espandere XHTML è l'incorporamento del MathML :
<p>Dies ist noch ganz normales XHTML</p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msub>
<mi>x</mi>
<mn>1,2</mn>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mrow>
<mo>-</mo>
<mi>b</mi>
</mrow>
<mo>±</mo>
<msqrt>
<mrow>
<msup>
<mi>b</mi>
<mn>2</mn>
</msup>
<mo>-</mo>
<mrow>
<mn>4</mn>
<mo>⁢</mo>
<mi>a</mi>
<mo>⁢</mo>
<mi>c</mi>
</mrow>
</mrow>
</msqrt>
</mrow>
<mrow>
<mn>2</mn>
<mo>⁢</mo>
<mi>a</mi>
</mrow>
</mfrac>
</mrow>
</math>
<p>...und hier geht XHTML weiter</p>
Un browser compatibile con MathML potrebbe visualizzare questa sezione del documento come segue:
Questo è ancora perfettamente normale XHTML
... e qui XHTML continua
Le estensioni sono quindi possibili creando nuovi spazi dei nomi senza dover modificare gli standard XHTML stessi. L'uso di spazi dei nomi significa che non vi è conflitto tra elementi con lo stesso nome in estensioni diverse. Questi possono sempre essere assegnati in modo chiaro e, ad esempio, indirizzati tramite il DOM con l'identificativo dello spazio dei nomi. Le versioni XHTML estese create come risultato della modularizzazione XHTML si basano su questo concetto.
L'emergere di tali estensioni porta a una situazione simile a quella delle estensioni HTML, perché non tutti i browser supportano le estensioni integrate come con SVG. Il browser ha le seguenti opzioni per la gestione di elementi da spazi dei nomi sconosciuti:
- Può ignorare il markup di tali elementi e visualizzare semplicemente il contenuto del testo (come con HTML).
- Può ignorare tutti gli elementi dello spazio dei nomi sconosciuto e il loro contenuto di testo.
- Può provare a caricare un plug-in per l'estensione dal web e quindi visualizzare correttamente la pagina.
Prove individuali
- ↑ RFC 3236
- ↑ Bill Wilder: "UTF-8" fa distinzione tra maiuscole e minuscole nella dichiarazione XML? In: blog.codingoutloud.com. Estratto il 5 ottobre 2019 .
- ↑ iana.org
- ↑ w3.org
- ↑ Test del tipo di supporto XHTML - risultati. w3.org, 9 marzo 2006, accesso 3 aprile 2019 .
- ↑ Jens Oliver Meiert: XHTML e il giusto tipo MIME. meiert.com, 5 aprile 2006, accesso 3 aprile 2019 .
link internet
Specifiche relative a XHTML
- XHTML stesso
- HTML 4.01 ( traduzione in tedesco )
- XHTML 1.0 ( traduzione in tedesco )
- Modularizzazione di XHTML ( traduzione tedesca )
- Discendenti della modularizzazione XHTML
- XHTML 1.1 ( traduzione in tedesco )
- XHTML Basic ( traduzione in tedesco )
- Ai profili XHTML + MathML + SVG
- XHTML + RDFa
- Profili XHTML + SMIL
- XHTML 2.0
- Nozioni di base per XHTML
Tutorial e strumenti XHTML
- SELFHTML
- Introduzione a XHTML, CSS e web design
- Articolo specialistico sulla rivista T3N ( Memento del 28 settembre 2007 in Internet Archive ) XHTML2: From XML hype to application (PDF; 252 kB)
- Panoramica XHTML di Jens Meiert
- Domande frequenti su HTML e XHTML
- Validatore di schemi XHTML 1.0 per il controllo della sintassi di un documento XHTML
- W3C Markup Validation Service , anche per il controllo di errori sintattici (inglese)