Prefazione

Definire un'architettura di sviluppo completamente nuova, al giorno d'oggi, vuol dire affrontare una sfida non indifferente. Se da una parte infatti l'industria si muove ad una velocità tale da rendere obsoleta una tecnologia che abbia più di tre mesi, dall'altro il mercato è molto cauto nell'abbandonare scelte su cui si è già investito in modo consistente ed accettare schemi e modelli nuovi sul cui futuro si può fare solo congetture.

Così, quando alcuni anni fa il World-wide Web Consortium decise di affrontare le limitazioni dell'HTML disegnando un'architettura fortemente innovativa la cui compatibilità col mondo precedente era tutta da definire, la maggior parte delle aziende produttrici di browser presero la cosa con molta prudenza. Nonostante questo tutte le maggiori industrie di software decisero comunque di collaborare col W3C, cercando in parte di influenzarne le decisioni, in parte di assicurarsi un vantaggio competitivo qualora la nuova architettura avesse avuto successo.

In realtà l'XML, così si chiamava l'architettura in questione, non era completamente nuova, traendo dall'SGML le sue origini, cosa d'altro canto vera anche per l'HTML. Tuttavia il modo di affrontare il problema, la chiarezza degli obiettivi ed una consistente esperienza sulle spalle, basata anche sulla consapevolezza degli errori fatti in passato, portarono a sviluppare un intero nuovo modo di vedere la pubblicazione di informazioni e dati in rete. Linguaggi come l'RDF, che cerca di dare alle informazioni un significato concettuale orientato al modo di pensare degli esseri umani, e non a quello delle macchine, ne è la riprova.

Chi scrive ha seguito lo sviluppo dell'XML fin dagli inizi e ne ha cominciato a parlare subito sulle pagine della rivista Internet News, per quanto le nuove specifiche fossero ancora in fase di forte evoluzione e quindi soggette a cambiamenti anche significativi. Ancora oggi questa architettura si arricchisce in continuazione di nuovi linguaggi e di modifiche alle specifiche iniziali, tanto che non ne esiste tuttora un'implementazione completa. Nonostante questo si può oramai dire che l'XML è un'architettura matura, i cui obiettivi e la cui struttura sono chiari e definiti.

Questo volume intende riassumere in una singola trattazione quanto alla data è stato sviluppato, dopo averlo ordinato non per cronologia, come erano gli articoli originali, ma in base alle caratteristiche dell'architettura stessa. Molti linguaggi sono completamente cambiati, come l'XSLT, altri si sono evoluti fino a raggiungere dimensioni notevoli, come l'XSL:FO. L'XML stesso, da linguaggio intermedio spesso utilizzato solo per generare codice HTML complesso, è diventato un metalinguaggio capace di fornire una base di lavoro a tutti coloro che hanno la necessita di pubblicare informazioni e dati via Internet senza preoccuparsi più di tanto della compatibilità con i vari browser, plug-in ed applicazioni client.

Quanto segue non è quindi una semplice collezione di articoli, ma un trattato a sé stante, con tutta una serie di nuove informazioni, tabelle e figure, e al quale è stata data una continuità logica e di contenuto. Sicuramente molte specifiche potranno ancora essere soggette a cambiamenti e ad integrazioni, ma l'architettura nel suo complesso può dirsi oramai consolidata, non solo da un punto di vista teorico, ma anche in termini di realizzazioni concrete. La maggior parte dei browser infatti supporta sia l'XML che l'XSL, e anche se non sempre tutti gli elementi previsti sono garantiti, si vedono già i primi benefici in termini di interpretazione e rappresentazione dei documenti. Al contrario di quello che avveniva con l'HTML, infatti, l'XML non permette interpretazioni e basa la sua forza sul fatto che tutti i browser devono comportarsi nello stesso modo a fronte delle stesse specifiche.

Forse non è lontano il giorno che un documento potrà essere visualizzato nello stesso modo indipendentemente dal sistema operativo e dal produttore dell'interfaccia client. Senza contare il fatto che l'XML costituisce un'architettura ideale sia per la gestione delle basi dati e degli oggetti non standard come gli elementi multimediali (video, audio, voce), sia per l'utilizzo attraverso periferiche differenti dal classico PC, come i computer palmari, i telefonini, i televisori ed i nuovissimi libri elettronici (pervasive computing).