XML (Extensible Markup Language)
Cos’è XML (Extensible Markup Language)?
XML (Extensible Markup Language) è utilizzato per descrivere i dati. Lo standard XML è un modo flessibile per creare formati di informazioni e condividere elettronicamente dati strutturati tramite Internet pubblico, nonché tramite reti aziendali.
XML è un linguaggio di markup basato su Standard Generalized Markup Language (SGML) utilizzato per definire linguaggi di markup.
La funzione principale di XML è creare formati per i dati utilizzati per codificare informazioni per documentazione, record di database, transazioni e molti altri tipi di dati. I dati XML possono essere utilizzati per creare diversi tipi di contenuto generati dalla creazione di tipi di contenuto diversi, tra cui contenuti Web, stampati e mobili, basati sui dati XML.
Come Hypertext Markup Language (HTML), che si basa anche sullo standard SGML, i documenti XML sono archiviati come file American Standard Code for Information Interchange (ASCII) e possono essere modificati utilizzando qualsiasi editor di testo.
A cosa serve XML?
La funzione principale di XML è quella di fornire un “formato semplice basato su testo per rappresentare informazioni strutturate”, secondo il World Wide Web Consortium (W3C), l’organismo di standardizzazione per il Web, inclusi i seguenti:
- formati di dati sottostanti per applicazioni come quelle in Microsoft Office;
- documentazione tecnica;
- opzioni di configurazione per software applicativo;
- libri;
- transazioni; e
- fatture.
XML consente la condivisione di informazioni strutturate tra e tra i seguenti:
- programmi e programmi;
- programmi e persone; e
- localmente e attraverso reti.
Il W3C definisce lo standard XML e ne raccomanda l’uso per i contenuti Web. Mentre XML e HTML sono entrambi basati sulla piattaforma SGML, il W3C ha anche definito i formati di documento XHTML e XHTLM5 che rispecchiano, rispettivamente, gli standard HTML e HTML5 per i contenuti Web.
Come funziona XML?
XML funziona fornendo un formato dati prevedibile. XML è rigoroso sulla formattazione; se la formattazione è disattivata, i programmi che elaborano o visualizzano i dati codificati restituiranno un errore.
Affinché un documento XML sia considerato ben formato, ovvero conforme alla sintassi XML e in grado di essere letto e compreso da un parser XML, deve essere un codice XML valido. Tutti i documenti XML sono costituiti da elementi; un elemento funge da contenitore per i dati. L’inizio e la fine di un elemento sono identificati da tag di apertura e chiusura, con altri elementi o dati semplici al suo interno.
XML funziona fornendo dati formattati correttamente che possono essere elaborati in modo affidabile da programmi progettati per gestire input XML. Ad esempio, la documentazione tecnica può includere un elemento <warning> simile a quello mostrato nel seguente frammento di codice XML:
<warning> <para> <emphasis type="bold">Potrebbe causare lesioni gravi</emphasis> Prestare la massima attenzione poiché questa procedura potrebbe causare lesioni gravi o la morte se non si prendono le dovute precauzioni.</para> </warning>
In questo esempio, questi dati vengono interpretati e visualizzati in modi diversi, a seconda del fattore di forma della documentazione tecnica. Su una pagina web, questo elemento potrebbe essere visualizzato nel modo seguente:
ATTENZIONE: prestare la massima attenzione poiché questa procedura potrebbe causare lesioni gravi o mortali se non si prendono le dovute precauzioni.
Lo stesso codice XML viene reso in modo diverso su un’interfaccia utente (UI) dell’appliance o in stampa. Questo elemento potrebbe essere interpretato per visualizzare il testo contrassegnato come enfasi in modo diverso, ad esempio facendolo apparire in rosso e con evidenziazioni lampeggianti. In forma stampata, il contenuto potrebbe essere fornito in un font e formato diversi.
I documenti XML non definiscono la presentazione e non ci sono tag XML predefiniti. La maggior parte delle applicazioni XML utilizza set predefiniti di tag che differiscono a seconda del formato XML. La maggior parte degli utenti si affida a formati XML predefiniti per comporre i propri documenti, ma gli utenti possono anche definire elementi XML aggiuntivi in base alle necessità.
Esempio XML
Di seguito è riportato un esempio di un semplice file XML:
<?xml version="1.0" encoding="UTF-8"?> <library> <book> <title>6 personaggi in cerca d'autore</title> <author>Luigi Pirandello</author> </book> <book> <title>Il Deserto dei Tartari</title> <author>Dino Buzzati</author> </book> <book> <title>Barnabo delle Montagne</title> <author>Dino Buzzati</author> </book> </library>
La prima riga in questo esempio, chiamata prologo XML o dichiarazione XML, specifica la versione XML utilizzata, nonché lo schema di codifica dei caratteri. Questa dichiarazione, se presente, deve essere la prima riga del file.
Il prologo specifica che il file contiene dati XML versione 1.0, codificati utilizzando la codifica Unicode Transformation Format 8 (UTF-8), che è la stessa del testo ASCII e specifica il set di caratteri inglese americano. È possibile utilizzare codifiche di caratteri diverse per set di caratteri di lingue diverse, ma tutti i file XML devono essere composti da caratteri Unicode. Qualsiasi carattere Unicode può essere rappresentato in un file XML utilizzando un riferimento di carattere numerico con una stringa in questo formato:
&#xXXXX;
In questo formato, le lettere “XXXX” vengono sostituite con un codice numerico Unicode esadecimale valido.
Elementi XML
La struttura logica di un file XML richiede che tutti i dati nel file siano incapsulati in un elemento XML chiamato elemento radice o elemento documento. Questo elemento identifica il tipo di dati contenuti nel file; nell’esempio precedente, l’elemento radice è <library>.
L’elemento radice contiene altri elementi che definiscono le diverse parti del documento XML; nell’esempio precedente, l’elemento radice contiene elementi <book>, che, a loro volta, sono costituiti dai due elementi <title> e <author>.
Tutti gli elementi XML devono essere terminati correttamente affinché un file XML sia considerato ben formato. Ciò significa che un tag deve essere terminato correttamente con un tag di apertura e chiusura, come questo elemento paragrafo che farebbe parte di un documento:
<para>Questo è un esempio di tag XML per un paragrafo.</para>
Un tag può anche essere vuoto, nel qual caso termina con una barra. In questo esempio, un tag paragrafo autoterminante vuoto viene utilizzato per inserire uno spazio extra in un documento:
<para />
XML consente agli utenti di definire i propri elementi aggiuntivi, se necessario. Nell’esempio precedente, un autore XML potrebbe definire nuovi elementi per editore, data di pubblicazione, International Standard Book Number e qualsiasi altro dato rilevante. Gli elementi possono anche essere definiti per applicare regole relative al contenuto degli elementi.
Entità XML
Gli elementi XML possono anche contenere entità predefinite, che vengono utilizzate per caratteri XML riservati speciali. È possibile definire entità personalizzate per inserire una stringa predefinita di caratteri da includere in un file XML.
Le cinque entità XML predefinite standard sono le seguenti:
- < — Il simbolo di minore (<), noto anche come parentesi angolare aperta, è normalmente utilizzato in XML per indicare l’inizio di un tag XML. Questa entità viene utilizzata quando la parentesi angolare aperta fa parte del contenuto del file XML.
- > — Il simbolo di maggiore (>), noto anche come parentesi angolare chiusa, è normalmente utilizzato in XML per indicare la fine di un tag XML. Questa entità viene utilizzata quando la parentesi angolare chiusa fa parte del contenuto del file XML.
- & — Il simbolo ASCII e commerciale (&) è riservato in XML per indicare l’inizio di un’entità XML. Questa entità viene utilizzata quando un’e commerciale si trova all’interno di un elemento XML.
- " — Il carattere ASCII a virgolette doppie (“) viene utilizzato nei tag degli elementi XML per identificare i valori degli attributi opzionali dell’elemento. Ad esempio, un tag <emphasis> potrebbe includere opzioni per enfatizzare del testo, come grassetto, corsivo o sottolineato. Questa entità viene utilizzata quando un carattere a virgolette doppie appare nel contenuto di un elemento XML.
- ' — Il carattere ASCII a virgoletta singola (‘), noto anche come apostrofo, viene utilizzato nei tag degli elementi XML per identificare gli attributi opzionali dell’elemento. Ad esempio, un tag <emphasis> potrebbe includere opzioni per enfatizzare del testo, come grassetto, corsivo o sottolineato.
Questa entità viene utilizzata quando un apostrofo o una virgoletta singola appare nel contenuto di un elemento XML.
Le entità XML assumono la forma di &name; dove il nome dell’entità inizia con il simbolo di e commerciale e termina con un punto e virgola. Le entità personalizzate possono essere caratteri singoli o elementi XML complessi. Ad esempio, il linguaggio boilerplate per la documentazione tecnica o i contratti legali può essere ridotto a una singola entità. Tuttavia, quando si utilizzano entità, l’autore XML deve assicurarsi che inserendo l’entità in un file XML si produrranno dati XML ben formati.
XML è un linguaggio di programmazione?
XML non è un linguaggio di programmazione. Tuttavia, come linguaggio di markup, viene utilizzato per annotare i dati utilizzando tag, che interpretano tali dati. I linguaggi di programmazione sono costituiti da istruzioni per implementare algoritmi, mentre i linguaggi di markup vengono utilizzati per formattare i dati per l’elaborazione da parte di programmi che eseguono algoritmi che interpretano i dati contrassegnati.
I tag del linguaggio di markup sono considerati un tipo di codice informatico perché definiscono diversi elementi del linguaggio di markup e perché ci sono rigide regole di sintassi su come comporre tali elementi.
Cos’è un file XML?
Un file XML è un file di testo normale con estensione .xml. I file XML contengono testo Unicode e possono essere aperti con qualsiasi applicazione in grado di leggere file di testo.
I file XML possono essere modificati con un semplice editor di testo o con editor XML specializzati. Un editor XML può includere strumenti per convalidare il codice XML, inclusa la capacità di fare quanto segue:
- analizzare il codice XML e visualizzare XML ben formato;
- contrassegnare il testo orfano, ovvero il testo non racchiuso in un tag; e
- identificare i tag formati in modo improprio.
Diversi tipi di contenuto possono essere incorporati in un file XML. Ad esempio, il contenuto multimediale può essere incorporato in XML tramite tag che identificano i file in cui risiede il contenuto multimediale.
Come aprire e leggere file XML
Qualsiasi editor di testo può essere utilizzato per aprire e modificare un file XML. Mentre gli editor di testo possono essere sufficienti per la modifica occasionale di file XML, il software di modifica XML specializzato è preferibile per qualsiasi scrittura o modifica estesa di file XML. I programmi di modifica XML semplificano la modifica dei file XML con le seguenti funzionalità:
- evidenziazione della sintassi per il monitoraggio di tag XML complessi;
- parser XML per la verifica della validità del codice XML e la visualizzazione dei dati analizzati;
- espansione o compressione di tag e nodi XML;
- interfaccia migliorata per la modifica di più file contemporaneamente;
- interfaccia utente grafica che consente la visualizzazione delle relazioni tra elementi XML e la visualizzazione semplificata di elementi XML complessi, come tabelle; e
- strumenti di produttività, come macro, elementi personalizzati e funzioni di ricerca e sostituzione.
Ecco alcuni dei principali programmi di modifica XML:
- Oxygen XML Editor
- XML Notepad
- Adobe FrameMaker
- MadCap Flare
- Quark Author
- Liquid XML Studio
I file XML sono strutturati in modo molto simile a qualsiasi altro tipo di codice di programmazione, con intestazioni che definiscono il contenuto del file e rientro per gli elementi nidificati.
Quali sono le differenze tra XML e HTML?
Mentre XML e HTML condividono le stesse fondamenta SGML di base, sono diversi e vengono utilizzati in modi diversi.
La differenza più grande tra XML e HTML è che XML viene utilizzato per archiviare dati come informazioni strutturate, mentre HTML viene utilizzato per rappresentare il contenuto. Poiché XML archivia dati e poiché impone una convalida rigorosa, il contenuto XML può essere elaborato in modo affidabile dai programmi. Ecco perché XML viene spesso utilizzato per creare file utilizzati per generare contenuto HTML.
La convalida rigorosa del codice XML significa che, se ci sono errori nel codice, questo fallirà quando verrà elaborato per l’output. Gli utenti possono quindi correggere il codice XML in modo che possa essere elaborato correttamente. Ciò è fondamentale per i contenuti HTML basati su XML, ma rende XML anche un formato importante per i file di configurazione software, che devono essere ben formati per poter essere elaborati correttamente dal software.
Qual è il vantaggio di usare XML per la documentazione?
XML è ampiamente usato per la documentazione tecnica perché può specificare informazioni strutturali. Questa struttura del documento può quindi essere analizzata da altri programmi per l’output.
Ad esempio, in HTML, l’utente può creare diversi tipi di elenchi, inclusi elenchi numerati, ma non c’è modo di contrassegnare esplicitamente il contenuto come parte di una procedura passo-passo. In XML, un tag di procedura può essere definito per rappresentare un elenco di elementi come passaggi di una procedura, inclusa l’identificazione di diversi elementi per passaggi obbligatori, passaggi facoltativi e passaggi alternativi.
Allo stesso modo, in HTML, una stringa può essere contrassegnata come uno dei diversi livelli di intestazione per indicare un titolo o un’intestazione, ma in XML, una stringa può essere contrassegnata esplicitamente come titolo, sottotitolo, intestazione o sottotitolo. Ciò consente all’utente di differenziare i programmi per elaborare il contenuto XML per diversi tipi di output.
Ad esempio, se il contenuto deve essere emesso in formato di libro stampato, il titolo del libro o del capitolo può essere incorporato in un’intestazione o un piè di pagina. Se il contenuto deve essere visualizzato come contenuto HTML, il titolo del libro o del capitolo può essere incorporato in una pagina web, a seconda delle necessità.