Cos'è l'XML ? A cosa serve e come si utilizza

 Introduzione





Ciao e benvenuti ad un nuovo post, oggi parleremo del linguaggio XML, sono sicuro che in moltissimi di voi che bazzicano online ne hanno sentito parlare almeno una volta. Oggi capiremo cos'è l'XML a cosa serve e come può tornarci utile.

Cos'è XML ?

XML non è ne un linguaggio di mark-up ne un'evoluzione dell' HTML, sono proprio cose completamente diverse. L'XML è un metalinguaggio di mark-up, con lo scopo di definire altri linguaggi di mark-up. 

XML ha lo scopo di definire la struttura di documenti per facilitare la comunicazione tra sistemi diversi. In poche parole si possono definire tutte quelle informazioni importanti per la corretta esecuzione dell'applicazione. 

É un documento di testo con estensione .xml, per tanto può essere modificato e letto con qualsiasi editor di testo. 
Possiamo definire XML come un semplice formato, molto flessibile che serve a contrassegnare i dati con tag facilmente leggibili dall'uomo. 

Come è strutturato un file XML ? 

Per quanto sia flessibile anche l'XML ha delle regole sintattiche ben definite. Analogamente all'HTML i tag vanno aperti e chiusi esempio <Matematica> </Matematica>. Con <Matematica> apriamo il tag con  </Matematica> chiudiamo il tag. Come puoi immaginare anche l'XML funziona con gerarchie, alcuni tag andranno a contenere altri tag al loro interno ma questo lo vedremo successivamente

Un documento XML è composto da due parti principali : 
  1. prologo : contiene una dichiarazione XML e il riferimento ad altri documenti che ne definiscono la struttura o eventuali direttivo di elaborazione 
  2. corpo : è il reale succo del documento xml, quindi la parte in cui risiedono tutti i tag. 

Esempio : 

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<?xml-stylesheet type="text/css" href="greco.css"?>

<!-- Questo è un commento -->

<radice> <!-- Marcatore di inizio-->

        <figlio>
                ..........
        </figlio>

        <figlio>
                ..........
        </figlio>

</radice> <!-- Marcatore di fine-->

Le parti scritte in questo colore, fatto parte del prologo, ciò che è scritto in questo colore è il corpo del file.
Nel prologo :
  • xml version="1.0" :  indica la versione di XML in questo caso 1.0
  • encoding="UTF-8" : indica la codifica di caratteri utilzzata
  • standalone="yes" : indica se il documento è conforme a una sintassi esterna.
Un documento XML ha delle regole sintattiche, quindi come bisogna scrivere le informazioni e le regole semantiche, cioè ciò che può essere scritto nel documento per essere corretto. 

Un documento XML che rispetta le regole sintattiche si dice ben formato (well-formed)
Un documento che rispetta entrambe le regole, quindi rispetta sia le regole sintattiche che le regole semantiche si dice valido

Per avere un documento XML ben formato le regole sintattiche da rispettare sono le seguenti: 
  • deve contenere una dichiarazione corretta;
  • il corpo deve avere un unico elemento radice (esclusi eventuali commenti);
  •  ogni elemento deve avere un tag di apertura e uno di chiusura; se l'elemento è vuoto si può utilizzare la forma abbreviata (<nometag/>);
  • gli elementi devono essere opportunamente nidificati, cioè i tag di chiusura devono seguire l'ordine inverso dei rispettivi tag di apertura;
  • i nomi dei tag di apertura e chiusura devono coincidere, anche in termini di maiuscole e minuscole; 
  •  i nomi dei tag non devono iniziare con il carattere underscore () o con un numero e non devono contenere spazi al loro interno;
  • i valori degli attributi devono sempre essere racchiusi tra singoli o doppi apici.
  • Gli attributi vanno sempre messi tra virgolette. 


Come capire se un file XML è valido ?

Per fare questo abbiamo bisogno di un file DTD, questi file sono uno strumento per la validazione dei documenti XML. Questi file non sono scritti rispettando la sintassi XML. 
Per fare questo dobbiamo inserire nel prologo XML sotto la riga di XML Declaration, una dichiarazione con questa sintassi : 
 
<!DOCTYPE <root-element> SYSTEM "<filename>">

  • root-element è il nome dell'elemento radice; 
  • SYSTEM definisce documenti di utilizzo locale;
  • filename è il file che contiene il DTD:

Lo schema DTD è costituito da un elenco di dichiarazioni (markup declaration) che descrivono la struttura del documento, dove ciascuna dichiarazione definisce:

  • gli elementi (element) di un documento XML;
  • il modello di contenuto di ogni elemento (content model), ovvero gli elementi che contiene e le loro relazioni 
  • la lista degli attributi associati a ciascun elemento, il loro tipo e il loro valore.

Per dichiarare un elemento, che può essere indicato una sola volta, si usa la sintassi:

<!ELEMENT element-name content-model>


Il contenuto (content-model) può essere di 2 tipi : 
  1. EMPTY : Indica elemento vuoto
  2. ANY : Indica che si può inserire qualsiasi elemento purché sia dichiarato nel DTD
In conclusione il DTD è un documento opzionale che consiste in un insieme di regole specifiche per definire  la struttura di un documento XML, in particolare definisce : 
  • Quali elementi possono essere usati nel documento 
  • Quali attributi si possono usare per ogni elemento 
  • i vincoli tra gli elementi
Inoltre ha una grande utilità intrinseca, ovvero quella di verificare la correttezza e la validità di un documento XML. 

Cosa si può fare con l'XML ? 

Moltissime volte i sistemi di elaborazione e i database contengono spesso dati incompatibili tra di loro. Per decenni questo è stato un enorme problema per gli sviluppatori poiché lo scambio tra macchine diverse era molto difficile. Con la creazione dell'XML si è potuto creare un formato che possa essere capito da tutte le macchine, un pò come una lingua capibile da tutte le persone, come uno standard comprensibile da tutti. Questa è la reale motivazione per cui l'XML a differenza di molti formati viene tutt'ora ampiamente utilizzato. L'XML è diventato sempre più compatibile con sempre più macchine, tanto da diventare uno standard per lo scambio di informazioni. 

Essendo solo un file di testo rende più facile condividere le informazioni poiché quest'ultime sono slegate sia dall'Hardware sia dal Software. 

Conclusione 

Spero che questo post vi sia stato d'aiuto e mi auguro di aver risolto qualche vostro dubbio. 

Commenti