XML
Qui di seguito si trova la traduzione di un articolo in inglese edito dal W3C. Il documento originale (rivisto il 13 Novembre 2001) è disponibile qui.
XML, XLink, Namespace, DTD, Schema, CSS, XHTML ... Se non conosci l'XML, può essere difficile capire da dove cominciare. Questo elenco in 10 punti cerca di catturare sufficienti concetti base per far vedere al neofita la foresta in mezzo agli alberi. E se stai preparando una presentazione sull'XML, perché non iniziare con questi 10 punti?
1. XML serve a strutturare i dati
I dati strutturati includono cose come i fogli di calcolo, le rubriche, i parametri di configurazione, le transazioni finanziarie, e i disegni tecnici. XML è un insieme di regole (puoi anche pensare che siano delle linee guida o delle convenzioni) per formulare dei file in formato testo che ti permettano di strutturare i tuoi dati. XML non è un linguaggio di programmazione, e non devi essere un programmatore per usarlo od impararlo. XML rende facile la generazione di dati tramite un computer, la lettura dei dati e il controllo sulla struttura in modo che non sia ambigua. XML evita le pecche comuni dei linguaggi: è estensibile, indipendente dalla piattaforma e supporta i parametri internazionali e locali. Inoltre è pienamente compatibile con Unicode.
2. XML assomiglia un po' ad HTML
Come HTML, XML fa uso di tag (parole racchiuse tra le parentesi angolari < e >) e attributi (della forma name="value"). Mentre HTML specifica come il testo e le altre componenti di layout appariranno in un browser, XML usa i tag solo per delimitare pezzi di dati, lasciandone completamente l'interpretazione all'applicazione che li legge. In altre parole, se si vede <p> in un file XML, non si è sicuri che esso sia un paragrafo. A seconda del contesto, potrebbe essere un prezzo, un parametro, una persona, una p... (e chi l'ha detto che dev'essere una parola con la "p"?).
3. L'XML è testo, ma non da leggere
I programmi che producono fogli di calcolo, rubriche e altri dati strutturati, spesso salvano i dati sul disco, usando sia il formato binario che quello testuale. Uno dei vantaggi del formato testo è che permette, se necessario, di dare un occhiata ai dati pur non disponendo del programma che li ha prodotti; all'occorrenza, si può leggere un file con il proprio editor di testi preferito. Inoltre i formati testo permettono agli sviluppatori un debug più semplice delle applicazioni. Come l'HTML, i file XML sono file di testo che non è necessario leggere, tranne quando non ne sorga il bisogno. Confrontate con l'HTML, le regole per i file XML permettono pochissime variazioni. Un tag dimenticato, o un attributo senza virgole rendono il file XML inutilizzabile, mentre in HTML tali pratiche sono spesso esplicitamente permesse. Le specifiche ufficiali dell'XML proibiscono alle applicazioni di tentare di indovinare cosa intendesse il creatore di un file non utilizzabile; se il file non è corretto, una applicazione deve fermarsi e segnalare l'errore.
4. XML è prolisso per design
Poiché XML è un formato di testo e usa i tag per delimitare i dati, i file XML sono praticamente sempre più grandi degli analoghi file in binario. Questa è stata una decisione presa coscientemente dagli sviluppatori dell'XML. I vantaggi del formato testo sono evidenti (vedi il punto precedente), e gli svantaggi possono solitamente essere compensati a livelli diversi. Lo spazio su disco diventa sempre meno costoso ei programmi di compressione come zip e gzip sono in grado di zippare i file molto bene e molto in fretta. In oltre, i protocolli di comunicazione come i protocolli per modem e l'HTTPv.1.1, il protocollo "cuore" del Web, possono comprimere i dati al volo, risparmiando banda esattamente come per i file binari.5. XML è una famiglia di tecnologie
XML 1.0 è la specifica che definisce cosa sono i "tag" e gli "attributi". Oltre ad XML 1.0, "la famiglia XML " è un insieme in crescita costante di moduli che offrono servizi utili per compiere le mansioni importanti e frequentemente richieste. XLink descrive una modalità standard per aggiungere collegamenti ipertestuali ad un file XML. XPointer è una sintassi in sviluppo per puntare a parti di un documento XML. Un XPointer è un po' simile a un URL, ma invece di puntare a un documento sul web, punta a pezzi di dati all'interno di un file XML. Il CSS, il linguaggio dei fogli di stile, è applicabile all'XML così come all'HTML. XSL è il linguaggio avanzato per scrivere i fogli di stile. È basato su XSLT, un linguaggio di trasformazione usato per riarrangiare, aggiungere e cancellare tag e attributi. Il DOM è un insieme standard di funzioni chiamato per manipolare i file XML (e HTML) da un linguaggio di programmazione. XML Schemas 1 e 2 aiutano gli sviluppatori a definire precisamente le strutture basate sui loro propri formati XML. Ci sono ancora un'infinità di moduli e strumenti disponibili o in fase di sviluppo. Date un occhio alla W3C's technical reports page.6. XML è nuovo, ma non così nuovo
Lo sviluppo dell'XML è iniziato nel 1996 ed è una W3C Recommendation dal febbraio 1998, la qual cosa può far sospettare che sia una tecnologia piuttosto immatura. Infatti, la tecnologia non è molto nuova. Prima di XML c'era SGML, sviluppato nei primi anni 80, standard ISO dal 1986, e ampiamente usato per progetti di documentazione. Lo sviluppo dell'HTML è iniziato nel 1990. Gli sviluppatori dell'XML semplicemente presero le parti migliori dell'SGML, guidati dall'esperienza fatta con l'HTML, e produssero qualcosa che non è meno potente dell'SGML, ma molto più regolare e facile da usare. Alcune evoluzioni, tuttavia, sono difficili da distinguire dalle rivoluzioni... E bisogna dire che mentre SGML è soprattutto usato per la documentazione tecnica e meno per gli altri tipi di dati, con XML è esattamente l'opposto.7. XML porta dall'HTML all'XHTML
Esiste un'importante applicazione dell'XML che è un formato di documento: l'XHTML del W3C, il successore dell'HTML. XHTML ha molti elementi analoghi all'HTML. La sintassi è stata leggermente cambiata per conformarsi alle regole dell'XML. Un formato che sia basato su XML eredita la sintassi dall'XML e in un certo modo la restringe (ad es., XHTML permette <p>, ma non <r>); inoltre aggiunge significato alla sintassi (l'XHTML dice che <p> sta per "paragrafo", e non per "prezzo", "persona", o altro).8. XML è modulare
XML permette di definire un nuovo formato di documento combinando o riutilizzando altri formati. Poiché due formati sviluppati indipendentemente possono avere elementi o attributi con lo stesso nome, occorre prestare attenzione quando si combinano quei formati (<p> significa "paragrafo" secondo questo formato o "persona" come nell'altro?). Per eliminare la confusione sui nomi durante l'unione dei formati, XML fornisce un meccanismo di namespace. XSL e RDF sono buoni esempidi formati basati su XML che usano i namespace. XML Schema è studiato per rispecchiare questo supporto per la modularità al livello di definizione delle strutture del documenti, rendendo facile combinare due schemi per produrne un terzo che comprenda una struttura di documento unione delle due.9. XML è la base per RDF e il Web Semantico
Il Resource Description Framework (RDF) del W3C è un XML formato testo che supporta la descizione di risorse e applicazioni metadata, come liste musicali, album di foto, e bibliografie. Ad esempio, RDF potrebbe permettere di identificare una persona su un album fotografico su Web usando delle informazioni prese dalla lista personale di contatti; poi il client di posta potrebbe automaticamente inviare un messaggio a queste persone dicendo che le loro foto sono sul Web. Come HTML ha integrato documenti, immagini, sistemi a menu, e formper lanciare il Web originale, RDF fornisce strumenti per integrare anche di più, per avvicinare il Web ancora un po' al Web Semantico. Esattamente come le persone devono accordarsi sul significato delle parole che impiegano nelle loro comunicazioni, i computer necessitano di meccanismi per accordarsi sul significato dei termini in modo da comunicare effettivamente. Le descrizioni formali dei termini in certe aree (acquisti o settore manufatturiero, ad esempio) sono dette ontologie e sono una parte necessaria del Web Semantico. RDF, ontologie, e la rappresentazione del significato in modo che possano aiutare le persone a fare dei lavori, sono tutti argomenti della Semantic Web Activity.10. XML è gratis, indipendente dalla piattaforma e ben supportato
Scegliendo XML come base per un processo, si guadagna l'accesso ad un'ampia comunità in espansione di strumenti (uno dei quali potrebbe già fare quello che desideri!) e ingegneri con esperienza nella tecnologia. Optare per l'XML è un po' come scegliere SQL per le basi di dati: devi ancora costruire il tuo database, i tuoi programmi e le procedure che lo manipolano, ma ci sono molti strumenti disponibili e molte persone che ti possono aiutare. E poiché XML è gratis, puoi costruirci il tuo software senza pagare niente a nessuno. Il grande e crescente supporto significa che non sei vincolato ad un unico venditore. XML non è sempre la miglior soluzione, ma vale sempre la pena di prenderlo in considerazione.