Guida XML
XML è l'acronimo di eXtensible Markup Language e significa linguaggio di marcatura estensibile. Iniziamo quindi a spiegare il significato di linguaggio di marcatura e subito dopo descriveremo il concetto di estensibile.
XML è un linguaggio di marcatura
XML è un linguaggio di marcatura che deriva dal linguaggio SGML (Standard Generalized Markup Language). Entrambi sono linguaggi di marcatura testuale, ossia inseriscono all'interno del documento delle etichette o marcature (tag), che permettono di descrivere il contenuto del documento stesso. In questo modo un'applicazione, ad esempio un motore di ricerca , è in grado di leggere le informazioni contenute nel documento e di elaborarle in maniera efficiente e corretta. Ecco l'esempio di un documento, che descrive gli elementi di una rubrica telefonica, in formato XML:
<?xml version="1.0"?>
<Rubrica>
<Persona>
<Nome>Mario</Nome>
<Cognome>Rossi</Cognome>
<Numero telefonico>001122334455</Numero telefonico>
<Città>Bella</Città>
<Indirizzo>via del corso</Indirizzo>
<N.civico>n.25</N.civico>
</Persona>
</Rubrica>
XML è un linguaggio di marcatura estensibile
L'insieme delle marcature utilizzabili per creare un documento XML non è predefinito come succede per il linguaggio HTML per il quale un organismo unico internazionale, il Web Consortium, ha definito l'insieme dei tag utilizzabili e il loro significato. L'autore del documento XML definisce i propri tag in base alla tipologia dei dati da descrivere. Per autore s'intende l'insieme dei soggetti interessati alla distribuzione di documenti XML che descrivono una certa tipologia semantica e che concordano insieme una struttura comune da adottare (vedi lezione 3: DTD).
Ad esempio, se un ente pubblico o privato intende rendere accessibile su Internet le schede bibliografiche del catalogo della propria biblioteca, utilizzando il linguaggio XML, dovrà contattare gran parte degli enti pubblici e/o privati che hanno la stessa esigenza e concordare con essi una struttura da utilizzare, ossia definire il numero e il tipo di tag.
XML è un linguaggio per la descrizione semantica dei dati
XML è stato progettato per trattare la descrizione delle informazioni, ossia concentra l'attenzione sul significato dei dati. Ad esempio, ritornando al documento XML, visto in precedenza, che descrive gli elementi di una rubrica telefonica:
<?xml version="1.0"?>
<Rubrica>
<Persona>
<Nome>Mario</Nome>
<Cognome>Rossi</Cognome>
<Numero telefonico>001122334455</Numero telefonico>
<Città>Bella</Città>
<Indirizzo>via del corso</Indirizzo>
<N.civico>n.25</N.civico>
</Persona>
</Rubrica>
le marcature indicano in maniera non ambigua il significato di ciascun dato, per cui un'applicazione è in grado di estrarre correttamente tutte le informazioni contenute nel documento senza incorrere in errori interpretativi.
XML non è orientato ad uno specifico tipo di elaborazione
XML è stato creato esclusivamente come uno strumento per strutturare, memorizzare e scambiare informazioni. Ad esempio, in questo documento XML che descrive un libro:
<?xml version="1.0"?>
<Libro>
<Titolo>Cent'anni di solitudine</Titolo>
<Autore>Gabriel Garcia Marquez</Autore>
<Editore>Mondadori</Editore>
</Libro>
non è contenuta alcuna istruzione finalizzata all'elaborazione dei dati; si tratta di pura informazione confezionata nelle marcature XML. Occorre utilizzare un'applicazione specifica per inviare, ricevere o visualizzare il documento XML. Le marcature, evidenziando la semantica delle informazioni contenute in un documento, rendono semplice la progettazione e la realizzazione di applicazioni in grado di elaborare i dati.
A cosa serve XML?
Con XML è possibile condividere e scambiare dati in modo indipendente dall'hardware e dal software. Poiché i dati XML sono memorizzati in formato testuale piatto, ossia senza caratteri speciali aggiuntivi, XML fornisce un modo di condividere e scambiare i dati indipendente dal sistema operativo (Mac, Windows, UNIX) e dal software.
Attualmente, i sistemi di database contengono dati in formati incompatibili fra di loro. Fino ad oggi, le società di software hanno investito molte risorse nello studio e nella realizzazione di programmi per lo scambio di dati su Internet fra i diversi sistemi. La conversione in XML riduce fortemente la complessità dei programmi e crea documenti che possono essere letti da molte applicazioni di tipo diverso.
I benefici di XML
In definitiva con XML abbiamo notevoli benefici nel campo della web-engineering:
Applicazioni Web più potenti: dal momento che il linguaggio XML consente di evidenziare, attraverso i propri tag, la semantica di un testo, è possibile semplificare la creazione di applicazioni che elaborano documenti elettronici in modo intelligente. Ad esempio, un motore di ricerca sarà in grado di reperire tutti gli articoli di una legge che contengono riferimenti normativi esterni, oppure di trovare gli articoli che contengono nella rubrica una certa parola. In questo modo è possibile superare uno dei limiti dell'HTML in cui i dati sono formattati per la presentazione a video e risultano difficili da trattare per una elaborazione di altro tipo.
Applicazioni Web più flessibili: i documenti basati sull'XML possono essere utilizzati dal Web client elaborando i dati che vi sono contenuti in differenti processi software non predeterminati. Quindi è possibile, per esempio, sviluppare applicazioni che richiedono al Web client di presentare viste diverse degli stessi dati.
XML e HTML
Iniziamo con lo sgombrare il campo da possibili equivoci: XML non è stato progettato per sostituire HTML. I linguaggi XML e HTML sono stati progettati per svolgere compiti diversi:
XML è stato pensato per descrivere i dati ed è incentrato sul loro valore semantico; XML riguarda la descrizione delle informazioni;
HTML (acronimo di Hyper Text Markup Language che significa linguaggio di marcatura per ipertesti) è stato pensato per visualizzare i dati ed è incentrato sull'aspetto con il quale il dato è presentato;
HTML tratta la visualizzazione delle informazioni. XML è estensibile, è un metalinguaggio nel senso che permette di definire altri linguaggi di marcatura (si veda, ad esempio, il linguaggio Wireless Markup Language usato per le connessioni senza cavo); mentre HTML non è estensibile.
XML mantiene separate la struttura del documento dalle regole per la sua visualizzazione; al contrario HTML usa elementi per la struttura insieme ad elementi per la visualizzazione (cosa superata definitivamente solo con l'avvento di HTML 5).DTD – Document Type Definition
Una caratteristica fondamentale dell'XML è l'estensibilità. L'autore - nell'accezione estesa specificata nell'introduzione di questa guida a XML - di un documento XML può creare nuovi tag per descrivere i contenuti semantici dei propri dati, semplificando il loro scambio fra i gruppi di persone interessate allo stesso settore.
Ciò ha portato alla necessità di definire delle regole grammaticali, o vincoli, alle...
I tag di XML
All'inizio di questa guida abbiamo visto come un documento XML è, per certi versi, simile ad un HTML, in cui però possiamo "inventare", a piacimento dell'esigenze dell'autore, i tag che più ci piacciono. Non siamo vincolati, cioè, ad una serie di tag predefiniti tra cui scegliere ma possiamo creane a piacimento, sulla base delle nostre esigenze.
Vediamo un esempio di...
Gli attributi di XML
Nella precedente lezione della nostra guida XML abbiamo visto che gli elementi di un documento XML sono definiti mediante tag. In questa lezione vedremo cosa sono gli attributi e come possono essere utilizzati in XML.
Cos'è un attributo in XML
Viene utilizzato un attributo per aggiungere una caratteristica o una proprietà ad un elemento. Un attributo è una coppia nome-valore, separata...
Le regole sintattiche di XML
Abbiamo detto che XML è un metalinguaggio e che consente di creare infiniti tag. Questo non significa, tuttavia, che XML non sia un linguaggio rigoroso. La sua "libertà" non deve essere fraintesa.
Per creare un documento XML è necessario, infatti, rispettare una serie ben precisa di regole sintattiche. Un documento XML si definisce well formed quando è conforme alle regole...
Inserire commenti nei documenti XML
Come sappiamo l'aggiunta di commenti all'interno del codice è una delle prassi della buona programmazione. Anche all'interno di un documento XML è possibile inserire commenti, cioè delle annotazioni al codice aventi la finalità di agevolare futuri interventi da parte dello sviluppatore stesso o di altre persone chiamate, eventualmente, ad intervenire sul codice.
La sintassi dei commenti in XML è la...
XML CDATA: cos’è e a cosa serve
In XML il CDATA fa parte della DTD e serve a definire il tipo di dato contenuto all'interno di un tag. Più precisamente CDATA sta per Character DATA ed è utilizzato per definire un blocco di puro testo (a prescindere dal suo contenuto e dai caratteri in esso utilizzati).
Attraverso un corretto utilizzo delle sezioni CDATA è possibile risolvere il...
XML namespaces: cosa sono e come funzionano
Nella visione XML, i tipi di documenti si mescolano e si fondono tra loro in maniera complessa. Lo stesso documento potrebbe avere alcuni elementi definiti in un vocabolario ed altri in un altro.
Un esempio comune è un documento XML di valori di borsa che adopera i tag di HTML per definire gli elementi di testo, ed un insieme di...
XML Stylesheet
In un documento XML si possono individuare tre parti fondamentali che dovrebbero essere gestite separatamente:
il contenuto (XML);
le specifiche relative agli elementi: la struttura (DTD, Namespaces, etc...);
le specifiche relative alla visualizzazione: lo stile (XSL, CSS, etc).
Il foglio di stile (stylesheet) specifica il formato di presentazione di un documento XML usando due categorie di tecniche:
trasformazione (opzionale) della struttura del documento di...
La famiglia di XML: linguaggi derivati da XML
XML è un metalinguaggio che permette di specificare altri linguaggi e fornisce un livello comune per lo scambio di informazioni tra ambienti diversi. XML non prescrive l'utilizzo di tag specifici, ma stabilisce regole comuni per il corretto parsing del documento.
XML può essere utilizzato per una vasta gamma di scopi, a seconda delle operazioni che devono essere eseguite da un'applicazione...