Il linguaggio XML (Extensible Markup Language) è ormai ampiamente diffuso e sono ben noti i motivi per cui è consigliabile usarlo nelle organizzazioni. Ma che cos'è esattamente? Questo articolo illustra le nozioni di base e il funzionamento dell'XML.
In questo articolo
- Breve introduzione a commenti e tag
- Caratteristiche del linguaggio XML
- L'importanza di dati ben formati
- Breve introduzione agli schemi
- Breve introduzione alle trasformazioni
- XML e Microsoft Office System
Breve introduzione a commenti e tag
Per comprendere XML, è utile comprendere l'idea di marcatura dei dati. Le People hanno creato documenti per secoli e per altrettanto tempo hanno contrassegnato quei documenti. Ad esempio, gli insegnanti della scuola annotano continuamente i compiti degli studenti. Dicono agli studenti di spostare paragrafi, chiarire le frasi, correggere gli errori ortografici e così via. Il markup di un documento è il modo in cui definiamo la struttura, il significato e l'aspetto visivo delle informazioni nel documento. Se è stata usata la funzionalità Revisioni in Microsoft Office Word, è stata usata una forma computerizzata di markup.
In ambito informatico il processo di inserimento di commenti si è trasformato nell'utilizzo di determinati codici denominati tag (o token) per definire la struttura, l'aspetto e, nel caso di XML, il significato dei dati.
Il codice HTML di questo articolo rappresenta un esempio efficace dell'utilizzo di tag. Se si sfoglia la pagina (in Microsoft Internet Explorer, fare clic con il pulsante destro del mouse sulla pagina e quindi scegliere Visualizza sorgente), verrà visualizzata una combinazione di testo leggibile e tag HTML (Hypertext Markup Language), ad esempio <p> e <h2>. I tag dei documenti HTML e XML sono facilmente riconoscibili in quanto racchiusi tra parentesi angolari. Nel codice sorgente di questo articolo, i tag HTML svolgono una varietà di lavori, ad esempio definire l'inizio e la fine di ogni paragrafo (<p> ... </p>) e contrassegnare la posizione di ogni immagine.
Caratteristiche del linguaggio XML
I documenti HTML e XML contengono dati circondati da tag, ma è qui che finiscono le somiglianze tra i due linguaggi. In HTML, i tag definiscono l'aspetto dei dati: i titoli vanno qui, il paragrafo inizia lì e così via. In XML i tag definiscono la struttura e il significato dei tuoi dati, ovvero quali sono i dati.
La descrizione della struttura e del significato dei dati rende possibile il loro riutilizzo in diversi modi. Se ad esempio si ha un blocco di dati di vendita in cui ogni voce è chiaramente identificata, è possibile caricare solo le voci necessarie in un report di vendita e le altre in un database di contabilità. In altre parole, è possibile usare un sistema per generare i dati e contrassegnarli con tag XML e quindi elaborarli in diversi altri sistemi, indipendentemente dalla piattaforma hardware o dal sistema operativo. Questa caratteristica di portabilità è il motivo per cui l'XML è ormai una delle tecnologie più diffuse per lo scambio di dati.
Mentre si procede, tenere presente gli aspetti seguenti:
Non è possibile usare codice HTML al posto di codice XML. È tuttavia possibile incapsulare i dati XML in tag HTML e visualizzarli in una pagina Web.
L'HTML è un gruppo limitato e predefinito di tag condivisi da tutti gli utenti.
XML consente di creare qualsiasi tag necessario per descrivere i dati e la struttura di tali dati. Ad esempio, supponiamo che tu abbia bisogno di memorizzare e condividere informazioni sugli animali domestici. È possibile creare il codice XML seguente:
<?xml version="1.0"?> <CAT> <NAME>Izzy</NAME> <BREED>Siamese</BREED> <AGE>6</AGE> <ALTERED>yes</ALTERED> <DECLAWED>no</DECLAWED> <LICENSE>Izz138bod</LICENSE> <OWNER>Colin Wilcox</OWNER> </CAT>
È possibile notare che i tag XML consentono di sapere esattamente il tipo di dati che si stanno esaminando. Ad esempio, si tratta di dati su un gatto e si possono trovare facilmente il nome, l'età e così via. La capacità di creare tag che definiscono quasi tutte le strutture di dati è ciò che rende XML "estensibile".
I tag di questo esempio di codice non devono tuttavia essere confusi con quelli presenti in un file HTML. Se ad esempio questa struttura XML viene incollata in un file HTML che viene visualizzato nel browser, il risultato sarà simile al seguente:
Izzy Siamese 6 yes no Izz138bod Colin Wilcox
Il browser ignora i tag XML e visualizza solo i dati.
L'importanza di dati ben formati
Qualcuno del reparto IT potrebbe parlare di XML "ben formato". Un file XML ben formato è conforme a un insieme di regole molto rigide che regolano l'XML. Se un file non è conforme a queste regole, XML smette di funzionare. Ad esempio, nell'esempio di codice precedente, ogni tag di apertura ha un tag di chiusura, quindi l'esempio rispetta una delle regole per essere ben formato. Se si rimuove un contrassegno e si prova ad aprire il file in una delle applicazioni di Office, verrà visualizzato un messaggio di errore e il programma impedirà all'utente di usare il file.
Pur non essendo necessario conoscere le regole per la creazione di documenti XML ben formati, anche se sono facili da capire, è importante tenere presente che i dati XML possono essere condivisi tra applicazioni e sistemi solo se sono ben formati. Se non è possibile aprire un file XML, è molto probabile che non sia ben formato.
Il linguaggio XML è inoltre indipendente dalla piattaforma, ossia qualsiasi applicazione progettata per usarlo consente di leggere ed elaborare dati XML, indipendentemente dall'hardware o dal sistema operativo. Con i tag XML appropriati è ad esempio possibile usare un'applicazione per PC desktop per aprire e gestire i dati provenienti da un computer mainframe. Indipendentemente dall'autore di un testo di dati XML, è inoltre possibile usare gli stessi dati in diverse applicazioni di Microsoft Office. Grazie alla portabilità, l'XML è ormai una delle tecnologie più diffuse per lo scambio di dati tra database e desktop degli utenti.
Oltre a dati ben formati delimitati da tag, i sistemi XML usano in genere due componenti aggiuntivi: schemi e trasformazioni. Le sezioni seguenti descrivono il funzionamento di questi componenti.
Breve introduzione agli schemi
Non lasciarti intimidire dal termine "schema". Uno schema è semplicemente un file XML che contiene le regole per ciò che può e non può risiedere in un file di dati XML. I file di schema utilizzano in genere l'estensione XSD, mentre i file di dati XML utilizzano l'estensione .xml.
Gli schemi consentono alle applicazioni di convalidare i dati. Forniscono il framework per strutturare i dati e verificare che abbiano senso per l'autore e per tutti gli altri utenti. Se un utente immette dati non validi, ad esempio testo in un campo data, l'applicazione può richiedere l'immissione dei dati corretti. Purché i dati del file XML siano conformi alle regole di un determinato schema, qualsiasi applicazione che supporti l'XML può usare tale schema per leggere, interpretare ed elaborare i dati. Ad esempio, come illustrato nella figura seguente, Excel può convalidare i <CAT> dati in base allo schema CAT.
Gli schemi possono diventare complessi, ma la spiegazione su come crearli esula dagli scopi di questo articolo. (Inoltre, probabilmente hai un reparto IT che sa come fare.) Tuttavia, è utile conoscere l'aspetto degli schemi. Lo schema seguente definisce le regole per il <CAT> ... <Set di tag /CAT> .
<xsd:element name="CAT">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NAME" type="xsd:string"/>
<xsd:element name="BREED" type="xsd:string"/>
<xsd:element name="AGE" type="xsd:positiveInteger"/>
<xsd:element name="ALTERED" type="xsd:boolean"/>
<xsd:element name="DECLAWED" type="xsd:boolean"/>
<xsd:element name="LICENSE" type="xsd:string"/>
<xsd:element name="OWNER" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Non preoccuparti di capire tutto nel campione. Tieni a mente questi fatti:
- Le voci dello schema di esempio sono denominate dichiarazioni. Se sono necessarie maggiori informazioni su un animale, ad esempio il colore o il tipo di mantello, il reparto IT può aggiungere una dichiarazione allo schema. È possibile modificare il sistema XML in base al mutare delle esigenze aziendali.
- Le dichiarazioni offrono un notevole controllo sulla struttura dei dati. Ad esempio, la
<xsd:sequence>dichiarazione significa che i tag, come<NAME>e<BREED>, devono essere presenti nell'ordine in cui sono elencati sopra. Le dichiarazioni controllano inoltre il tipo di dati che gli utenti possono immettere. Lo schema precedente richiede ad esempio un numero positivo per l'età del gatto e valori booleani (TRUE o FALSE) per i tag ALTERED e DECLAWED. - Se i dati di un file XML sono conformi alle regole fornite in uno schema, tali dati sono considerati validi. Il processo di controllo di un file di dati XML rispetto a uno schema è denominato convalida. Il maggior vantaggio associato all'uso degli schemi è che consentono di impedire il danneggiamento dei dati. Gli schemi semplificano inoltre l'individuazione di dati danneggiati, in quanto il codice XML si interrompe quando rileva un problema.
Breve introduzione alle trasformazioni
Come accennato in precedenza, il linguaggio XML consente inoltre di usare o il riutilizzare i dati in vari modi efficaci. Il meccanismo per il riutilizzo dei dati è denominato XSLT (Extensible Stylesheet Language Transformation) o, più semplicemente, trasformazione.
È possibile usare le trasformazioni anche per scambiare dati tra sistemi back-end, ad esempio i database. Ad esempio, supponiamo che il database A memorizzi i dati di vendita in una struttura di tabella adatta al reparto vendite. Il database B archivia i dati di ricavi e spese in una struttura di tabella personalizzata per il reparto contabilità. Database B può usare una trasformazione per accettare dati da A e scrivere tali dati nelle tabelle corrette.
La combinazione di file di dati, schema e trasformazione costituisce un sistema XML di base. La figura seguente mostra il funzionamento tipico di tale sistema. Il file di dati viene convalidato rispetto allo schema e quindi restituito in un numero qualsiasi di modi utilizzabili da una trasformazione. In questo caso, la trasformazione distribuisce i dati in una tabella di una pagina Web.
L'esempio seguente illustra uno dei modi disponibili per scrivere una trasformazione. Carica i <dati CAT> in una tabella in una pagina Web. Anche in questo caso, scopo dell'esempio non è dimostrare come scrivere una trasformazione, ma solo illustrare una delle forme che può assumere.
<?xml version="1.0"?>
<xsl:stylesheet version="1.0">
<TABLE>
<TR>
<TH>Name</TH>
<TH>Breed</TH>
<TH>Age</TH>
<TH>Altered</TH>
<TH>Declawed</TH>
<TH>License</TH>
<TH>Owner</TH>
</TR>
<xsl:for-each select="CAT">
<TR ALIGN="LEFT" VALIGN="TOP">
<TD>
<xsl:value-of select="NAME"/>
</TD>
<TD>
<xsl:value-of select="BREED"/>
</TD>
<TD>
<xsl:value-of select="AGE"/>
</TD>
<TD>
<xsl:value-of select="ALTERED"/>
</TD>
<TD>
<xsl:value-of select="DECLAWED"/>
</TD>
<TD>
<xsl:value-of select="LICENSE"/>
</TD>
<TD>
<xsl:value-of select="OWNER"/>
</TD>
</TR>
</xsl:for-each>
</TABLE>
Questo esempio mostra l'aspetto che un tipo di trasformazione potrebbe apparire quando è codificato, ma ricorda che puoi semplicemente descrivere ciò di cui hai bisogno dai dati in un inglese semplice. Ad esempio, puoi andare al tuo reparto IT e dire che devi stampare i dati di vendita per particolari regioni degli ultimi due anni, "e ho bisogno che appaiano in questo modo". Il reparto IT può quindi scrivere (o modificare) una trasformazione per eseguire tale operazione.
L'aspetto più interessante è che Microsoft e un numero crescente di altri fornitori continuano a creare trasformazioni per tutti i tipi di lavoro. In futuro si potrà probabilmente scaricare una trasformazione che soddisfi specifiche esigenze o da adattare a un determinato scopo. Questo significa che nel corso del tempo usare il codice XML sarà sempre meno costoso.
XML e Microsoft Office System
Le edizioni Professional di Office forniscono un supporto completo per XML. Microsoft Office utilizza i formati di file basati su XML, ad esempio .docx, .xlsx e .pptx. Dal momento che i dati XML vengono memorizzati in un formato di testo anziché in un formato binario proprietario, i clienti possono definire schemi personalizzati e usare i dati in più modi, a titolo gratuito. Per ulteriori informazioni sui nuovi formati, vedere Formati Open XML ed estensioni di file. Altri vantaggi includono:
- Dimensioni ridotte dei file. Il nuovo formato usa ZIP e altre tecnologie di compressione per ridurre le dimensioni dei file di una percentuale che può arrivare al 75% rispetto ai formati binari usati nelle versioni precedenti di Office.
- Recupero più facile delle informazioni e maggiore sicurezza. L'XML è un linguaggio leggibile dall'uomo, quindi se un file si danneggia è possibile aprirlo in Blocco note o in un altro lettore di testo e recuperare almeno in parte le informazioni. I nuovi file sono inoltre più sicuri, perché non possono contenere codice di Visual Basic, Applications Edition (VBA). Se si usa il nuovo formato per creare modelli, gli eventuali controlli ActiveX e macro VBA risiedono in una sezione distinta, più protetta, del file. È inoltre possibile usare strumenti come Controllo documento per rimuovere eventuali dati personali. Per ulteriori informazioni sull'utilizzo di Controllo documento, vedere l'articolo Rimuovere dati nascosti e informazioni personali tramite il controllo dei documenti.
Fin qui tutto bene, ma cosa succede se si dispone di dati XML senza schema? Le applicazioni di Office che supportano XML hanno approcci specifici per facilitare l'uso dei dati. Ad esempio, Excel deduce uno schema se si apre un file XML che non ne ha già uno. Excel offre quindi la possibilità di caricare questi dati in una tabella XML. È possibile usare gli elenchi e le tabelle XML per ordinare, filtrare o aggiungere calcoli ai dati.
Abilitare gli strumenti XML in Office
La scheda Sviluppo non viene visualizzata per impostazione predefinita, ma è necessario aggiungerla alla barra multifunzione ogni volta che si vogliono usare i comandi XML in Office. Vedere Mostra la scheda Sviluppo.