Il linguaggio XML

Sebbene il linguaggio HTML sia molto ricco dal punto di vista della visualizzazione, esso però non fornisce un modo standard di gestire i dati. Il linguaggio XML (Extensible Markup Language) viene a supporto di tale mancanza, in quanto è basato su una rappresentazione standard per lo spostamento di dati sul Web. Ciò consente di dichiarare con maggiore precisione il contenuto dei dati e di ottenere risultati più significativi nelle ricerche eseguite in più piattaforme.

Definito dal consorzio W3C, il linguaggio XML assicura che i dati strutturati siano indipendenti dalle applicazioni o dai produttori, favorendo l’interoperabilità.

Documenti XML

Lo standard XML è un formato testuale, simile per molti aspetti al linguaggio HTML. Un’origine XML è costituita da elementi XML, ciascuno dei quali formato da una tag iniziale (), una tag finale () e da informazioni, dette contenuto, comprese tra le due tag. Diversamente dal linguaggio HTML, lo standard XML consente di includere una numero illimitato di tag, ciascuna indicante non l’aspetto, ma il significato di un elemento testuale. Ad esempio, un elemento XML può essere contrassegnato con una tag come prezzo o come nome. È compito dell’autore del documento stabilire il tipo di dati da utilizzare e i nomi delle tag che meglio si adattano ad essi:

<data>19/12/1999</data><prezzo>7,00</prezzo><orario>2:41:30</orario>...

Anziché descrivere l’ordine e l’aspetto dei dati da visualizzare, le tag indicano il significato di ciascun elemento, ossia se si tratta di una data (), di lunghezza () e così via. Chi riceve tali dati può quindi decodificare il documento utilizzandolo per scopi propri.

I documenti XML sono costituiti da unità di memoria dette entità, che contengono sia dati analizzati che non analizzati. I dati analizzati sono costituiti da caratteri, alcuni dei quali formano i character data, e alcuni i markup. I markup codificano una descrizione dell’organizzazione di memorizzazione e della struttura logica del documento; essi prendono la forma di tag-di-inizio, tag-di-fine, tag di elemento-vuoto, riferimenti a entità, riferimenti a carattere, commenti. Tutto il testo che non è markup costituisce i character data del documento.

Un modulo software detto processore XML viene usato per leggere documenti XML e fornire l’accesso al loro contenuto e alla loro struttura. Si presuppone che un processore XML farà il suo lavoro per conto di un altro modulo, che viene chiamato applicazione. Queste specifiche descrivono il comportamento che un processore XML deve tenere nel leggere i dati XML e l’ informazione che deve fornire all’applicazione.

La potenzialità del linguaggio XML sta nel fatto che l’interfaccia utente è separata dai dati strutturati. Il linguaggio XML separa i dati dallo loro rappresentazione ed elaborazione, consentendo la visualizzazione e l’elaborazione dei dati desiderate mediante l’impiego di fogli di stile e applicazioni differenti. La separazione dei dati dalla loro presentazione consente una perfetta integrazione dei dati ottenuti da più origini.

Nel linguaggio XML un documento può essere accompagnato da file DTD (Document Type Definition), i quali ne definiscono le regole, quali l’indicazione degli elementi presenti e la relazione strutturale intercorrente tra di essi. I file DTD aiutano a convalidare i dati quando l’applicazione ricevente non dispone di una descrizione incorporata dei dati in arrivo. In ogni caso, tali file sono facoltativi con l’XML.

I dati inviati insieme con un file DTD sono dati XML. In tal caso, un processore XML controlla i dati in arrivo sulla base delle regole definite nel file DTD al fine di accertare la corretta strutturazione dei dati. I dati inviati senza un file DTD sono noti come dati “ben formati” (well-formed).

In ambedue i casi, i dati codificati in formato XML sono autodescrittivi in quanto sono inserite delle tag descrittive tra i dati.

Schemi

