HTML vs. XHTML

HTML e XHTML sono entrambe le lingue in cui sono scritte le pagine Web. HTML è basato su SGML mentre XHTML è basato su XML. Sono come due facce della stessa medaglia. XHTML è stato derivato da HTML per conformarsi agli standard XML. Quindi XHTML è rigoroso rispetto all'HTML e non consente all'utente di cavarsela con lacune nella codifica e nella struttura.

Il motivo per lo sviluppo di XHTML era costituito da tag specifici del browser contorto. Le pagine codificate in HTML sono risultate diverse nei diversi browser.

Tabella di confronto

HTML e grafico di confronto XHTML
HTML XHTML
Introduzione (da Wikipedia)HTML o HyperText Markup Language è il linguaggio di markup principale per la creazione di pagine Web e altre informazioni che possono essere visualizzate in un browser Web.XHTML (Extensible HyperText Markup Language) è una famiglia di linguaggi di markup XML che rispecchia o estende le versioni dell'Hytexttext Markup Language (HTML), il linguaggio in cui sono scritte le pagine web.
Estensione del nome file.html, .htm.xhtml, .xht, .xml, .html, .htm
Tipo di media Internettext / htmlapplication / xhtml + xml
Sviluppato daW3C & WHATWGWorld Wide Web Consortium
Tipo di formatoFormato del file del documentoLinguaggio con marcatori
Esteso daSGMLXML, HTML
Sta perHyper Text Markup LanguageExtensible HyperText Markup Language
ApplicazioneApplicazione di Standard Generalized Markup Language (SGML).Applicazione di XML
FunzioneLe pagine Web sono scritte in HTML.Versione estesa di HTML più rigorosa e basata su XML.
NaturaFramework flessibile che richiede parser specifico per HTML.Sottoinsieme restrittivo di XML e deve essere analizzato con parser XML standard.
OrigineProposto da Tim Berners-Lee nel 1987.Raccomandazione del World Wide Web Consortium nel 2000.
versioniHTML 2, HTML 3.2, HTML 4.0, HTML 5.XHTML 1, XHTML 1.1, XHTML 2, XHTML 5.

Panoramica di HTML e XHTML

HTML è il linguaggio di markup predominante per le pagine Web. L'HTML crea documenti strutturati denotando la semantica strutturale per testo come intestazioni, elenchi, collegamenti, virgolette ecc. Permette di incorporare immagini e oggetti per creare moduli interattivi. È scritto come tag racchiuso tra parentesi angolari, ad esempio, . È inoltre possibile caricare script in lingue come JavaScript.

XHTML è una famiglia di linguaggi XML che estende o rispecchia le versioni di HTML. Non consente l'omissione di alcun tag o l'uso della minimizzazione degli attributi. XHTML richiede che ci sia un tag di fine per ogni tag di inizio e tutti i tag nidificati devono essere chiusi nel giusto ordine. Ad esempio, mentre

è valido in HTML, sarebbe necessario scrivere

Funzionalità dei documenti HTML vs XHTML

I documenti HTML sono composti da elementi che hanno tre componenti: una coppia di tag elemento: tag iniziale, tag finale; attributi degli elementi forniti all'interno di tag e contenuto reale, testuale e grafico. L'elemento HTML è tutto ciò che si trova tra e inclusi i tag. (Il tag è una parola chiave racchiusa tra parentesi angolari).

I documenti XHTML hanno solo un elemento radice. Tutti gli elementi, comprese le variabili, devono essere in minuscolo e i valori assegnati devono essere racchiusi tra virgolette, chiusi e nidificati per essere riconosciuti. Questo è un requisito obbligatorio in XHTML a differenza di HTML dove è facoltativo. La dichiarazione di DOCTYPE determinerebbe le regole da seguire per i documenti.

A parte le diverse dichiarazioni di apertura di un documento, le differenze tra un documento HTML 4.01 e XHTML 1.0 — in ciascuno dei corrispondenti DTD — sono in gran parte sintattiche. La sintassi sottostante di HTML consente molte scorciatoie che XHTML non ha, come elementi con tag di apertura o chiusura opzionali e persino elementi EMPTY che non devono avere un tag end. Al contrario, XHTML richiede che tutti gli elementi abbiano un tag di apertura o un tag di chiusura. XHTML, tuttavia, introduce anche un nuovo collegamento: un tag XHTML può essere aperto e chiuso all'interno dello stesso tag, includendo una barra prima della fine del tag in questo modo:

