Qual è la differenza tra HTML e XML?

HTML e XML sono due linguaggi di markup popolari nello sviluppo di applicazioni e nello sviluppo Web. Anche se i loro nomi sono simili, hanno casi d'uso diversi. L'HTML viene utilizzato principalmente per sviluppare l'interfaccia utente di un'applicazione. Rende visibili il testo, le immagini, i pulsanti, le caselle di controllo e le caselle a discesa su un sito Web o un'applicazione. Al contrario, lo scopo principale dell'XML è lo scambio e il trasferimento di dati. Codifica i dati in un formato leggibile sia dalle macchine che dagli esseri umani. L'XML descrive cosa sono i dati, mentre l'HTML determina come far visualizzare i dati all'utente finale.

Ulteriori informazioni su XML »

Quali sono le similitudini tra HTML ed XML?

Sia XML che HTML, insieme ad altri linguaggi come LaTeX, SVG, Markdown e SGML, appartengono a una famiglia di linguaggi di programmazione chiamati linguaggi di markup.

Un linguaggio di markup è un sistema per descrivere i dati sia agli esseri umani che ad altri programmi software. Utilizza una sintassi di facile lettura che definisce la struttura, il tipo, gli attributi, le relazioni tra le parti, la visualizzazione e il significato dei dati. 

Come linguaggi di markup, HTML e XML presentano diverse somiglianze.

Sintassi

I linguaggi di markup hanno in genere una sintassi simile, inclusi tag e attributi.

Tag

I tag sono contrassegnati da simboli come parentesi, virgole e punti. Forniscono struttura e tipo agli elementi di dati. Definiscono l'inizio e la fine di ogni elemento del contenuto. In XML e HTML, i tag sono racchiusi tra parentesi angolari, con ogni elemento compreso tra due tag di apertura e chiusura.

Attributi

Gli attributi forniscono ulteriori informazioni su un elemento, ad esempio l'URL di un'immagine. In HTML e XML, gli attributi di un elemento vengono definiti all'interno del tag di apertura.

Struttura ben definita

Per una corretta elaborazione, entrambi i documenti HTML e XML devono rispettare le regole di sintassi del linguaggio specificato. Un documento che segue le regole è noto come documento ben formato. Un documento ben formato richiede:

  1. Un singolo elemento root
  2. Tag di chiusura (o chiusura automatica) per tutti gli elementi
  3. Annidamento corretto con tag racchiusi in altri tag
  4. Descrizione corretta dei caratteri speciali, ad esempio & per il simbolo &

Gli sviluppatori utilizzano un editor di testo o un ambiente di sviluppo integrato (IDE) per scrivere e verificare la sintassi.

Ulteriori informazioni sugli IDE »

Utilizzo

Gli sviluppatori in genere non utilizzano i linguaggi di markup HTML o XML da soli. Questi linguaggi vengono combinati con linguaggi di scripting per creare pagine Web e applicazioni dinamiche. Le applicazioni dinamiche cambiano a causa di nuovi dati in ingresso.

Nel caso dell'HTML, le pagine dell'applicazione sono dinamiche grazie ai linguaggi di scripting che generano nuovo HTML. Per XML, i linguaggi di scripting utilizzano nuove informazioni per aggiornare i parametri.

Indipendenza dalla piattaforma

L'indipendenza dalla piattaforma è la capacità di un linguaggio di funzionare su diversi sistemi operativi e piattaforme senza richiedere alcuna modifica. Sia XML che HTML sono basati su testo e utilizzano una sintassi semplice. Ciò li rende facili da interpretare da parte di diverse applicazioni software e sistemi operativi. Il codice XML e HTML funziona così com'è su tutti i browser e le diverse piattaforme mobili.

Principali differenze di sintassi tra HTML e XML

La differenza principale tra HTML e XML sta nei loro tag. L'HTML ha tag predefiniti che tutti devono usare. Non è possibile creare i propri tag mentre si scrive in HTML. Al contrario, XML utilizza tag personalizzati che possono essere definiti dal creatore di documenti.

Successivamente, descriveremo come HTML e XML differiscono nei loro tag.

Tag predefiniti

In HTML, esistono tag predefiniti. Ciò significa che il tag stesso proviene da un elenco definito dallo standard HTML. L'attuale standard HTML è HTML5. 

