# XML/Introduzione

XML
Copertina Tutti i moduli · Sviluppo
PrefazioneXML/Prefazione
* IntroduzioneXML/Introduzione
* Entità singoleXML/Entità singole
* Strutture dati di baseXML/Strutture dati di base
* Relazione uno-moltiXML/Relazione uno-molti
* Relazione uno-unoXML/Relazione uno-uno
* Relazione molti-moltiXML/Relazione molti-molti
* Relazioni ricorsiveXML/Relazioni ricorsive
* Schemi di datiXML/Schemi di dati
* Document Type Definition (DTD)XML/DTD
* XHTMLXML/XHTML
* XPathXML/XPath
* XLinkXML/XLink
* CSSXML/CSS
* XSLT e fogli di stileXML/XSLT e fogli di stile
* CocoonXML/Cocoon
* Parsing di file XMLXML/Parsing di file XML
* XULXML/XUL
* Asynchronous JavaScript and XML (AJAX)XML/AJAX
* Web serviceXML/Web service
* XMLHttpRequestXML/XMLHttpRequest
* Database e XMLXML/Database e XML
* SVGXML/SVG
* VoiceXMLXML/VoiceXML
* DocBookXML/DocBook
* SMILXML/SMIL
* XBRLXML/XBRL
* WDDX
* RPCXML/RPC
* RDFXML/RDF - Resource Description Framework
* RSSXML/RSS
* NamespaceXML/Namespace
* Gestire XML con MySQL
* XML EncryptionXML/XML Encryption
* XQueryXML/XQuery
* XML e JDBC
* XFormsXML/XForms
* OpenOffice.org e l'OpenDocument FormatXML/OpenOffice.org e l'OpenDocument Format
* KML e Google EarthXML/KML
* Lo standard ACORD - XML nel settore delle assicurazioniXML/ACORD
Modifica il sommario
chiudi indice
Obiettivi di apprendimento

## Introduzione

Ci sono quattro problemi fondamentali nella gestione dati: acquisizione, memorizzazione, recupero e interscambio. Lo scopo di questo testo è quello di illustrare lo standard XML, una tecnologia utilizzata per l'interscambio dei dati. I capitoli sui fondamenti di XML in questo libro sono strutturati in base a un approccio a 'modello di dati'. Il primo capitolo introduce il lettore al documento XML, allo schema XML, e al foglio di stile XML con un esempio a entità singola. I capitoli successivi si espandono oltre le basi di XML attraverso esempi ad entità multipla e a relazione uno-uno, relazione uno-molti o relazione molti-molti.
XML è uno strumento per l'interscambio di dati. Tale interscambio è sempre stato importante per l'information technology, ma l'avvento di Internet ne ha accresciuto l'importanza. Lo standard per lo scambio dati fra grandi organizzazioni, chiamato Electronic data interchange (EDI), sta per essere soppiantato da XML, che si afferma sempre più come standard per lo scambio dati fra applicazioni per organizzazioni di ogni dimensione.
EDI riguarda lo scambio elettronico di informazioni commerciali conformi ad uno standard. Un formato con una struttura ben definita viene utilizzato per scambiare documenti di uso comune (ad esempio cataloghi e ordini di spedizione) fra partner commerciali. Rispetto all'uso delle email, EDI viene utilizzato per lo scambio di documenti ripetitivi utilizzati nel lavoro di routine, e il fatto che sia definito come standard permette a tali transazioni di essere concise e precise. Lo standard più utilizzato in USA e Canada è noto come X.12, mentre quello più utilizzato a livello internazionale è EDIFACT. Le aziende che utilizzano uno stesso standard sono in grado di condividere elettronicamente informazioni in loro possesso.
Internet è una rete diffusa in tutto il pianeta e potenzialmente accessibile da qualunque azienda con costi di comunicazione normalmente inferiori a quelli richiesti dall'EDI tradizionale. Pertanto Internet è diventato il canale elettivo per il trasporto di dati elettronici tra partner commerciali. L'approccio più semplice consiste nell'utilizzare Internet come mezzo per la trasmissione di documenti EDI, mentre un approccio differente consiste nel ripensare le tecnologie di interscambio dati, cercando di capire i limiti di EDI, una tecnologia sviluppata negli anni Sessanta. Uno dei risultati derivanti da tale ripensamento è l'XML, ma prima di trattarlo è necessario capire cosa sia SGML, da cui XML deriva.

