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:
- il documento XML deve contenere un solo elemento radice
- ogni elemento deve avere un tag iniziale e un tag finale
- gli elementi devono essere appropriamente annidati
- tutti i valori degli attributi devono essere racchiusi tra virgolette
- essendo Xml un linguaggio case sensitive i caratteri maiuscoli non sono trattati come quelli minuscoli.
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à: & per il carattere & (e commerciale), < per il carattere <
(minore), > per il carattere > (maggiore), " 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)