Vorrei sapere cosa è, se è utile e se avrà futuro il linguaggio XML.

L’XML è un linguaggio per la definizione di contenuti. I linguaggi
fondamentalmente hanno come ultimo scopo quello di permettere lo scambio
di informazioni tra individui. I linguaggi usati nei calcolatori hanno
lo stesso scopo, ma per motivi tecnici devono essere strutturati in
modi diversi dai linguaggi usati dagli esseri umani, ma come questi
devono avere una struttura ben definita, e anche loro hanno un lessico
(insieme delle parole con un senso compiuto) e una struttura grammaticale,
che stabilisce le regole per la costruzione delle frasi usando il lessico
del linguaggio. La nascita dell’XML è come spesso succede in informatica
e non solo, una estensione di qualcosa di preesistente. Ma procediamo
in ordine cronologico.

Inizialmente era stato definito un linguaggio molto complesso e basato
su concetti molto generali e forse un po troppo teorici, per definire
informazioni, rappresentarle graficamente e altro ancora. Questo
linguaggio si chiamava SGML (Standard Generalized Markup Language),
purtroppo all’epoca della sua progettazione non era pensabile la
realizzazione di sistemi che lo sfruttassero. Troppo generale, troppo
complesso, insomma troppo! per le tecnologie e necessità dell’epoca.

Tanto per usare un parallelo chiarificatore, era come una concept
car. Come le case automobilistiche progettano e costruiscono singoli
esemplari di macchine ipertecnologiche senza badare ai costi e scendere
a compromessi, solo per toccare con mano fin dove si può spingere la
tecnologia, così fu progettato l’SGML.

A partire da questo standard derivarono versioni semplificate, per gli
scopi più immediati dell’epoca. In particolare lo sviluppo di internet
e il web necessitava di un linguaggio per la formattazione grafica dei
testi e non solo, così si estrasse solo quella parte e la si semplificò
ulteriormente definendo l’HTML.

Successivamente la mole di informazioni da trattare crebbe in modo
esponenziale e si presentarono i problemi già affrontati per la
definizione dell’SGML, ossia la rappresentazione chiara e non ambigua
delle informazioni, ma nello stesso tempo flessibile e facilmente
leggibile dai programmi. E così si ripresero di nuovo concetti dall’SGML
definendo l’XML.

Entrando più in dettaglio, si può dire che l’XML è uno standard aperto,
ossia che definisce un lessico minimale, ma non impedisce l’uso di nuovi
termini, e la sua struttura grammaticale è molto semplice.

Per definire un file XML corretto è sufficiente sapere che i suoi
contenuti sono delimitati da tag, ossia da parole racchiuse tra parentesi
angolari, e che i tag aperti devono essere chiusi tramite la ripetizione
del tag preceduto da uno slash, e che la struttura dei tag deve essere
gerarchica e un tag definito all’interno di un altro tag deve essere
chiuso prima di quello che lo contiene.

Un esempio è sicuramente più chiaro di mille parole:


	<lista_dei_siti>
<sito>
<nome>W3</nome>
<URL>http://www.w3.org/</URL>
</sito>
<sito>
<nome>Sgml Tools</nome>
<URL>http://www.sgmltools.org/</URL>
</sito>
</lista_dei_siti>

Come si può vedere il tag lista_dei_siti si apre all’inizio del file e
si chiude con lo slash alla fine del file. Al suo interno sono definiti
altri tag che ne contengono altri ed eventualmente anche del testo,
come i tag nome e URL. I nomi dei tag sono del tutto arbitrari, l’unica
restrizione è che non possono contenere spazi. A questo punto ci si
potrebbe chiedere, che senso abbia usare nomi di fantasia per i tag, e
come questo possa aiutare lo scambio di informazioni. Se io parlassi a un
mio collega in latino, senza che lui conosca il latino non otterrei nulla,
sprecherei solo del fiato dicendo cose incomprensibili al destinatario.
Ma questo non è lo scopo dell’XML, in poche parole non è negli scopi
dell’XML assicurare che il contenuto sia comprensibile al suo fruitore,
ma solo che sia chiaro che ha dei contenuti ben definiti. Poi sta al
destinatario capire di cosa si sta parlando.

A partire da questo concetto, si sono definiti una lunga serie di formati
XML che descrivono contenuti particolari1,
tanto per dirne qualcuno: XSD,
XSLT, etc. Anche questi file sono dei file XML, ma usano tag con nomi
particolari che nel caso dell’XSD descrivono la struttura di un altro file
XML, o l’XSLT che definisce delle regole di trasformazione di un file XML.

Per concludere si chiede se l’XML avrà un futuro. E chi può dirlo? Il
processo tecnologico molto spesso procede a balzi, e le novità sono
sempre dietro l’angolo. Al momento direi che ha un lungo futuro, ma
magari fra pochi mesi ci si renderà conto che la struttura gerarchica
dell’XML è limitante e qualche gruppo di teorici studierà e lancierà
qualcosa di nuovo che prenderà il posto dell’XML.

Staremo a vedere.


Nota 1: Un esempio di applicazione pratica: i programmi per ufficio
OpenOffice.org
(un gruppo di programmi per redazione di testi, per
disegno, per presentazioni, ecc. analogo a Microsoft Office) utilizzano
la notazione XML per i file contenenti i documenti. Questo significa che il
formato dei documenti è “aperto”, cioè perfettamente documentato
e quindi utilizzabile da qualunque altro programma per trattare i dati
contenuti nei file.