. L'introduzione di questa scorciatoia, che non è utilizzata nella dichiarazione SGML per HTML 4.01, può confondere il software precedente che non ha familiarità con questa nuova convenzione. Una soluzione per questo è includere uno spazio prima di chiudere il tag, come tale:

XHTML vs HTML Specification

HTML e XHTML sono strettamente correlati e pertanto possono essere documentati insieme. Sia HTML 4.01 che XHTML 1.0 hanno tre specifiche secondarie: rigorosa, libera e set di frame. La differenza tra le dichiarazioni di apertura di un documento distingue HTML e XHTML. Altre differenze sono sintattiche. HTML consente collegamenti come elementi con tag opzionali, elementi vuoti senza tag finali. XHTML è molto severo riguardo l'apertura e la chiusura dei tag. XHTML utilizza l'attributo di funzionalità di definizione del linguaggio integrato. Tutti i requisiti di sintassi di XML sono inclusi in un documento XHTML ben formato.

Si noti, tuttavia, che queste differenze si applicano solo quando un documento XHTML viene servito come un'applicazione di XML; vale a dire, con un tipo MIME di application / xhtml + xml, application / xml o text / xml. Un documento XHTML servito con un tipo MIME di testo / html deve essere analizzato e interpretato come HTML, quindi le regole HTML si applicano in questo caso. Un foglio di stile scritto per un documento XHTML che viene servito con un tipo MIME di testo / html potrebbe non funzionare come previsto se il documento viene quindi servito con un tipo MIME di applicazione / xhtml + xml. Per ulteriori informazioni sui tipi MIME, assicurarsi di leggere Tipi MIME.

Questo può essere particolarmente importante quando offri documenti XHTML come testo / HTML. A meno che tu non sia a conoscenza delle differenze, puoi creare fogli di stile che non funzioneranno come previsto se il documento è servito come XHTML reale.

Laddove i termini "XHTML" e "documento XHTML" compaiono nel resto di questa sezione, si riferiscono al markup XHTML offerto con un tipo MIME XML. Il markup XHTML servito come text / html è un documento HTML per quanto riguarda i browser.

Come migrare da HTML a XHTML

Come raccomandato dal W3C, è possibile seguire i seguenti passaggi per la migrazione da HTML a XHTML (documenti XHTML 1.0):

  • Includi gli attributi xml: lang e lang sugli elementi che assegnano la lingua.
  • Usa la sintassi degli elementi vuoti sugli elementi specificati come vuoti in HTML.
  • Includi uno spazio extra nei tag di elementi vuoti:
  • Includi tag di chiusura per elementi che possono avere contenuto ma sono vuoti:
  • Non includere la dichiarazione XML.

Seguendo attentamente le linee guida del W3C sulla compatibilità, un agente utente (browser web) dovrebbe essere in grado di interpretare i documenti con la stessa facilità di HTML o XHTML.

Come migrare da XHTML a HTML

Per comprendere le sottili differenze tra HTML e XHTML, considerare la trasformazione di un documento XHTML 1.0 valido e ben formato in un documento HTML 4.01 valido. Per effettuare questa traduzione sono necessari i seguenti passaggi:

  • La lingua per un elemento deve essere specificata con un attributo lang piuttosto che con l'attributo XHTML xml:lang . XHTML utilizza l'attributo di funzionalità di definizione del linguaggio incorporato in XML.
  • Rimuovere lo spazio dei nomi XML ( xmlns=URI ). HTML non ha strutture per gli spazi dei nomi.
  • Modificare la dichiarazione del tipo di documento da XHTML 1.0 a HTML 4.01.
  • Se presente, rimuovere la dichiarazione XML. (In genere questo è: ).
  • Assicurarsi che il tipo MIME del documento sia impostato su text/html . Sia per HTML che per XHTML, questo proviene dall'intestazione HTTP Content-Type inviata dal server.
  • Modificare la sintassi XML di elemento vuoto in un elemento vuoto di stile HTML (

    per

    ).

Articoli Correlati