Per schema si intende una specificazione formale delle regole di un documento XML, che indica quali elementi sono consentiti nel documento e in quali combinazioni. I nuovi linguaggi per gli schemi, secondo quanto definito dal gruppo di lavoro sui dati XML (XML-Data Working Group), forniscono la stessa funzionalità di un file DTD. Tuttavia, questi nuovi linguaggi sono di gran lunga più potenti dei file DTD poiché, essendo estensibili, gli sviluppatori possono incrementarli con informazioni aggiuntive, quali i tipi di dati, le regole di presentazione e l’ereditarietà.

È stata proposta una terminologia per esprimere gli schemi di un documento XML utilizzando il linguaggio XML stesso. L’espressione di schemi all’interno di un documento XML conferisce grandi potenzialità al formato XML, in quanto al software è possibile esaminare determinati dati al fine di capirne la struttura senza dover disporre in anticipo di alcuna descrizione incorporata della struttura dei dati.

Utilizzando uno schema, un autore può definire con precisione i nomi di elementi permessi in un documento e, all’interno di determinati elementi, quali sottoelementi, attributi e relazioni sono consentiti. Un autore può importare frammenti da altri schemi ed estendere i tipi ereditandoli.

Gli autori possono inventare propri schemi o condividere quelli già creati da altri. I lettori possono controllare i riferimenti degli schemi al fine di verificare che il documento ricevuto sia del tipo corretto.

Standard aperti

L’iniziativa XML è costituita da una serie di standard correlati:

  • XML Namespaces costituisce una Raccomandazione, ossia lo stadio finale della procedura di approvazione del consorzio W3C. Questo significa che tale standard può essere interamente adottato dagli sviluppatori di strumenti e del Web. Descrive la sintassi namespace e il supporto per i parser XML namespace. Un namespace è semplicemente un modo per indicare una parte del Web che funge da qualificatore per uno specifico set di nomi. Per creare un namespace utilizzabile nei documenti XML occorre associare ad esso un URI (Universal Resource Identifier, identificatore universale per una risorsa). Associando ai nomi dei tag l’URI dei namespace di cui fanno parte, chiunque può creare dei tag “personali” dal momento che si è in grado di distinguerli dagli altri con lo stesso nome. La convenzione più comunemente adottata consiste nel creare e pubblicare una pagina web, nella quale descrivere il linguaggio di markup (e l’esatto significato dei tag), e di utilizzare il suo URL (Universal Resource Locator) come URI del namespace. Tuttavia questa è soltanto una convenzione e né il linguaggio XML né, come si vedrà, l’RDF assumono che l’URI di un namespace identifichi una risorsa effettivamente prelevabile dal Web;
  • Il livello 1 DOM (Document Object Model) costituisce una Raccomandazione. Fornisce uno standard per l’accesso programmatico mediante script ai dati strutturati, in modo che gli sviluppatori possano interagire in armonia con i dati XML;
  • Extensible Stylesheet Language (XSL) è il linguaggio per definire gli stili ed è candidato alla raccomandazione. Dato un documento XML si può definire come deve essere rappresentato nel browser come deve essere stampato o come viene visto nel palmare;
  • XSL Transformations (XSLT) costituisce una Raccomandazione ed è un linguaggio basato sull’XML che permette di trasformare un modello di documento XML in un altro. L’XSLT offre un’incredibile flessibilità per la presentazione e lo scambio di dati tra i dispositivi più disparati. Per esempio con l’XSLT stylesheets puoi trasformare dinamicamente lo schema di un documento di acquisto XML in un altro compatibile con il fornitore a cui lo si sta mandando. In più, con XSLT si può trasformare un documento XML in modo che possa essere visualizzato in qualsiasi dispositivo che si collega a Internet, dal computer, al palmare, al telefono cellulare;
  • XML Path Language (XPath) è candidato alla raccomandazione ed è il linguaggio usato per creare espressioni che possono indirizzare in diverse parti di un documento XML, manipolare stringhe e numeri e può raggruppare più nodi in un documento. L’XPath è un linguaggio che fornisce collegamenti in formato XML simili a quelli del formato HTML ma è molto più potente. Grazie al linguaggio XPath i collegamenti possono essere multidirezionali ed esistere a livello di oggetto anziché solo a livello di pagina;
  • XML Schema è candidato alla raccomandazione. Descrive come deve essere un documento XML well-formed. A differenza del DTD di cui è successore è un linguaggio XML e permette una specificazione dei tipi di dati più accurata.

