XML

Da Wikipedia, l'enciclopedia libera.
XML
XML.svg
Estensione .xml
Tipo MIME application/xml

text/xml
Sviluppato da W3C
Tipo Linguaggio di markup
Estensione di SGML
Esteso a XHTML, RSS, Atom e altri
Formato aperto?

XML (sigla di eXtensible Markup Language) è un metalinguaggio di markup, ovvero un linguaggio marcatore che definisce un meccanismo sintattico che consente di estendere o controllare il significato di altri linguaggi marcatori.

Costituisce il tentativo di produrre una versione semplificata di SGML che consenta di definire in modo semplice nuovi linguaggi di markup da usare in ambito web. Il nome indica quindi che si tratta di un linguaggio marcatore (markup language) estensibile (eXtensible) in quanto permette di creare tag personalizzati.

Indice

Storia

Il World Wide Web Consortium (W3C), in seguito alla guerra dei browser (ovvero la situazione verificatasi negli anni novanta nella quale Microsoft e Netscape introducevano, con ogni nuova versione del proprio browser, un'estensione proprietaria all'HTML ufficiale), fu costretto a seguire le individuali estensioni al linguaggio HTML.

Il W3C dovette scegliere quali caratteristiche standardizzare e quali lasciare fuori dalle specifiche ufficiali dell'HTML. Fu in questo contesto che iniziò a delinearsi la necessità di un linguaggio di markup che desse maggiore libertà nella definizione dei tag, pur rimanendo in uno standard.

Il "progetto XML", che ebbe inizio alla fine degli anni ottanta nell'ambito della SGML Activity del W3C, suscitò un così forte interesse a tal punto che la W3C creò un gruppo di lavoro, chiamato XML Working Group, composto da esperti mondiali delle tecnologie SGML, ed una commissione, XML Editorial Review Board, deputata alla redazione delle specifiche del progetto.

Nel febbraio del 1998 le specifiche divennero una raccomandazione ufficiale con il nome di Extensible Mark-up Language, versione 1.0. Ben presto ci si accorse che XML non era solo limitato al contesto web, ma era qualcosa di più: uno strumento che permetteva di essere utilizzato nei più diversi contesti, dalla definizione della struttura di documenti, allo scambio delle informazioni tra sistemi diversi, dalla rappresentazione di immagini alla definizione di formati di dati.

Utilizzi

Rispetto all'HTML, l'XML ha uno scopo ben diverso: mentre il primo definisce una grammatica per la descrizione e la formattazione di pagine web e, più in generale, di ipertesti, il secondo è un metalinguaggio utilizzato per creare nuovi linguaggi, atti a descrivere documenti strutturati. Mentre l'HTML ha un insieme ben definito e ristretto di tag, con l'XML è invece possibile definirne di propri a seconda delle esigenze.

L'XML è oggi molto utilizzato anche come mezzo per l'esportazione di dati tra diversi DBMS.

Sintassi

Ecco un esempio tipico di file XML, visualizzabile all'interno di un browser qualsiasi semplicemente salvando il testo in un file con estensione .xml.

<?xml version="1.0" encoding="UTF-8"?>
<utenti>
    <utente>
        <nome>Luca</nome>
        <cognome>Ruggiero</cognome>
        <indirizzo>Milano</indirizzo>
    </utente>
    <utente>
        <nome>Max</nome>
        <cognome>Rossi</cognome>
        <indirizzo>Roma</indirizzo>
    </utente>
</utenti>

La prima riga indica la versione di XML in uso e specifica la codifica UTF-8 per la corretta interpretazione dei dati.

I caratteri speciali che renderebbero il documento mal formato vanno sostituiti con le rispettive entità XML:

Carattere Entità
& &amp;
< &lt;
> &gt;
" &quot;
' &apos;

I tag

L'XML, come l'HTML, utilizza dei marcatori, chiamati tag, per assegnare una semantica al testo. È molto rigido sulla sintassi da seguire rispetto all'HTML ed è pertanto necessario rispettare alcune regole:

  1. i tag non possono iniziare con numeri o caratteri speciali e non possono contenere spazi;
  2. i tag devono essere bilanciati, ovvero non sono consentiti errori di annidamento, ad esempio:
<rubrica>
  <nome>Mario</nome>
  <cognome>Rossi
</rubrica>

Il tag cognome non è stato chiuso, l'XML risulta quindi non ben formato.

<rubrica>
  <nome>Mario</nome>
  <cognome>Rossi
</rubrica></cognome>

Il tag cognome è stato chiuso dopo il tag rubrica, anche in questo caso l'XML non è ben formato.

<rubrica>
  <nome>Mario</nome>
  <cognome>Rossi</COGNOME>
</rubrica>

XML è case sensitive quindi il tag cognome e il tag COGNOME sono considerati come due tag diversi; l'XML ancora una volta è non valido.

È possibile anche definire tag vuoti che vengono aperti e immediatamente chiusi:

<rubrica></rubrica>

Oppure in maniera abbreviata:

<rubrica />

Per poter essere correttamente interpretato da un browser, un documento XML deve essere ben formato, deve cioè possedere le seguenti caratteristiche:

Se il documento XML non contiene errori si dice Well Formed (scritto correttamente). Se il documento è well formed e in più rispetta i requisiti strutturali definiti nel file DTD o schema XML associato viene chiamato Valid (valido).

Tecnologie di supporto a XML

Linguaggi schema (permettono di creare nuovi linguaggi XML):

Altre tecnologie legate a XML:

Linguaggi XML più diffusi

XML e le pagine web: XHTML

L'HTML tradizionale non è un vero standard data la sua eccessiva flessibilità ed il suo funzionamento immutato anche in presenza di errori semantici, sintattici e grammaticali. Ad affiancarlo c'è XHTML, ovvero l'HTML tradizionale basato su XML, con la sua struttura rigida e con le sue stesse regole.

Ad esempio in XHTML, al contrario che in HTML tradizionale, i tag vuoti vanno chiusi con uno slash (/) finale, gli attributi vuoti devono essere valorizzati con true o false, la chiusura dei tag dev'essere a specchio (se viene aperto un Tag e prima di chiuderlo ne viene aperto un altro, è necessario chiudere prima il secondo tag e poi il primo), molti Tag e molti attributi sono scomparsi, i caratteri speciali vanno gestiti, insieme ad altre peculiarità, ma soprattutto esiste una DTD dedicata.

Una pagina XHTML (ovvero un codice XHTML, dato che l'estensione della pagina prescinde dal codice in questo caso) non funziona se scritta scorrettamente e inviata con il mime type corretto (application/xhtml+xml). Quando è inviata come text/html funziona perché viene interpretata come html (con degli errori, quali i tag chiusi come <br />) solo che non rispetta lo standard e non gode dei suoi vantaggi, primo tra i quali la portabilità su browser e client differenti.

Note

Voci correlate

Altri progetti

Collegamenti esterni

Questo articolo è basato sull'articolo XML (autori) dell'enciclopedia Wikipedia ed è rilasciato sotto i termini della GNU Free Documentation License.