Ecco alcuni esempi di tag predefiniti HTML5:

  • <header> è il tag per l'intestazione del documento
  • <p> è il tag per un paragrafo
  • Da <h1> a <h6> sono i tag per sei livelli di titoli
  • <a> è il tag per un collegamento ipertestuale
  • <img> è il tag per un'immagine
  • <div> è il tag per un elemento container che può raggruppare altri elementi
  • <body> è un tag che definisce il contenuto principale

Al contrario, in XML i tag sono estensibili, il che significa che sono personalizzati per lo scopo del documento. Un creatore di documenti può definire i tag e gli attributi, che possono essere qualsiasi combinazione di lettere e numeri.

In genere, i creatori di documenti utilizzano parole semplici per descrivere i dati. È necessario scrivere uno schema XML che definisca i tag e gli attributi per la convalida dei documenti e la comprensione condivisa.

Nella tabella seguente vengono forniti alcuni esempi di sintassi HTML e XML.

HTML

XML

<p class="body_paragraph">Questo è un paragrafo</p>

class= significa che l'elemento ha un attributo di classe, body_paragraph, che può essere usato per applicare gli stili.

<country language="English">Canada</country>

country indica un elemento paese. language significa che l'elemento ha un attributo linguistico, l'inglese.

<body>

<h1>Questo è un titolo</h1>

<p class="body_paragraph">Questo è un paragrafo</p>

<div>

<h2>Questo è un sottotitolo</h2>

<p>Questo è un altro paragrafo</p>

</div>

</body>

<continent name="Europe">

<country language="English">

Regno Unito

<currency>GBP</currency>

</country>

<country language="German">

Germania

<currency>EUR</currency>

</country>

</continent>

Tag a chiusura automatica

In HTML, alcuni elementi possono utilizzare tag a chiusura automatica, indicati da una barra di chiusura in avanti, a causa della mancanza di contenuto. Un numero limitato di tag HTML può utilizzare tag a chiusura automatica.

Al contrario, i tag a chiusura automatica in XML possono esistere in qualsiasi luogo in cui non è presente alcun contenuto.

HTML

XML

<img src="my_image.jpg" alt="My image" />

<country name="United Kingdom" currency="GBP" />

Altre differenze principali tra HTML e XML

Nonostante le loro similitudini, XML e HTML presentano diverse differenze.

Obiettivo

L'HTML è comunemente noto come il linguaggio del Web. Lo scopo principale dell'HTML è quello di visualizzare il contenuto, fornito in un documento di testo in forma grafica nel browser.

Al contrario, XML consente a diverse applicazioni di scambiare e archiviare i dati e la loro struttura in un modo che può essere compreso unanimemente. Lo scopo principale di XML è consentire a diversi tipi di applicazioni, come i database, di comprendere e utilizzare gli stessi dati e la loro struttura. 

Tipizzazione

L'HTML utilizza la tipizzazione dinamica, in cui i tipi di attributo vengono controllati in fase di runtime rispetto al tipo di dati previsto. Ad esempio, se si prevede che un attributo sia un numero ma viene immesso come stringa, durante il runtime potrebbe causare un errore o un comportamento imprevisto delle pagine Web. La tipizzazione dinamica consente di modificare le pagine Web con nuovi dati in arrivo.

Al contrario, XML utilizza la tipizzazione statica, in cui i tipi di attributi sono predefiniti in uno schema XML e controllati prima della compilazione o dell'elaborazione. La tipizzazione statica comporta meno errori ma anche contenuti meno dinamici.

Schema

Le definizioni dei tipi di documento (DTD) o gli schemi forniscono una struttura che può essere convalidata e ripetuta per documenti simili. In genere includono informazioni come queste:

  • La versione HTML o XML utilizzata
  • Gli elementi e gli attributi consentiti
  • Le regole per la struttura dei documenti e le relazioni tra gli elementi

In HTML, la DTD è una dichiarazione inclusa all'inizio di un documento HTML.

In XML, la DTD è un file separato. La DTD è più importante in XML perché i tag XML sono definiti dal creatore del documento. La DTD contribuisce alla comprensione condivisa dei tag tra mittente e destinatario dei dati.

Quando usare HTML e XML

L'HTML è un tipo di markup noto come linguaggio di presentazione. Il nome linguaggio di presentazione è dovuto al fatto che ha uno scopo di visualizzazione. L'HTML viene utilizzato per creare pagine Web e applicazioni Web lato client. In genere è combinato con fogli di stile CSS (Cascading Style Sheets) per scopi di stile e con il linguaggio di programmazione JavaScript per comportamenti dinamici.

