XML version="1.0"
a cura di Stefano Sgarella
1 - Perché l'Xml è importante
1.1 - Definizione e Origine
Xml: uno standard per i linguaggi di markup
L'Extensible Markup Language (XML) è una tecnologia che serve a creare linguaggi di markup che descrivono i dati di qualsiasi tipo e in modo strutturato. Xml è quindi un metalinguaggio cioè un sistema linguistico per mezzo del quale è possibile analizzare i simboli e le strutture del linguaggio ordinario, consentendo così di creare dati intelligenti.

La sua definizione risale al 1996 e fu condotta da XML Working Group (originariamente noto come SGML Editorial Review Board) sotto gli auspici del consorzio W3C (World Wide Web Consortium), l'organismo internazionale che stabilisce gli standard per il Web.

Xml non è altro che un sottoinsieme di SGML (Standard Generalized Markup Language), un linguaggio di markup flessibile e potente ma per questo motivo ostico e difficile. Il risultato è uno standard per i linguaggi di markup che contiene tutta la potenza dell'SGML ma non tutte le funzioni complesse e raramente utilizzate.

Xml è gratuito.
1.2 - Obiettivi
Semplicità, rigore e Interoperabilità
Gli obiettivi progettuali:

1. XML deve essere utilizzabile in modo semplice su Internet.
2. XML deve supportare un gran numero di applicazioni.
3. XML deve essere compatibile con SGML.
4. Deve essere facile lo sviluppo di programmi che elaborino documenti XML.
5. Il numero di caratteristiche opzionali deve essere mantenuto al minimo possibile, idealmente a zero.
6. I documenti XML dovrebbero essere leggibili da un uomo e ragionevolmente chiari.
7. La progettazione XML dovrebbe essere rapida.
8. La progettazione XML deve essere formale e concisa.
9. I documenti XML devono essere facili da creare.
10. Non è di nessuna importanza l'economicità nel markup XML.


Semplicità nella lettura e nella comprensione dei dati, ma anche rigore nella sintassi, queste le caratteristiche principali che il linguaggio Xml pone come basi fondamentali del suo esistere. Ciò permette all'uomo e alle applicazioni di interpretare con facilità un documento Xml, poichè standardizzato e quindi leggibile secondo criteri prestabiliti e limitati.

Progettare un documento Xml è facile come organizzare i propri pensieri, crearlo significa saper utilizzare un semplice editor di testo, scriverlo è un passo immediato in quanto la sintassi si basa su poche precise regole.

Nasce un linguaggio comune per condividere "conoscenza", una forte presa di coscienza sull'uso della rete come mezzo per unire non per confondere e allontanare.

Basti osservare la crescita sconsiderata di formati prorprietari dei dati per capire questa svolta necessaria. Oggi occorrono programmi o moduli di conversione per consentire alle applicazioni di scambiare i dati. Xml determina una soluzione e la conseguenza diretta può essere una forte interoperabilità tra sistemi anche largamente differenti tra loro.

1.3 - Applicazioni Xml
Linguaggi di markup personalizzati
Xml permette di creare linguaggi di markup personalizzati. Quando molti utenti concordano su un linguaggio comune è possibile creare browser o applicazioni per gestirne i dati.

In pratica (solo alcuni esempi):

CML (Chemical Markup Language)
Linguaggio sviluppato da Peter Murray-Rust per la rappresentazione molecolare, con cui è possibile visualizzare anche la struttura di molecole complesse. I chimici di tutto il mondo possono così creare e pubblicare le specifiche delle molecole per un facile interscambio.

MML (Mathematical Markup Language)
Creato per colmare una carenza significativa nei documenti Web: le equazioni. Permette di visualizzare tutti i tipi di termini matematici.

XHTML
È la traduzione in Xml di HTML 4.0 da parte di W3C.

VML (Vector Markup Language)
Linguaggio implementato in Microsoft Internet Explorer con cui è possibile disegnare molte figure grafiche basate sui vettori.



2 - La Sintassi dell'Xml
2.1 - Parser
Controllo, validazione ed elaborazione
Il parser, programma software, legge il documento Xml , controlla la sua sintassi, segnala eventuali errori e consente di elaborarne il contenuto.

Molti Parser Xml possono essere scaricati gratuitamente dal web, e alcune applicazioni come Microsoft Internet Explorer 5.x e superiori lo includono come strumento di controllo e validazione dei documenti Xml.
2.2 - Documento "Well Formed"
Poche regole per essere sintatticamente corretti
Un documento Xml è considerato "Well Formed", cioè ben formato, se è sintatticamente corretto.

La sintassi del linguaggio XML si basa pochi ma rigorosi criteri: Un documento che rispetta tutte queste convenzioni sintattiche è un documento "WELL FORMED"
2.3 - Documento Xml di base
Dichiarazione, radice e commento
Di seguito l'esempio di un semplice documento Xml (libro.xml) creato con un qualsiasi editor di testo:
<?xml version="1.0"?>

<!-- Documento Xml di base -->

