XML vs HTML: qual è la differenza?

  • VersionDude
  • Standard
  • 5 min di lettura

Si assomigliano, ma XML e HTML sono stati concepiti per compiti diversi — uno descrive documenti per i browser, l'altro trasporta dati strutturati.

HTML e XML si assomigliano sorprendentemente, e per una buona ragione: entrambi discendono da SGML ed entrambi usano la stessa sintassi a parentesi angolari di tag, attributi ed elementi annidati. A prima vista, un estratto di ciascuno può essere difficile da distinguere dall'altro. Ma la somiglianza di superficie nasconde una profonda differenza d'intenzione, e confondere i due porta a molte aspettative mal riposte su come ciascuno dovrebbe comportarsi.

HTML: un vocabolario fisso e tollerante

Codice HTML e CSS visualizzato in un editor di codice.
Codice HTML e CSS visualizzato in un editor di codice.

HTML è stato concepito per un compito preciso: descrivere documenti affinché i browser li mostrino alle persone. Dispone di un vocabolario di elementi fisso e predefinito — paragrafi, titoli, link, immagini, ecc. — ciascuno con un significato integrato che i browser sanno renderizzare. Non inventi nuovi tag HTML; usi quelli che lo standard fornisce, perché il loro significato e la loro resa fanno parte della piattaforma.

Punto cruciale, l'HTML è deliberatamente indulgente verso gli errori, e questa è una funzionalità anziché una svista. Lo standard definisce regole dettagliate di recupero degli errori affinché persino un markup scritto male produca comunque una pagina utilizzabile, il che spiega perché una così grande parte del web si visualizza nonostante la sua invalidità tecnica. Questa tolleranza mantiene il web resiliente e accessibile, al prezzo di lasciar passare in silenzio gli errori.

XML: un meta-linguaggio rigoroso

XML è stato concepito con uno scopo quasi opposto. Non definisce alcun tag proprio; invece, è un meta-linguaggio, un insieme di regole per inventare i propri vocabolari di markup al fine di trasportare dati strutturati. Là dove HTML ti consegna un vocabolario fisso, XML ti consegna la grammatica con cui costruire qualsiasi vocabolario di cui hai bisogno, che sia per documenti finanziari, formati di documento o configurazione.

Questa flessibilità si accompagna a un rigore, che è l'altra metà del carattere di XML. Un documento che non è ben formato — con ogni tag chiuso e ogni elemento correttamente annidato — viene rifiutato in partenza anziché riparato. Non c'è alcun recupero degli errori su cui ripiegare; l'analizzatore rifiuta di proseguire. Questa postura intransigente è precisamente ciò che rende XML affidabile per lo scambio da macchina a macchina, perché o i dati sono strutturalmente corretti, oppure semplicemente non sono accettati affatto.

Due filosofie per due compiti

Le due filosofie riflettono precisamente i loro casi d'uso. La tolleranza dell'HTML si addice a un web in cui innumerevoli autori di competenze diverse pubblicano documenti che devono comunque visualizzarsi per i lettori. Il rigore dell'XML si addice ai sistemi che scambiano dati automaticamente, dove un documento interpretato male in silenzio potrebbe corrompere un processo a valle. Nessun approccio è superiore in assoluto; ciascuno è la risposta giusta a un problema diverso.

XHTML e dove le cose si sono assestate

Tra i due si colloca XHTML, che è essenzialmente HTML espresso secondo le regole rigorose di XML. Un documento XHTML deve essere XML ben formato oltre che HTML valido, combinando il vocabolario web dell'HTML con la disciplina intransigente dell'XML. Ha conosciuto un periodo di popolarità, ma il rigore che lo rendeva seducente in teoria lo rendeva anche fragile in pratica, poiché un solo frammento malformato poteva rompere un'intera pagina.

Nello sviluppo web moderno, il panorama pratico si è stabilizzato. HTML5 è lo standard per costruire pagine che le persone leggono nei browser, avendo assorbito le lezioni dei suoi predecessori come dell'esperienza XHTML. XML e i formati che ne derivano, dal canto loro, restano diffusi per i file di configurazione, i flussi di dati come RSS e Atom, i formati di documenti d'ufficio, e molti altri luoghi dove dati strutturati devono essere memorizzati o scambiati.

L'ecosistema XML più ampio

È anche utile ricordare che XML viaggia di rado da solo; àncora un'intera famiglia di tecnologie collegate. Schemi come DTD e XSD definiscono e validano la struttura di un particolare vocabolario XML, XSLT trasforma l'XML da una forma all'altra, e XPath naviga all'interno di un documento. Questo ecosistema circostante fa parte dei motivi per cui XML perdura nei domini ad alta intensità di dati, molto tempo dopo essersi ritirato dalla scrittura di pagine front-end.

È anche utile ricordare che XML viaggia di rado da solo; àncora un'intera famiglia di tecnologie collegate. Schemi come DTD e XSD definiscono e validano la struttura di un particolare vocabolario XML, XSLT trasforma l'XML da una forma all'altra, e XPath naviga all'interno di un documento. Questo ecosistema circostante fa parte dei motivi per cui XML perdura nei domini ad alta intensità di dati, molto tempo dopo essersi ritirato dalla scrittura di pagine front-end.

— VersionDude

Una regola empirica secondo lo scopo

Una regola empirica utile riassume la distinzione con pulizia. Rivolgiti a HTML quando descrivi un documento destinato a essere letto da persone in un browser, e ai formati della famiglia XML quando scambi o memorizzi dati strutturati tra sistemi. Una volta che inquadri la scelta attorno allo scopo anziché all'aspetto, la sovrapposizione apparente tra i due si dissolve, e diventa evidente quale strumento ogni compito richiede.

Progetto correlato