Vantaggi del linguaggio XML

Abbiamo quindi visto come il linguaggio XML abbia acquisito un’enorme importanza nel panorama informatico e ciò grazie ai vantaggi che comporta, sia dal punto di vista dello sviluppatore che da quello dell’utente. Per meglio comprendere tali vantaggi, consideriamo i seguenti casi:

  • Ricerche più significative: Consideriamo uno scenario applicativo, in cui un utente voglia ricercare attraverso il Web un libro scritto da Gabriele D’Annunzio. I dati possono essere inseriti nelle tag in modo univoco con il linguaggio XML, consentendo potenzialmente all’utente di specificare i libri scritti da Gabriele D’Annunzio, anziché quelli su Gabriele D’Annunzio. Al contrario, le ricerche che non utilizzano XML segnalano entrambi i tipi di libro; infatti, senza il linguaggio XML, per ovviare al problema, all’applicazione che esegue la ricerca sarebbe necessario comprendere gli schemi che descrivono la struttura di ciascun database, e ciò è quasi impossibile poiché ogni database descrive i propri dati in modo diverso. Grazie al linguaggio XML, invece, i libri potrebbero essere facilmente catalogati in modo standard in base all’autore, al titolo o ad altri criteri. Gli agenti di ricerca potrebbero quindi cercare in modo uniforme nei siti delle librerie in linea i libri su Gabriele D’Annunzio.
  • Sviluppo di applicazioni Web flessibili:
    • 1)      Integrazione di dati provenienti da origini diverse: lo standard XML consente di combinare insieme in modo facile i dati strutturati provenienti da origini diverse. L’estensibilità e la flessibilità del linguaggio XML consentono di descrivere i dati contenuti in una vasta gamma di applicazioni eterogenee, che spaziano dalle raccolte di pagine Web ai record di dati. Inoltre, poiché i dati XML sono autodescrittivi, possono essere scambiati ed elaborati senza dover disporre di una descrizione incorporata dei dati in arrivo.
    • 2)      Computazione e manipolazione locale dei dati: dopo l’invio al client, i dati in formato XML possono essere analizzati e quindi modificati e manipolati localmente, con calcoli eseguiti dalle applicazioni client. I calcoli dei dati possono essere eseguiti senza passare continuamente attraverso il server.
    • 3)      Più visualizzazioni dei dati: una volta inviati al desktop, i dati possono essere visualizzati in vari modi. Infatti, essendo la visualizzazione distinta dai dati, la definizione di questi ultimi nel formato XML consente di specificare visualizzazioni differenti e conduce ad una loro presentazione appropriata. Descrivendo i dati strutturati in una maniera semplice, aperta ed estensibile, lo standard XML è un ideale complemento del linguaggio HTML (linguaggio HTML descrive l’aspetto dei dati, il linguaggio XML descrive i dati stessi).
    • 4)      Aggiornamenti di piccolissime dimensioni: Utilizzando il formato XML, i dati possono essere aggiornati trasferendo dal server al client solo i dati cambiati, i quali possono essere visualizzati senza dover aggiornare l’intera interfaccia utente. Senza XML è necessario ricostruire l’intera pagina se cambia anche un solo dato. Ciò limita pesantemente la scalabilità del server. Inoltre, lo standard XML consente l’aggiunta di altri dati; tali informazioni aggiuntive possono confluire nella visualizzazione esistente senza che il browser debba inviare una nuova visualizzazione.

Per avere una trattazione più dettagliata delle specifiche del linguaggio XML  ( in particolare della versione 1.1 ) si rimanda al documento W3C Recommendation “Extensible Markup Language (XML) 1.0” di Tim Bray, Jean Paoli (vedere http://www.w3.org/TR/2003/REC-xml).

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (Nessun voto ancora)
Loading...
You can leave a response, or trackback from your own site.

Leave a Reply

*