Perché XML è così importante?

XML è conosciuto per molti motivi e si esamineranno alcuni di questi motivi all'interno dell'analisi delle caratteristiche attuali di XML. Una delle caratteristiche più importanti per l'autore è che XML facilita la gestione e lo scambio dei dati.

Facilità di scambio dei dati

Chi ha usato a lungo i computer avrà osservato con diffidenza la crescita dei formati proprietari dei dati. In passato, i programmi potevano scambiare dati facilmente poiché erano memorizzati come testo. Attualmente, al contrario, occorrono programmi o moduli di conversione per consentire alle applicazioni di scambiare dati. Infatti, i formati proprietari dei dati sono diventati così complessi che di frequente la nuova versione di un'applicazione non può essere letta da una versione precedente della stessa applicazione.

In XML, i dati e i markup sono memorizzati come testo che è possibile configurare. Se si desidera, è possibile usare editor XML per creare documenti XML, ma se qualcosa non funziona, è possibile esaminare o modificare il documento direttamente poiché il documento è di solo testo. I dati inoltre non sono codificati con metodi brevettati o protetti da copyright, perciò sono più accessibili.

Si potrebbe pensare che i formati binari siano più efficienti poiché possono memorizzare dati in modo più compatto, ma non è avvenuto esattamente questo. Per esempio, Microsoft Corporation è nota per produrre applicazioni di grandi dimensioni che usano file enormi per memorizzare anche semplici dati (fenomeno conosciuto con il termine bloatware). Se si memorizzano solo le tre lettere "abc" in un documento Microsoft Word 97, si potrà osservare che il documento potrà occupare circa 20.000 byte. Un file XML analogo potrà occupare circa 30 o 40 byte. Anche i grandi quantitativi di dati possono non essere memorizzati in modo efficiente; per esempio, Microsoft Excel di solito crea file che occupano uno spazio pari a circa cinque volte il testo corrispondente. Come si vedrà, XML fornisce un metodo molto efficiente per memorizzare la maggior parte dei dati.

Inoltre, la standardizzazione dei linguaggi di markup, ne facilita l'uso a categorie di utenti diversi. Saranno analizzati brevemente in seguito.

Personalizzazione dei linguaggi di markup

Come è stato visto, è possibile creare linguaggi di markup personalizzati con XML e questo rappresenta la sua straordinaria potenza. Quando molti utenti concordano su un linguaggio di markup, è possibile creare browser o applicazioni personalizzate per gestire questi linguaggi. Attualmente sono stati standardizzati centinaia di linguaggi, inclusi i seguenti:

  • BITS (Banking Industry Technology Secretariat);
  • IFX (Financial Exchange);
  • BIPS (Bank Internet Payment System);
  • TIM (Telecommunications Interchange Markup);
  • SIF (Schools Interoperability Framework);
  • CBL (Common Business Library);
  • EBXML (Electronic Business XML initiative);
  • PDML (Product Datun Markup Language);
  • FIX (Financial Information eXchange protocol);
  • TEI (Text Encoding Initiative).

Alcuni linguaggi di markup personalizzati, come CML (Chemical Markup Language), consentono di rappresentare graficamente molecole complesse, come si vedrà di seguito in questo capitolo. Nello stesso modo, si può immaginare come potrebbe essere utile un linguaggio che crea piani di costruzione grafici per architetti, quando si apre un documento in un browser.

Non solo è possibile creare linguaggi di markup personalizzati, ma è possibile potenziarli con XML. Se si crea un linguaggio di markup basato su XML, è possibile aggiungere facilmente le estensioni desiderate, come con il linguaggio XHTML (eXtensible Hypertext Markup Language), di cui si parlerà brevemente in questo capitolo e in modo più dettagliato nel seguito del libro. Usando XHTML, è possibile aggiungere elementi personalizzati alla normale visualizzazione HTML di un browser.

Dati autoesplicativi

I dati nei documenti XML sono auto esplicativi. Si osservi il seguente documento:

<?xml version="1.0" encoding="UTF-8"?>

<DOCUMENT>

<GREETING>

Hello From XML

</GREETING>

<MESSAGE>

Welcome to the wild and woolly world of XML.

</MESSAGE>

</DOCUMENT>

Esclusivamente in base ai nomi assegnati a ciascun elemento XML, è possibile capire che cosa avviene. Questo documento genera un saluto e un messaggio. Anche se si dovesse visualizzare il documento dopo anni, si potrà capire il significato. Questo significa che i documenti XML sono, in larga misura, autodocumentanti. (Nel capitolo successivo si vedrà che è possibile aggiungere anche commenti espliciti ai file XML.)

Dati strutturati e integrati

Un altro aspetto potente di XML è che consente di specificare non solo i dati, ma anche la struttura dei dati e come i vari elementi sono integrati all'interno di altri elementi. Questo è molto importante quando si devono trattare dati complessi e importanti. Per esempio, in XML è possibile incorporare regole semantiche che specificano la struttura del documento affinché sia possibile verificare la corretta impostazione del documento. Si osservi il seguente documento XML:

<?xml version="1.0"?>

<SCHOOL>

<CLASS type="seminar">

<CLASS_TITLE>XML In The Real World</CLASS_TITLE>

<CLASS_NUMBER>6.031</CLASS_NUMBER>

<SUBJECT>XML</SUBJECT>

<START_DATE>6/1/2002</START_DATE>

<STUDENTS>

<STUDENT status="attending">

<FIRST_NAME>Edward</FIRST_NAME>

<LAST_NAME>Samson</LAST_NAME>

</STUDENT>

<STUDENT status="withdrawn">

<FIRST_NAME>Ernestine</FIRST_NAME>

<LAST_NAME>Johnson</LAST_NAME>

</STUDENT>

</STUDENTS>

</CLASS>

</SCHOOL>

Nell'esempio è stato organizzato un seminario XML e sono stati aggiunti due studenti. Come si vedrà nei Capitoli 2 e 3, XML consente di specificare, per esempio, che ciascun elemento <STUDENT> deve contenere <FIRST_NAME> e <LAST_NAME> , che l'elemento <START_DATE> non deve essere contenuto nell'elemento <STUDENTS> e così via. Il linguaggio HTML consente agli autori Web di scrivere programmi HTML poco rigorosi (e avviene con frequenza), sapendo che il browser Web risolverà i problemi di sintassi (alcuni autori Web sfruttano questa caratteristica intenzionalmente per creare effetti speciali in alcuni browser). Infatti, alcune persone stimano che il 50% o più del codice dei browser moderni esiste per risolvere i problemi generati da istruzioni HTML poco rigorose nelle pagine Web. Proprio per questo motivo, XML è diverso. In XML, si suppone che i browser verifichino i documenti; se esiste un problema, non continuano l'elaborazione ma potranno segnalare solo l'esistenza del problema.

Perciò, in che modo un browser XML verifica il documento? I browser XML possono fare due tipi principali di verifiche: una per vedere se il documento è ben costruito e una per controllare se è valido. Di seguito sarà analizzato in breve l'argomento, ma per ulteriori dettagli si consulti il prossimo capitolo.