## SGML

Per una tipica impresa statunitense, si stima che la gestione documentale consumi il 15 percento rispetto a ciò che frutta, quasi il 25 percento dei costi di elaborazione e comunque fra il 10 e il 60 percento del tempo di un impiegato. Lo Standard Generalized Markup Language (SGML) è progettato per ridurre i costi e per incrementare l'efficienza della gestione documentale.
Un linguaggio di markup contiene le informazioni relative ad un documento all'interno del documento stesso. Nell'esempio che segue, le etichette di markup indicano che il testo riguarda dettagli su una città. Notate inoltre che il nome della città, lo stato e la popolazione sono identificate da etichette di markup specifiche. Perciò a chi legge il documento, sia esso una persona o un computer, non restano dubbi sul significato di Athens, Georgia, oppure 100,000. Notate inoltre che latitudine e longitudine della città sono identificate esplicitamente da apposite etichette. L'utilità di SGML è dovuta sia al testo sia alle informazioni che esso contiene sul significato delle parti del testo.
Esempio 1: Markup language
SGML è uno standard internazionale (ISO 8879) indipendente dal singolo fornitore di software, e il suo scopo è proprio quello di definire la struttura dei documenti. Sviluppato a partire dal 1986 come metalinguaggio, ha poi dato origine sia al sistema di codifica HTML, usato nel web, sia all'XML. Poiché i documenti SGML sono codificati cone semplice documento testuale, viene garantita la possibilità di accedervi da sistemi informatici di tipo differente. Al veloce mutare della tecnologia questa caratteristica garantisce comunque una buona stabilità dei sistemi basati su SGML per la gestione dell'interscambio dei dati. Inoltre un documento SGML può essere trasformato per essere pubblicato su molti media di tipo diverso, in quanto l'informazione testuale mantiene una totale indipendenza dal sistema e dalle modalità con cui viene presentato: avere i dati in un formato standard e indipendente dal sistema di presentazione comporta un beneficio a lungo termine per qualunque organizzazione.
L'uso di SGML presenta tre principali vantaggi nella gestione dei dati:
* Riuso: l'informazione può essere creata in un unico modo ma riutilizzata molte volte.
* Flessibilità: i documenti SGML possono essere pubblicati in diversi formati. Lo stesso contenuto può essere stampato, pubblicato sul web, interpretato e letto da un programma di sintesi vocale. Poiché inoltre la codifica SGML è rivolta solo alla organizzazione dei contenuti, le decisioni sul formato di output possono anche essere prese in un secondo momento.
* Revisioni: SGML permette di eseguire revisioni e controllo delle versioni. Questo permette di seguire i cambiamanti avvenuti all'interno del documento e di ricostruirne la storia.
Una piccola porzione di codice SGML è sufficiente a mostrarne con chiarezza le possibilità e la robustezza (vedi Esempio 2). Le etichette che circondano le parti di testo ne descrivono il significato e ne determinano la funzione nel momento in cui deve esserne definita la presentazione o si vogliono ricercare dei dati. Ad esempio le etichette <airline> e </airline> che circondano il termine “Delta” identificano la linea aerea che gestisce un volo nel seguente esempio:
Esempio 2: un brano in SGML
Questo codice SGML può essere presentato in modi diversi attraverso l'utilizzo di un foglio di stile da definire. Ad esempio può essere presentato come
oppure come
| Airline | Flight | Origin | Destination | Departure | Arrival |
| Delta | 22 | Atlanta | Paris | 5:40pm | 8:10am |
Se i dati fossero memorizzati in formato HTML e presentati attraverso un sito web (come quelli dell'esempio 3), il significato dei dati dovrebbe essere ricostruito mentalmente dal lettore. Per gli uomini tale operazione è abbastanza comune, ma molto complessa per le macchine. Inoltre il formato di presentazione è fisso e solo riscrivendo il codice potrà essere modificato. Per maggiori dettagli sul codice HTML può essere consultato il capitolo specifico tratto dal testo WikiBook programming in XHTML, che tratta della possibilità di uniformare il codice HTML allo standard XML.
Esempio 3: presentazione di un testo scritto in HTML
Senso e presentazione dovrebbero essere resi indipendenti, e in questo sicuramente il codice SGML dimostra di essere più potente dell'HTML.
   SGML è un linguaggio di markup che definisce la struttura di un documento ed è preferibile rispetto all'HTML in quanto può essere presentato con diverse modalità su diversi tipi di media.

## XML

Molti sistemi informatici gestiscono dati con formati fra loro incompatibili. Spesso l'interscambio di dati fra sistemi differenti richiede molto tempo, e non sempre si ottengono i risultati desiderati. XML è un formato generico per la memorizzazione di dati informatici che viene oggi supportato da diversi strumenti e tecnologie e dovrebbe semplificare lo scambio di specifiche 'applicazioni' XML fra sistemi prima incompatibili. Poiché il formato XML è aperto e generico, ci si aspetta che col tempo molte organizzazioni e molte persone passeranno ad utilizzare XML, sia che crea il software sia chi si limita ad utilizzarlo, facendo così diventare l'XML la tecnologia principale per lo scambio di particolari tipologie di dati.
L'XML non viene utilizzato solo per l'interscambio di informazioni, ma può essere utilizzato anche per la pubblicazione di pagine web. La sua sintassi molto precisa permette infatti di creare contenuti snelli per browser web leggeri e veloci e quindi ben si adatta all'uso con w:Palmare e w:telefono cellulare. I browser che interpretano documenti HTML, d'altro canto, richiedono una programmazione molto complessa e ingombrante per compensare il fatto che il codice HTML può essere scritto con molte imprecisioni.
Il tipo di dati che ben si adatta alla codifica XML è quello dove i dati di un certo tipo hanno lunghezze imprecisate, non prevedibili, e dove questi dati sono principalmente di tipo testuale.
Uno schema di dati XML permette di scambiare informazioni definendo una struttura standardizzata dei dati. Lo schema serve a definire delle etichette di markup personalizzate dal singolo utilizzatore, nonché gli attributi utili a descrivere i contenuti racchiusi nelle etichette così definite. L'informazione così rappresentata con dati racchiusi fra etichette potrà essere estratta da una specifica applicazione denominata "parser" e tramite l'aggiunta di un foglio di stile XML i dati potranno essere formattati e pubblicati in una pagina web.
La potenzialità dell'XML risiede nella combinazione di etichette personalizzate e contenuto all'interno di un particolare documento XML. Lo scopo dell'eXtensible Markup Language (XML) è creare informazioni che contengano anche la descrizione di se stesse. Basato sul SGML, XML è progettato per il commercio elettronico. La definizione dell'XML, stabilita fin dal 1998 dal World Wide Web Consortium, è metalinguaggio, ovvero un linguaggio che genera linguaggi. XML dovrebbe pian piano sostituire HTML in molti siti web grazie ad alcuni vantaggi. Le differenze principali fra i due linguaggi sono presentate nella seguente tabella.
Esempio 4: XML vs HTML
| XML | HTML |
| Contiene informazioni e la loro descrizione | Presenta delle informazioni in un formato definito |
| Etichette personalizzabili | Etichette predefinite |
| Linguaggio per lo scambio di informazioni | Linguaggio per la presentazione di informazioni |
| Grandi possibilità di collegamenti ipertestuali | Limitate possibilità di link ipertestuali |
Il termine "eXtensible" nell'acronimo XML significa che un nuovo linguaggio per lo scambio di informazioni può essere creato definendone struttura e etichette. Ad esempio l'OpenGIS Consortium ha progettato un Geographic Markup Language (GML) per facilitare lo scambio di informazioni geografiche. In modo analogo l' Open Tourism Consortium sta lavorando alla definizione dello standard TourML per supportare lo scambio di informazioni turistiche. Un altro buon esempio di XML in fase di applicazione è il NewsML™.
In questo testo verranno presi in considerazione tutti gli aspetti di XML, ma a questo punto introduciamo solo alcune caratteristiche fondamentali.
Applicazioni di XML:
Prima di iniziare a vedere come è strutturato un documento XML, vediamo per cosa può essere utilizzato XML. Le quattro più importanti implementazioni di XML sono:
Pubblicazione: Il contenuto di un database può essere convertito in XML e in seguito in HTML usando un XSLT foglio di stile. Con questa tecnica possono essere generati complessi siti web così come materiale per la stampa come i file PDF. Non è più necessario salvare l'informazione in diversi formati (es: RTF, DOC, PDF, HTML). Il contenuto può essere immagazzinato in un formato neutrale come XML e poi, attraverso appropriati fogli di stile e trasformazioni, è possibile generare opuscoli, siti web o liste di dati (Per maggiori informazioni si veda Chapter 17.)
Un esempio delle potenzialità di XML e XSLT è il sito http://www.emimusic.de: Questo sito web contiene circa 20,000 pagine contenenti i profili degli artisti, i loro prodotti e i titoli delle canzoni. Le pagine sono generate da uno script XSLT. In base allo script scelto è anche possibile creare un catalogo in formato PDF. Si veda più sotto per maggiori informazioni.
Interazione: XML può essere usato per accedere ai dati e modificarli in modo interattivo. Questa comunicazione uomo>macchina avviene di solito tramite un browser web (si veda Chapter 12).
Integrazione: Tramite l'XML è possibile integrare applicazioni sia omogenee che eterogenee. In questo caso, l'XML viene usato per descrivere i dati, le interfacce e i protocolli. Questa comunicazione macchina-macchina serve a integrare i database relazionali (ad esempio importando ed esportando diversi formati).
Transazione: XML permette di gestire le transazioni in applicazioni come i mercati online, la gestione della catena di fornitura, e i sistemi di e-procurement.

### Caratteristiche fondamentali di XML

* Ogni elemento deve avere un tag di apertura e uno di chiusura
* Gli elementi sono disposti secondo una gerarchia ad albero ben definita, che origina da un unico elemento "root" (radice)
* Ogni elemento non può sovrapporsi parzialmente ad altri elementi
* Ogni nome di elemento deve obbedire alle convenzioni prestabilite di XML
* XML distingue fra lettere minuscole e maiuscole
XML è pensato per migliorare l'efficienza con cui avvengono gli scambi di dati in tanti modi, tra cui:
* scrivere una volta e formattare molte volte: una volta creato un file XML, i dati al suo interno possono essere presentati con modalità differenti attraverso l'utilizzo di un XML stylesheet (foglio di stile). Ad esempio, l'informazione contenuta nel file potrà essere presentata in un modo sul web, in un altro per la stampa pensata su supporto cartaceo.
* indipendenza da hardware e software: I file XML sono file di testo standard, il che significa che possono essere letti su qualunque sistema operativo.
* scrivi una volta e scambia molte volte: stabilito uno standard XML in un settore produttivo al fine di supportare lo scambio di dati, tutti gli operatori del settore possono liberamente utilizzarlo per lo scambio immediato di informazioni.
* Ricerca sul Web più veloce e precisa: quando il senso veicolato dall'informazione può essere capito anche da un computer (attraverso la lettura dei tag), la ricerca Web risulterà molto più efficiente. Ad esempio nella ricerca di un libro con un determinato titolo, il computer potrà eseguire la ricerca mirata sul testo compreso fra i tag <booktitle> e </booktitle> piuttossto che cercare su tutto il file di dati. In tal modo si dovrebbe evitare anche la maggior parte dei risultati che non riguardano la nostra specifica ricerca.

### 10 ragioni per usare XML

* XML è uno standard aperto largamente accettato.
* XML permette di separare chiaramente il contenuto dalla forma (aspetto).
* XML è testuale.
* XML è estensibile.
* XML si definisce da solo.
* XML è universale; dunque l'internazionalizzazione non è un problema.
* XML è indipendente dalle piattaforme e dai linguaggi di programmazione.
* XML fornisce un formato robusto e durevole per la memorizzazione delle informazioni.
* XML è facilmente trasformabile.
* XML è una tecnologia orientata al futuro.

### I principali componenti di XML

I principali componenti di XML sono:
* XML document: un file XML che contiene del codice XML.
* XML schema: uno schema è un file XML all'interno del quale viene descritta la struttura di un documento e i tag contenuti al suo interno.
* XML stylesheet: uno stylesheet è un file XML che contiene le istruzioni su come presentare i dati contenuti all'interno di un file XML.
Nei capitoli che seguono, verrà mostrato come creare e utilizzare ognuno di questi componenti.

### Creare un markup file

Qualsiasi text editor (programma di scrittura per computer che permette di leggere e salvare documenti in formato Solo testo [*.txt]) può venire utilizzato per creare un file XML o HTML, in generale un markup file. In questo libro si è scelto di utilizzare un programma chiamato NetBeans, con licenza open source, sviluppato come Integrated Development Environment (IDE) per realizzare applicazioni Java, poiché NetBeans permette non solo di scrivere file XML ma anche di verificarne la corretta sintassi (validazione). Prima di procedere, si richiede quindi di scaricare e installare NetBeans dal sito www.NetBeans.org.

### Alternative a Netbeans

Gli esempi qui riportati utilizzano Netbeans per lo sviluppo di codice XML corretto. Se vi interessa un'alternativa a Netbeans, consultate la voce Exchanger XML Lite come alternativa a NetBeans.

## Implementazione di XML: alcuni case study
### XML all'United Parcel Service (UPS)

“UPS è un'azienda di servizi il cui successo dipende da scalabilità e velocità,” dice Geoff Chalmers, Project Leader presso il Dipartimento eSolutions di UPS. Nel 2003, UPS ha avuto un reddito annuale di $33.5 miliardi e 357,000 impiegati in tutto il mondo. Il sei per cento del Prodotto Interno Lordo (PIL) degli Stati Uniti per ogni giorno è presente nel sistema UPS.
UPS fa un ampio uso della tecnologia. Il dipartimento Sistemi informativi ha 4,000 impiegati. Il sito web dell'azienda ha 166 diverse home page nazionali ed è supportato da 44 applicazioni.
UPS consegna circa 13 milioni di pacchi ogni giorno, e i clienti possono tenere d'occhio queste consegne attraverso il sito web dell'UPS, che riceve circa 200 milioni di visite giornaliere. Tra le applicazioni utilizzate da ups.com diciannove sono applicazioni XML OnLine Tool (Web service).
Gli strumenti online di UPS sono sviluppati in modo specifico per essere integrati con le applicazioni dei clienti. Questo rende il compito del cliente più semplice, facile e veloce. UPS ha verificato l'importanza della velocità e della semplicità attraverso “CampusShip,” uno dei prodotti di maggiore successo di UPS negli ultimi 10 anni. UPS CampusShip® è un sistema di spedizioni Web-based ospitato da UPS. Attraverso una connessione Internet, gli impiegati possono spedire i propri pacchi e lettere da qualsiasi scrivania, mentre i dirigenti conservano un controllo generale sulle attività di spedizione. UPS CampusShip® permette di rendere possibile simultaneamente l'autonomia di chi spedisce e il controllo dei costi da parte dei quadri dirigenti all'interno dell'organizzazione. Questo prodotto deve il suo successo al fatto che non sono richiesti né l'installazione di software né assistenza ed è inoltre veloce da implementare. XML Online Tools ha reso possibile un'evoluzione di CampusShip® a costi contenuti e in tempi rapidi.
UPS è a favore di XML specialmente perché è 'agnostico', ovvero indipendente dalla piattaforma e dal linguaggio utilizzati. Queste caratteristiche rendono XML molto flessibile e potente. È anche sganciato da altri software (Decoupling) e scalabile. XML ha consentito a UPS di puntare a un mercato più ampio e di ridurre le interazioni con i clienti, e di conseguenza il costo del servizio clienti. Un'altra caratteristica positiva di XML è la sua retrocompatibilità. L'adozione di XML ha ridotto in modo significativo i costi di manutenzione, implementazione e uso all'interno di UPS.
Questi vantaggi hanno però un prezzo. “XML è inefficiente in vari modi” afferma Chalmers. Purtroppo XML occupa più risorse di CPU e di banda rispetto alle altre tecnologie. D'altra parte la larghezza di banda e la CPU costano poco e il loro prezzo scende ogni giorno, dunque si tratta di un problema che sta gradualmente scomparendo.
Tuttavia, Chalmers ritiene anche che XML non funzioni bene nei database. Sostiene che è troppo verboso e che è un medium di scambio piuttosto che un medium per database. Ci sono stati alcuni primi tentativi di integrare strettamente XML e i database. Dal momento che i database forniscono struttura e identificazione ai dati come fa XML, il valore aggiunto dell'integrazione XML-database è limitata alla possibilità di applicare una struttura gerarchica. D'altra parte, se i dati devono essere immagazzinati come blob, allora XML ha senso. Un altro problema che sottolinea a proposito di XML è che le regole di business non possono essere espresse negli XML schema.
Infine, la programmazione e il debugging di XML grezzo può essere impegnativo. Quindi le imprese clienti di UPS stanno iniziando a esplorare i generatori di codice e le funzionalità interne che si possono trovare in .NET e BEA. Comunque, la scrittura a mano del codice da parte di esperti ingegneri interni all'azienda è obbligatoria per garantire l'alta disponibilità, scalabilità e performance che UPS richiede per gli UPS OnLine Tools.

### XML presso EMI Music

Come viene usato?
EMI Music Germany GmbH & Co. KG, una famosa etichetta discografica tedesca, mostra sul suo sito web le informazioni sugli artisti ad essa associati. I visitatori possono esplorare tutte le loro produzioni audio o video. L'intero sito comprende circa 20,000 pagine che contengono informazioni sugli artisti e i loro prodotti (CD, DVD, LP). Tutto è collegato in modo appropriato e raggruppato in modo sistematico.
Dopo tutto occorre fornire dati per ogni artista, gli album, i sample, le immagini, le descrizioni e i codici dell'articolo. Il sito viene aggiornato ogni giorno ed è soggetto al cambiamento da parte di un editor web ogniqualvolta sia necessario. Si tratta quindi di un quantitativo di dati piuttosto ampio e complesso da gestire.
E qui entra in gioco XML. I dati, immagazzinati in un database, sono stati trasformati in codice XML. Poi un foglio di stile XSLT converte questi dati in codice HTML, che può essere letto facilmente da qualsiasi browser web (ad esempio, Internet Explorer o Firefox).
Qual è il vantaggio? Il vantaggio di XML è che lo sforzo di programmazione è considerevolmente minore in confronto a quello richiesto da altri formati. Questo è dovuto al fatto che XML si trova in un punto di intersezione tra XSLT e HTML.
Inoltre non è un problema per l'editor web aggiornare il sito. XML semplifica la vita alla persona responsabile per questo grosso quantitativo di dati.
Andare oltre… Grazie agli script XML finora prodotti dalla EMI Music, l'azienda può produrre facilmente un catalogo in formato PDF o creare pagine che supportino il protocollo i-Mode per l'attuale generazione di telefoni cellulari. Grazie a XML, si può fare con pochissimo lavoro ulteriore.

## Una breve storia di XML

Verso la fine degli anni Sessanta Charles Goldfarb, Raymond Lorie e Edward Mosher - tutti alle dipendenze di IBM - iniziarono a sviluppare GML (Generalized Markup Language), un linguaggio di formattazione del testo. Il linguaggio venne utilizzato con successo per le procedure di documentazione interna. Come era abituale, la modifica del documento veniva attuata in modalità batch. GenCode, un'altra procedura per definire codici generici di formattazione per i sistemi di composizione tipografica di vari produttori di software, venne sviluppato dal GCA (Graphic Communications Association) all'incirca nello stesso periodo. Entrambe queste tecnologie, GML a livello sintattico e GenCode a livello semantico, hanno fornito la base per lo sviluppo di SGML (Standard Generalized Markup Language). Il processo di standardizzazione ebbe inizio presso l'istituto di standardizzazione statunitense ANSI all'inizio degli anni 80 e nel 1996 SGML è finalmente diventato uno standard ISO (ISO2879:1986).
SGML è considerato un linguaggio complesso e completo (le specifiche si estendono per 500 pagine). Infatti il successo dell'HTML (Hyper Text Markup Language) ha confermato che i concetti elaborati da SGML erano validi. Il linguaggio HTML, basato su SGML, è stato sviluppato da Tim Berner-Lee a Ginevra all'inizio degli anni Novanta con l'obiettivo di dare una grafica e delle capacità di collegamento (link) ai documenti presenti su Internet. Nel frattempo l'HTML si è sviluppato fino a diventare il formato di maggior successo per tutti i documenti elettronici. Internet è stata progettata originariamente come uno spazio per la comunicazione uomo-uomo e uomo-macchina, ma recentemente la comunicazione macchina-macchina ha acquisito un'importanza fondamentale, ponendo una sfida completamente nuova in merito ai linguaggi da utilizzare.
HTML è un linguaggio descrittivo per la presentazione di documenti. L'attenzione principale è rivolta alla presentazione, nel senso che un documento HTML mescola i dati presentati con l'istruzione sulla loro formattazione. Un essere umano può riconoscere il significato di ciò che viene mostrato grazie agli elementi visivi e al significato contestuale; una macchina, o meglio, un software, non ne è capace.
Nel 1996 venne fondato un gruppo – nato all'interno del W3C-consortium e guidato da Jos Bosak – per rendere SGML adatto al web. Il risultato fu una specifica di 30 pagine, che ha ricevuto nel Febbraio del 1998 lo status di "W3C-recommendation" e venne chiamata "Extensible Markup Language (XML)".
I più importanti obiettivi nello sviluppo di XML erano:
* XML deve essere compatibile con SGML
* XML deve essere facile da usare in Internet
* Il numero di caratteristiche opzionali deve essere ridotto al minimo
* XML-document: deve essere facilmente generabile e leggibile dall'uomo
* XML deve essere supportato da una varietà di applicazioni
* Deve essere facile scrivere programmi per XML
* XML deve essere messo in pratica in un tempo ragionevole
Nella terminologia dei linguaggi di markup, una descrizione formulata in XML viene chiamata XML-document, sebbene il contenuto non abbia niente a che fare con l'elaborazione del testo.

## Perché questo libro non è un documento XML?

Se avete percorso il senso dei concetti presentati in questo capitolo, la questione è pertinente. La semplice motivazione è che la tecnologia per creare un libro con tecnologia "open" in XML non è ancora disponibile. Sono necessari infatti tanti piccoli componenti a tal fine:
* Un dialetto XML per descrivere un libro. DocBook è un linguaggio che farebbe allo scopo, ma la struttura di un libro è molto complessa, e DocBook (che rispetta questa complessità) richiede per ora un lungo lavoro per essere adottato come formato per un "open book"
* Un Wiki che supporti il formato dei DocBook
* Un foglio di stile XML che converta l'XML/Docbook in codice HTML adeguato per mostrare i contenuti del libro
Esiste un progetto per definire un WikiMl (Wiki MarkupLanguage), che potrà essere utilizzato in un prossimo futuro.