# Origine e Obiettivi

L'Extensible Markup Language (XML) e' un (meta)linguaggio che permette di creare dei linguaggi personalizzati di markup; nasce dall'esigenza di portare nel World Wide Web lo Standard Generalized Markup Language (SGML), lo standard internazionale per la descrizione della struttura e del contenuto di documenti elettronici di qualsiasi tipo; ne contiene quindi tutta la potenza, ma non tutte le complesse funzioni raramente utilizzate. Si caratterizza per la semplicita' con cui e' possibile scrivere documenti, condividerli e trasmetterli nel Web.

L'utilizzo di XML permette di superare il grosso limite attuale del Web, che e' quello della dipendenza da un tipo di documento HTML, singolo e non estensibile. Questo linguaggio e' nato per permettere agli utenti del World Wide Web di condividere le informazioni su sistemi differenti; il presupposto era che quelle informazioni fossero testo con al piu' alcune immagini e collegamenti ipertestuali. Attualmente pero', le informazioni sul World Wide Web sono database di testo, immagini, suoni, video, audio. Quindi l'HTML e' stato chiamato sempre piu' di frequente a fornire soluzioni a problemi che non aveva lo scopo di risolvere, come dover descrivere tipi differenti e specifici di informazioni, definire relazioni complesse di collegamenti fra documenti, trasmettere informazioni in diversi formati. Per superare questi problemi, sono state create delle estensioni dell'HTML, spesso fra loro incompatibili.

L'XML permette a gruppi di persone o ad organizzazioni di creare il proprio linguaggio di markup, specifico per il tipo di informazione che trattano; per molte applicazioni e per diversi settori, gli esperti hanno gia' creato linguaggi di markup specifici, come ad esempio il Channel Definition Format, il Mathematical Markup Language ed altri (vedi Fig.1).

Fig.1 : L'XML permette di scrivere linguaggi di markup

XML fu sviluppato da XML Working Group (originariamente noto come SGML Editorial Review Board) costituitosi sotto gli auspici del World Wide Web Consortium (W3C) nel 1996. Esso era presieduto da Jon Bosak della Sun Microsystems con la partecipazione attiva dell'XML Special Interest Group (precedentemente noto come SGML Working Group) anch'esso organizzato dal W3C.

L'obiettivo di questo gruppo di lavoro era di portare il linguaggio SGML nel Web. L'SGML e' un linguaggio per la specifica dei linguaggi di markup ed e' il genitore del ben noto HTML.

La progettazione dell'XML venne eseguita esaminando i punti di forza e di debolezza dell'SGML. Il risultato e' uno standard per i linguaggi di markup che contiene tutta la potenza dell'SGML ma non tutte le funzioni complesse e raramente utilizzate. L'XML venne mostrato per la prima volta al pubblico quando l'SGML celebro' il suo decimo anno.

## Gli obiettivi progettuali di XML

1. XML deve essere utilizzabile in modo semplice su Internet: in primo luogo, l'XML deve operare in maniera efficiente su Internet e soddisfare le esigenze delle applicazioni eseguite in un ambiente di rete distribuito.
2. XML deve supportare un gran numero di applicazioni: deve essere possibile utilizzare l'XML con un'ampia gamma di applicazioni, tra cui strumenti di creazione, motori per la visualizzazione di contenuti, strumenti di traduzione e applicazioni di database.
3. XML deve essere compatibile con SGML: questo obiettivo e' stato definito sulla base del presupposto che un documento XML valido debba anche essere un documento SGML valido, in modo tale che gli strumenti SGML esistenti possano essere utilizzati con l'XML e siano in grado di analizzare il codice XML.
4. Deve essere facile lo sviluppo di programmi che elaborino documenti XML: l'adozione del linguaggio e' proporzionale alla disponibilita' di strumenti e la proliferazione di questi e' la dimostrazione che questo obiettivo e' stato raggiunto.
5. Il numero di caratteristiche opzionali deve essere mantenuto al minimo possibile: al contrario dell'SGML, l'XML elimina le opzioni, in tal modo qualsiasi elaboratore potra' pertanto analizzare qualunque documento XML, indipendentemente dai dati e dalla struttura contenuti nel documento.
6. I documenti XML dovrebbero essere leggibili da un utente e ragionevolmente chiari : poiche' utilizza il testo normale per descrivere i dati e le relazioni tra i dati, l'XML e' piu' semplice da utilizzare e da leggere del formato binario che esegue la stessa operazione; inoltre poiche' il codice e' formattato in modo diretto, e' utile che l'XML sia facilmente leggibile da parte sia degli utenti che dei computer.
7. La progettazione di XML dovrebbe essere rapida: l'XML e' stato sviluppato per soddisfare l'esigenza di un linguaggio estensibile per il Web. Questo obiettivo e' stato definito dopo aver considerato l'eventualita' che se l'XML non fosse stato reso disponibile rapidamente come metodo per estendere l'HTML, altre organizzazioni avrebbero potuto provvedere a fornire una soluzione proprietaria, binaria o entrambe.
8. La progettazione di XML deve essere formale e concisa: questo obiettivo deriva dall'esigenza di rendere il linguaggio il piu' possibile conciso, formalizzando la formulazione della specifica.
9. I documenti XML devono essere facili da creare: i documenti XML possono essere creati facendo ricorso a strumenti di semplice utilizzo, quali editor di testo normale.
10. Non e' di nessuna importanza l'economicita' nel markup XML: nell'SGML e nell'HTML la presenza di un tag di apertura e' sufficiente per segnalare che l'elemento precedente deve essere chiuso. Benche' cosi' sia possibile ridurre il lavoro degli autori, questa soluzione potrebbe essere fonte di confusione per i lettori, nell'XML la chiarezza ha in ogni caso la precedenza sulla concisione.