Al contrario, XML viene utilizzato per lo scambio di dati tra due applicazioni o sistemi. Per comprendere lo stesso formato, le applicazioni hanno schemi XML condivisi che definiscono il contenuto di un file XML.

Sebbene l'XML sia ancora ampiamente utilizzato, JSON, un altro linguaggio di markup leggero per lo scambio di dati, è ora più popolare grazie alla sua analisi rapida. Per scegliere il formato di scambio dati più adatto alle tue esigenze, consulta il confronto tra JSON e XML.

Come usare HTML e XML insieme

L'XML può essere incorporato in HTML e analizzato con il linguaggio di programmazione JavaScript per creare pagine Web dinamiche. Allo stesso modo, l'HTML può anche essere incorporato in XML, se necessario, utilizzando i dati dei caratteri (CDATA) per il testo in chiaro. Consulta gli esempi seguenti.

XML in HTML

HTML in XML

<html>

  <head>

    <title>Pagina XML integrata</title>

    <script type="text/xml">

      <data>

        <item>

<name>Apple</name>

          <price>1.00</price>

        </item>

        <item>

          <name>Frutto della passione</name>

          <price>2.00</price>

        </item>

      </data>

    </script>

  </head>

  <body>

    <h1>Prezzi dinamici della frutta</h1>

    <div id="output"></div>

    <script>

      var xml = document.querySelector('script[type="text/xml"]').textContent;

      var parser = new DOMParser();

      var doc = parser.parseFromString(xml, "text/xml");

      var output = document.querySelector('#output');

      var items = doc.getElementsByTagName('item');

      for (var i = 0; i < items.length; i++) {

        var item = items[i];

        var name = item.getElementsByTagName('name')[0].textContent;

        var price = item.getElementsByTagName('price')[0].textContent;

        output.innerHTML += '<div><strong>' + name + '</strong>: ' + price + '</div>';

      }

    </script>

  </body>

</html>

<embeddedHTML>

    <title>Codice HTML integrato in XML</title>

    <description><![CDATA[

        <div>

            <h1>Intestazione HTML integrata</h1>

            <p>Paragrafo HTML integrato.</p>

        </div>

    ]]></description>

</embeddedHTML>

Extensible HyperText Markup Language (XHTML) è un altro linguaggio di markup che combina HTML e XML nella sua sintassi.

Riepilogo delle principali differenze tra HTML e XML

 

HTML

XML

In cosa consiste?

Un linguaggio di markup utilizzato principalmente per visualizzare contenuti strutturati in un browser.

Un linguaggio di markup utilizzato principalmente per lo scambio di dati strutturati tra sistemi informatici.

Anno di rilascio

1998.

1993.

Scopo

Linguaggio di presentazione.

Linguaggio per lo scambio di dati.

Da usare per

Creazione di pagine Web o app Web lato client.

Scambio di dati tra due sistemi (ma verificare sempre se JSON è un formato più adatto alle proprie esigenze).

Tag

Tag predefiniti.

Tag estensibili.

Tipizzazione

Dinamica.

Fissa quando si utilizza uno schema XML.

In che modo AWS può supportare i tuoi requisiti HTML e XML?

Tutti i servizi di integrazione dei dati di Amazon Web Services (AWS) possono elaborare file XML. Ecco due esempi:

  • AWS Glue è uno strumento di integrazione dei dati serverless che puoi utilizzare per preparare i dati con un'interfaccia grafica interattiva point-and-click senza bisogno di scrivere codice. AWS Glue DataBrew può inserire tutti i tipi di formati di file, incluso XML.
  • Amazon Simple Queue Service (Amazon SQS) è un servizio di accodamento messaggi completamente gestito che può essere utilizzato per inviare, archiviare e ricevere messaggi tra componenti software a qualsiasi volume. I messaggi Amazon SQS possono contenere fino a 256 KB di dati di testo, inclusi dati XML, JSON e non formattati.

Allo stesso modo, AWS offre un'ampia gamma di strumenti e servizi per sviluppare, implementare e gestire le applicazioni su larga scala. Ad esempio, ecco due servizi che possono essere utilizzati:

  • Con Studio AWS Amplify, puoi creare visivamente un'interfaccia utente perfetta in ogni pixel. Collega la tua interfaccia utente front-end a un back-end cloud in pochi clic.
  • Con Amazon Lightsail, è possibile utilizzare stack di sviluppo preconfigurati per creare applicazioni e siti Web personalizzati in pochi clic.

Comincia a sviluppare applicazioni su AWS creando un account oggi stesso.