XML: il linguaggio di markup estensibile in dettaglio
XML è un formato di dati basato su testo utilizzato, in particolare, per l’archiviazione di dati e lo scambio dati multipiattaforma su Internet. Il linguaggio XML funge da base per altri linguaggi come l’HTML e può essere letto sia dagli esseri umani che dalle macchine.
Che cos’è il linguaggio XML?
XML (abbreviazione di “Extensible Markup Language”) è un linguaggio di markup che si usa per rappresentare i dati in modo strutturato in un file di testo e che può essere interpretato sia da persone che da computer. Il metalinguaggio è stato ideato dal World Wide Web Consortium nel 1998 ed è ormai un elemento imprescindibile per lo sviluppo web. La versione attuale di XML, giunto alla sua quinta edizione, è stata presentata nel 2008. Il sistema di codifica dei caratteri standard dei documenti XML è UTF-8.
XML: modalità di utilizzo e funzionalità
XML può essere applicato in vari modi. Tuttavia, all’inizio di ogni utilizzo di XML è prevista la creazione di un file XML. Questo è un documento di testo con estensione .xml che può essere generato in qualsiasi editor di testo. Affinché un documento sia valido, è necessario attenersi alla sintassi del linguaggio. Questo tipo di documenti può essere utilizzato quando l’HTML non è più in grado di funzionare. Ad esempio nel caso delle sitemap dei siti web: qui viene creato un file sitemap.xml.
La lettura dei documenti XML presuppone l’uso di un cosiddetto parser. Si tratta di un’interfaccia di programmazione attraverso la quale varie applicazioni sono in grado di accedere al documento XML. Questo accesso può avvenire in vari modi:
- DOM: il documento XML è rappresentato sotto forma di struttura ad albero, di conseguenza diventa leggibile. Nella struttura ad albero sono inoltre consentite operazioni di modifica e di scrittura.
- API pull: i dati del documento XML vengono elaborati in modo sequenziale e prevalentemente in base agli eventi.
- SAX: anche in questo caso, il documento XML viene considerato come un flusso sequenziale di dati.
Nella maggior parte dei casi, i browser web dispongono già di un parser di questo tipo, per cui la lettura dei documenti XML non rappresenta un problema.
Aree di applicazione del linguaggio XML
L’Extensible Markup Language può essere utilizzato in molti settori diversi. Può essere il fondamento di altre lingue, come ad esempio del linguaggio HTML (Hypertext Markup Language). Anche il formato di file SVG, il più diffuso per la grafica vettoriale, si basa su XML.
Tuttavia, il linguaggio di markup ha una rilevanza notevole non solo in quanto base per altri linguaggi. Soprattutto nel campo dello sviluppo web, l’XML puro serve a creare le sitemap dei siti web. In più, l’Extensible Markup Language offre la possibilità di creare database XML. I database orientati ai documenti sono molto più flessibili dei database relazionali e per questo sono molto diffusi.
Come è strutturato l’XML?
A prima vista, i documenti XML assomigliano a documenti HTML. L’HTML, infatti, si basa sull’Extensible Markup Language e utilizza la stessa notazione per accedere a vari attributi e tag.
Nel linguaggio XML si possono distinguere diversi tipi di documento. I documenti XML incentrati sul documento sono largamente comprensibili ai lettori umani anche senza informazioni aggiuntive e sono solo leggermente strutturati. D’altra parte, la leggibilità di questi documenti da parte della macchina è enormemente ridotta. Per certi versi, i documenti XML incentrati sui dati possono essere considerati l’opposto. Un elevato grado di strutturazione va di pari passo con un’elevata leggibilità artificiale. Ai lettori umani, i documenti incentrati sui dati appaiono intuitivi, benché difficilmente comprensibili. Esistono, infine, i cosiddetti documenti semi-strutturati come compromesso.
Il linguaggio XML può essere definito un linguaggio di programmazione?
L’Extensible Markup Language è un linguaggio di markup, pertanto non è da considerarsi un linguaggio di programmazione a sé stante. Non esiste un compilatore XML e non è possibile creare file eseguibili tramite XML. Di conseguenza, nemmeno i linguaggi basati su XML sono da considerarsi linguaggi di programmazione.
I diversi elementi dell’XML
Il componente più importante dell’Extensible Markup Language sono i cosiddetti elementi. I loro nomi possono essere scelti liberamente. Gli elementi iniziano e finiscono con i tag. Ad esempio, se si desidera dichiarare l’elemento “casa” nel proprio documento XML, occorre procedere in questo modo:
<casa></casa>
Di seguito è possibile elencare il contenuto della casa.
xmlQuesti elementi possono essere annidati a piacimento l’uno nell’altro. In aggiunta, si possono dotare gli elementi di attributi che contengono informazioni aggiuntive relative agli elementi. Ad esempio, se si vuole aggiungere un tetto e due stanze numerate alla casa, è necessario modificare il documento XML come segue:
<casa></casa>
Di seguito è possibile elencare il contenuto della casa.
<tetto></tetto>
Il tetto della casa.
<numero della="" camera="1"></numero>
La camera 1 nella vostra casa.
<numero della="" camera="2"></numero>
La camera 2 nella vostra casa.
xmlI numeri di camera aggiunti alle camere corrispondono agli attributi già menzionati.
Ulteriori componenti dei documenti XML possono essere i commenti nella forma .
Entità in XML
Nell’Extensible Markup Language è possibile accedere anche a entità predefinite. Anche la creazione di entità proprie è semplice. Si tratta di contenuti specifici definiti per un uso successivo. Con l’aiuto delle entità è possibile integrare anche altri documenti XML.
Entità importanti per l’uso di XML sono, ad esempio, < per il carattere < o > per il carattere >. Nel documento XML è possibile creare entità personalizzate come segue:
<!--ENTITY es "Esempio di entità"-->
xmlDifferenze tra XML e HTML
L’HTML, arrivato alla sua quinta versione HTML5, si basa su XML e quindi a un primo sguardo appare molto simile all’Extensible Markup Language. Al contrario dell’HTML, tuttavia, l’XML non presenta un set predefinito di attributi e tag ammessi. Nell’XML, questi possono essere infatti interamente definiti da chi programma. In più, rispetto all’HTML, l’XML è case sensitive: ciò significa che distingue tra lettere maiuscole e minuscole. Un ulteriore differenza sta nel fatto che l’XML necessita sempre di tag di chiusura, pertanto un’interruzione di riga che in HTML viene introdotta con
, nell’XML appare come segue:
.