<libro>
  <titolo>Imparare l'Xml!</titolo>
</libro>
Il documento Xml dichiara di essere nella versione 1.0 e il commento dell'autore (compreso tra i tag <!-- e -->) dice che quello analizzato è un documento Xml di base. Infine l'elemento radice "libro" (unico e non duplicabile) comprende un altro elemento child (figlio dell'elemento radice "libro") chiamato "titolo" che contiene a sua volta il testo "Imparare l'Xml!"
2.4 - Caratteri
Caratteri Xml e riferimenti a entità
Il set di caratteri, (il formato dei caratteri che possono essere rappresentati in un documento) utilizzato nei documenti Xml comprende:

Dati di carattere e testo di markup
Nell'esempio del file "libro.xml" i tag <titolo> e </titolo>sono testi di markup, mentre le parole "Imparare l'Xml!" sono dati di carattere.

Caratteri vuoti
Gli spazi, i caratteri di tabulazione, i carriage return (ritorno carrello), e i line feed (avanzamento riga) sono chiamati caratteri vuoti. Alcune applicazioni li rimuovono completamente o li riducono ad un solo carattere vuoto.

Riferimenti a entità
In un documento è possibile usare quasi tutti i caratteri. Sono esclusi: & (e commerciale), < (minore), > (maggiore) e " (virgolette doppie), poiché riservati al linguaggio Xml e non utilizzabili quindi nei dati di carattere. Per utilizzarli nel contenuto o negli attributi degli elementi Xml bisogna utilizzare i riferimenti alle entità, che iniziano con il carattere & e terminano con un punto e virgola (;).

Entità
Il linguaggio Xml dispone delle seguenti entità: &amp; per il carattere & (e commerciale), &lt; per il carattere < (minore), &gt; per il carattere > (maggiore), &quot; per il carattere " (virgolette doppie). Utilizzare queste entità al posto dei caratteri indica ad un eventuale parser Xml di non considerare questi caratteri come testo di markup.

Caratteri Unicode
Standard prodotto da Unicode Consortium, il cui obiettivo è consentire ai computer di elaborare i caratteri della maggior parte delle lingue del mondo.
2.5 - Markup
Elementi e attributi che li definiscono
<?xml version="1.0"?>

<!-- Esempio di testo di markup -->

<libro>
  <titolo>Imparare l'Xml!</titolo>
  <immagine src="img.gif" />
</libro>
Il documento Xml dichiara di essere nella versione 1.0 e il commento dell'autore dice che quello analizzato è un esempio di testo di markup.

Rispetto al precedente esempio si nota un elemento in più chiamato "immagine", figlio dell'elemento radice "libro", che presenta la particolarità di essere un elemento vuoto e quindi scritto nella forma concisa, con il tag /> finale.

Nella forma src="img.gif" si presenta un attributo che definisce l'elemento "immagine" indicando l'immagine associata al libro in questione. Gli attributi devono essere posti all'interno del tag iniziale dell'elemento e i valori devono essere assolutamente racchiusi tra virgolette.
2.6 - Sezioni CDATA
Blocco di testo da non processare
Le sezioni CDATA possono contenere testi e caratteri riservati.
<?xml version="1.0"?>

<!-- Esempio di sezione CDATA -->

<libro>
  <titolo>Imparare l'Xml!</titolo>
  <sottotitolo>
    <![CDATA[

      Guida di riferimento alla <b>versione 1.0</b>

    ]]>
  </sottotitolo>
  <immagine src="img.gif" />
</libro>
In questo caso la sezione CDATA identifica un blocco di testo che il parser non deve trattare come dati del documento Xml. Tra i caratteri <[CDATA[ e ]]> sono stati inseriti un tag di apertura e uno di chiusura, che indicheranno ad un eventuale pagina HTML che conterrà la frase "Guida di riferimento alla versione 1.0" di visualizzare "versione 1.0" in grassetto.
2.7 - Nidificazione degli elementi
Documenti Xml leggibili e chiari
Come visto negli esempi precedenti, viene data molta importanza alla nidificazione degli elementi anche sotto l'aspetto visivo. Questo perché i documenti XML devono essere leggibili da un uomo e ragionevolmente chiari. Quindi una buona formattazione permette l'immediata lettura e comprensione del documento da parte di un altro utilizzatore.

Il consiglio è quello di essere ordinati nello scrivere un documento Xml e di utilizzare spesso i commenti per lasciare traccia delle proprie scelte progettuali. Così facendo viene realizzato l'obiettivo più ambizioso secondo cui l'"XML deve essere utilizzabile in modo semplice su Internet".
RIFERIMENTI BIBLIOGRAFICI
Holzner, Steven. Xml, tutto e oltre. APOGEO srl. 2001.
Deitel, Harvey M.; Deitel, Paul J.; Nieto, Tem R.; Lin, Ted M.; Sadhu, Praveen. Xml, corso di programmazione. APOGEO srl. 2002.

RIFERIMENTI SITOGRAFICI
W3C (World Wide Web Consortium)
Documento XHTML 1.0 valido!