# Le proprieta' dell'XML

L'XML e' importante in due classi di applicazioni Web: la creazione di documenti e lo scambio dei dati; i server Web attualmente utilizzati richiedono, per essere in grado di servire documenti XML, minime modifiche di configurazione; inoltre il metodo standard di collegamento e la connessione dei documenti XML, utilizza gli URL, che vengono interpretati correttamente della maggior parte del software per Internet.

La sintassi dell'XML e' molto simile a quella dell'HTML, ma molto piu' rigida e severa; anche se al primo impatto questa caratteristica non sembra una proprieta' positiva, (soprattutto per chi dovra' scrivere documenti XML), e' stata volutamente introdotta dal gruppo di studio del W3C, per facilitare lo sviluppo di applicazioni basate sull'XML e aumentarne le prestazioni (si pensi ad un browser). Inoltre una sintassi chiara e pulita, aumenta la leggibilita' di un documento (questo vale in generale); a questo proposito si puo' dire che una sintassi chiara e pulita, unita alla possibilita' di creare un proprio set di markup, contribuira' a rendere un file XML leggibile quanto un file di solo testo (e in alcuni casi di piu').

L'XML non e' limitato a un insieme fisso di tipi di elementi, ma permette di definire e utilizzare elementi e attributi personalizzati; per far questo viene fornita una sintassi con cui e' possibile specificare gli elementi e gli attributi che possono essere utilizzati all'interno dei documenti. In altre parole e' possibile creare un modello, chiamato Document Type Definition (DTD), che descrive la struttura e il contenuto di una classe di documenti; lo stesso XML ha un proprio DTD (attualmente descritto nella specifica REC-xml-19980210) in cui vengono elencate le regole della specifica stessa del linguaggio. Con l'XML e' anche introdotta una classe di documenti che fa riferimento al solo DTD dell'XML; la creazione di un DTD personale non e' quindi indispensabile, come mostra la Fig. 2

Fig. 2: Un documento XML puo' fare riferimento al DTD dell'XML o a un DTD personale

Questa possibilita' semplifica molto l'utilizzo dell'XML rispetto all'SGML. Nel linguaggio SGML infatti i DTD sono indispensabili (e spesso complicati da creare e da imparare), e un documento deve fare obbligatoriamente riferimento ad uno di essi.

L'XML permette di creare dei tag personalizzati; inoltre uno stesso documento XML puo' essere utilizzato per scopi diversi da applicazioni diverse. Come fa una applicazione a riconoscere il markup disegnato per lei e ad evitare di confonderlo con il markup disegnato per altre applicazioni? Ad esempio una applicazione potrebbe utilizzare un elemento chiamato "address" per identificare il domicilio di una persona; un'altra applicazione invece potrebbe utilizzare lo stesso elemento per identificare l'indirizzo elettronico di una persona. Anche un programmatore potrebbe avere difficolta' nel capire l'utilizzo di un determinato elemento; per risolvere questo tipo di problemi, il gruppo di lavoro del W3C ha pensato ad un metodo per individuare le convenzioni che governano l'utilizzo di un particolare set di elementi; l'idea e' quella di utilizzare un namespace, cioe' un documento in cui viene definito l'utilizzo di un particolare set di elementi; un documento XML puo' far riferimento ad un namespace attraverso un indirizzo Web. Il documento di riferimento e' il WD-xml-names-19990114.

L'XML puo' essere utilizzato come piattaforma per lo scambio di dati tra le applicazioni, come mostra la Fig.3; cio' e' possibile perche' e' orientato alla descrizione dei dati.

Fig. 3: L'XML puo' essere utilizzato come piattaforma per lo scambio di dati

Poniamo il caso che si voglia scambiare le informazioni di database su Internet. Si immagini di utilizzare un browser per rinviare al server le informazioni su un questionario compilato dagli utenti. Questo processo, come molti altri, richiede un formato che possa essere personalizzato per un utilizzo specifico e che sia una soluzione aperta non proprietaria.

L'XML e' la soluzione per questo tipo di problema. Questo linguaggio in futuro diventera' sempre piu' importante per lo scambio di dati su Internet.

L'XML e' in grado di fornire una sola piattaforma per lo scambio di dati tra le applicazioni. Era sempre stato difficile trovare un formato di interscambio che potesse essere utilizzato per il trasferimento di dati tra database di fornitori differenti e sistemi operativi diversi. Quel tipo di interscambio e' ora diventato una delle applicazioni principali dell'XML.

Le pagine HTML hanno l'unico scopo di essere visualizzate da un browser (infatti si dice che i dati nell'HTML sono orientati al video); per questo e' molto difficile l'elaborazione successiva delle informazioni contenute nelle pagine HTML. I documenti basati sull'XML invece, non fanno supposizioni su come verranno utilizzati dal client; cosi' le informazioni ricevute possono essere utilizzate da un'applicazione che comprende il linguaggio XML, utilizzando i dati ivi contenuti in altri processi software; quindi uno stesso documento puo' essere facilmente utilizzato per scopi diversi.

Il collegamento ipertestuale e' una caratteristica specifica dell'HTML; attualmente pero', esso supporta solo un tipo di collegamento, che e' quello unidirezionale; in un vero sistema ipertestuale i tipi di collegamento sono diversi. Anche se l'XML e' uno standard, molte cose sulle tecnologie correlate, quali i fogli di stile ed il collegamento, sono ancora in fase di sviluppo; quindi il modo esatto in cui il collegamento deve essere implementato nell'XML e' ancora in fase di studio. Sicuramente dovra' essere compatibile con i meccanismi di collegamento HTML esistenti, supportare l'estensibilita' e le proprieta' intrinseche dell'XML e implementare i vari tipi di collegamenti propri di un vero sistema ipertestuale. Attualmente lo standard di riferimento e' l'Extensible Linking Languge (XLL) del 3/3/1998; e' stato diviso in due parti: XML Linking Language (XLink) e XML Pointer Language (XPointer).

L'XSL definisce la specifica per la presentazione e l'aspetto di un documento XML: e' stato presentato nel 1997 da un consorzio di industrie software (tra cui anche la Microsoft) al W3C perche' lo approvasse come linguaggio di stile standard per i documenti XML. L'XSL e' un sottoinsieme del Document Style Semantics and Specification Language (DSSSL), il linguaggio di stile utilizzato in ambiente SGML; gode delle proprieta' di essere estensibile, potente ma nello stesso tempo di facile utilizzo.

Con lXSL e' possibile creare fogli di stile che permettono la visualizzazione di un documento XML in un qualsiasi formato (audio, video, braille, etc.), come mostra la Fig.4. Attualmente lo standard di riferimento e' il documento WD-xsl-19990421.

Fig. 4: L'XSL permette di creare fogli di stile per un qualsiasi formato