XML è dunque un meta-linguaggio per definire la struttura di documenti e dati. Il termine documento ricorre spesso nella terminologia XML. Anche se esso può far pensare pagine Web o altri prodotti dell'elaborazione di testo, è utilizzato nella sua accezione più ampia di contenitore di informazioni.
Cos'è un file XML
Concretamente, un documento XML è un file di testo che contiene una serie di tag, attributi e testo secondo regole sintattiche ben definite.
Analizziamo ora XML dal punto di vista logico e sintattico e i documenti che con esso si possono creare dando uno sguardo alla struttura logica. Introduciamo alcuni concetti fondamentali per la corretta comprensione di questo meta-linguaggio.
Un documento XML è intrinsecamente caratterizzato da una struttura gerarchica. Esso è composto da componenti denominati elementi.Ciascun elemento rappresenta un componente logico del documento e può contenere altri elementi (sottoelementi) o del testo.
Gli attributi in XML
Gli elementi possono avere associate altre informazioni che ne descrivono le proprietà. Queste informazioni sono chiamate attributi.
L'organizzazione degli elementi segue un ordine gerarchico o arboreo che prevede un elemento principale, chiamato root element o semplicemente root o radice.
La radice contiene l'insieme degli altri elementi del documento. Possiamo rappresentare graficamente la struttura di un documento XML tramite un albero, generalmente noto come document tree.
Per fissare le idee prendiamo in considerazione la rappresentazione di un generico articolo a carattere tecnico e proviamo a rappresentarlo secondo il modello XML, come mostrato in figura.
Nella figura abbiamo un root element denominato articolo che contiene una lista di elementi che rappresentano i vari paragrafi dell'articolo. Ciascun paragrafo a sua volta contiene del testo, degli esempi di codice e delle immagini. La maggior parte degli elementi di questo document tree possiede degli attributi: titolo, tipo, file.
Struttura logica di XML
La struttura logica di un documento XML dipende dalle scelte progettuali. Siamo noi a decidere come organizzare gli elementi all'interno di un documento XML. Non esistono regole universali per l'organizzazione logica di un documento se non il buon senso e l'esperienza.
La struttura logica di un documento XML viene tradotta in una corrispondente struttura fisica composta di elementi sintattici chiamati tag. Questa struttura fisica viene implementata tramite un file di testo creato con un qualsiasi editor. La rappresentazione fisica del documento XML visto prima può essere la seguente:
<?xml version="1.0" ?>
<articolo titolo="Titolo dell'articolo">
<paragrafo titolo="Titolo del primo paragrafo">
<testo>
Blocco di testo del primo paragrafo
</testo>
<immagine file="immagine1.jpg">
</immagine>
</paragrafo>
<paragrafo titolo="Titolo del secondo paragrafo">
<testo>
Blocco di testo del secondo paragrafo
</testo>
<codice>
Esempio di codice
</codice>
<testo>
Altro blocco di testo
</testo>
</paragrafo>
<paragrafo tipo="bibliografia">
<testo>
Riferimento ad un articolo
</testo>
</paragrafo>
</articolo>
Analizziamo il contenuto del documento per trarre alcune considerazioni. La prima riga del documento lo identifica come un documento XML e ne specifica la versione (in questo caso la 1.0):
<?xml version="1.0" ?>
HTML - XML : i tag
Il corpo vero e proprio del documento segue questa prima riga, rappresentando gli elementi tramite tag, cioè sequenze di caratteri delimitate dai segni '<' e '>' proprio come avviene per l'HTML.
A differenza dell'HTML in cui i tag sono predefiniti, XML ci lascia liberi di definire i tag che vogliamo. Per specificare un attributo per un elemento inseriamo il nome dell'attributo con il relativo valore all'interno del tag di apertura dell'elemento.
L'organizzazione gerarchica degli elementi viene rappresentata in XML tramite il loro annidamento.
Alcuni elementi possono essere vuoti, cioè possono essere privi di contenuto testuale. A differenza di quanto avviene per l'HTML, che consente l'utilizzo di elementi senza tag di chiusura, XML prevede che vengano sempre specificati i tag di apertura e chiusura. È questo il caso del tag immagine.
Tuttavia, XML prevede una sintassi abbreviata per gli elementi vuoti che evita di dover specificare il tag di chiusura. È infatti sufficiente terminare il tag di apertura con la sequenza di caratteri "/>", come nel seguente esempio:
<immagine file="immagine1.jpg" />
Le due notazioni per gli elementi vuoti sono equivalenti.