680 likes | 886 Views
XML Introduzione. Laurea Magistrale in Informatica Reti 2 (2005/06). dott. Francesco De Angelis francesco.deangelis@unicam.it. Agenda. Cosa è... Caratteristiche generali Origini storiche e motivazioni Vantaggi Concetto di metalinguaggio Concetto di tipo di documento
E N D
XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it
Agenda • Cosa è... • Caratteristiche generali • Origini storiche e motivazioni • Vantaggi • Concetto di metalinguaggio • Concetto di tipo di documento • Criteri di progettazione del linguaggio • Sintassi di un documento • Principi della validazione • Utilizzo • POP e MOM • XML e EDI XML - Introduzione ai concetti
XML: cosa è • XML: eXtensible Markup Language • è un tecnologia che consente la rappresentazione di documenti e dati strutturati • è uno dei più potenti e versatili sistemi per la creazione, archiviazione e condivisione di dati in formato digitale… • … ma la sua sintassi rigorosa e flessibile ne rende possibile l’applicazione anche nella rappresentazione di dati strutturati, fornendo una soluzione alternativa ai tradizionali sistemi DBMS relazionali XML - Introduzione ai concetti
XML: cosa è • XML è un metalinguaggio, che permette di definire sintatticamente linguaggi di markup • XML permette di esplicitare la (le) struttura(e) di un documento in modo formale mediante marcatori (markup) che vanno inclusi all’interno del testo (character data) • Il markup rappresenta la struttura logica del documento • Il markup si riconosce dal resto del testo perché compreso tra delimiter, informalmente: • <xxxx> • &yyyy; XML - Introduzione ai concetti
XML: caratteristiche • XML adotta un formato di file di tipo testuale: sia il markup sia il testo sono stringhe di caratteri • XML si basa sul sistema di codifica dei caratteri ISO 10646/UNICODE • Questo porta a due vantaggi nei riguardi dell’internazionalizzazione: • È possibile scrivere documenti misti, senza ricorrere a trucchi strani per identificare la parte che usa un alfabeto dalla parte che ne adopera un altro • Un documento scritto in un linguaggio non latino non deve basarsi su parametri esterni per essere riconosciuto come tale, ma la codifica stessa dei caratteri lo identifica • Un documento XML è “leggibile” da un utente umano senza la mediazione di software specifico XML - Introduzione ai concetti
XML: caratteristiche • XML è indipendente dal tipo di piattaforma hardware e software su cui viene utilizzato • XML è uno standard di pubblico dominio • XML è indipendente dai dispositivi di archiviazione e visualizzazione • un documento XML può essere archiviato su qualsiasi tipo di supporto digitale (attuale e… futuro!) • un documento XML può essere visualizzato su qualsiasi dispositivo di output XML - Introduzione ai concetti
XML: caratteristiche • XML può essere usato come formato di scambio dati in applicazioni middleware • XML permette la rappresentazione di qualsiasi tipo di documento (e di struttura testuale) indipendentemente dalle finalità applicative • sono disponibili numerose applicazioni e librerie open source per la manipolazione di dati in formato XML basate su diversi linguaggi di programmazione (Java, .NET, C, Python, Perl…) XML - Introduzione ai concetti
La genesi - IBM, Fine anni ‘60 • Incarico a Charles F. Goldfarb di costruire un sistema per la memorizzazione, la ricerca, la gestione e la pubblicazione di documenti legali • Goldfarb scoprì che molti sistemi, in IBM, non potevano comunicare tra loro • I formati dei file nelle diverse applicazioni sono proprietari ...e diversi tra loro!!! XML - Introduzione ai concetti
C. Goldfaarb, E. Mosher, R. Lorie • Costituito un team per risolvere il problema • 3 fatti importanti • I diversi programmi avevano bisogno di supportare una rappresentazione comune dei documenti • Il linguaggio comune doveva essere specifico per i documenti legali • Il linguaggio doveva essere specificato in una maniera formale, capace di delimitare in modo appropriato gli elementi • La risposta è stato GML (Generalized Markup Language), precursore di SGML (Standard GML), il linguaggio da cui deriva XML XML - Introduzione ai concetti
Perché non SGML? • SGML ha molti pregi, ma ha dalla sua una complessità d’uso e di comprensione notevole • Non è pensato per la rete • XML contiene tutte le caratteristiche di SGML che servono per creare applicazioni generali ...senza scendere nel livello di dettaglio e pedanteria richiesti da SGML • Inoltre, il successo di HTML ha fatto capire che: • Il mondo degli sviluppatori è pronto ad accogliere il modello basato sul markup • La semplicità è un punto di forza fondamentale XML - Introduzione ai concetti
XML: le origini • XML è stato sviluppato dal World Wide Web • XML deriva da SGML, pubblicato ufficialmente nel 1986 con la sigla ISO 8879 • XML nasce come un sottoinsieme semplificato di SGML orientato all’uso sul World Wide Web… … ma ha assunto ormai un ruolo autonomo e una diffusione maggiore del suo progenitore XML - Introduzione ai concetti
Il caso HTML XML non è un sostituto di HTML • HTML nasce come DTD di SGML per la pubblicazione di semplici documenti testuali con qualche immagine e collegamento ipertestuale • Vengono implementate nel tempo molte estensioni proprietarie che creano barriere all’interoperatività degli strumenti • I browser (parser) rilassano le regole sintattiche ed interpretano anche documenti HTML “scorretti” • HTML è per presentare informazioni, XML è per descrivere informazioni. XML - Introduzione ai concetti
I vantaggi di XML • Documenti auto-descrittivi • La scelta dei nomi degli elementi può essere fatta per facilitare la comprensione del ruolo strutturale dell’elemento • Inoltre, l’uso di un DTD può esplicitare le regole di composizione ed i rapporti possibili tra le varie parti dei documenti • Facile convertibilità a formati Web • “trasformazioni” tra formati XML • Sintassi universale, minimale e rigorosa • XML definisce una sintassi di scrittura utile per qualunque applicazione, vocabolario, linguaggio umano, sistema operativo XML - Introduzione ai concetti
I vantaggi di XML • Ripetibilità degli elementi • XML permette di definire formalmente elementi ripetibili. Questo permette strutture più flessibili e complesse di altri formati di dati • Strutturazione gerarchica degli elementi • Esistono molti formati di dati generici per l'interscambio di dati, ma sono tutti organizzati linearmente. XML permette strutture ad albero. • Struttura navigabile dei documenti • La sintassi rigorosa, la gerarchia garantita, la genericità delle strutture permettono la definizione di modelli di programmazione sui nodi dell’albero XML - Introduzione ai concetti
Il concetto di metalinguaggio • XML è un metalinguaggio • XML definisce un insieme regole (meta)sintattiche, attraverso le quali è possibile descrivere formalmente un linguaggio di markup, detto applicazione XML • ogni applicazione XML eredita da XML un insieme di caratteristiche sintattiche comuni • ogni applicazione XML a sua volta definisce una sintassi formale particolare XML - Introduzione ai concetti
Dati (file XML) Appl. Tag specifici xml parser Regole XML Il concetto di metalinguaggio • Dato che XML è un metalinguaggio per specificare altri linguaggi, costituisce un “livello comune” per il dialogo in ambienti differenti • XML non dice nulla su che tag utilizzare, ma fissa solo delle regole comuni per eseguire correttamente il parsing del file • E’ possibile usare XML per gli scopi più disparati, a seconda delle operazioni che verranno eseguite dalla specifica applicazione di fronte al markup utilizzato XML - Introduzione ai concetti
Il concetto di metalinguaggio XML metasintassi metalinguaggio linguaggi XHTML DocBook Math-ML sintassi documenti XML - Introduzione ai concetti
Il concetto di tipo di documento • La definizione di una applicazione XML si basa su un determinato tipo di documento • Un tipo di documento descrive le caratteristiche di una classe di documenti strutturalmente omogenei • Un tipo di documento è caratterizzato da • un insieme di elementi strutturali • le relazioni di dipendenza tra gli elementi • le relazioni di ricorrenza degli elementi • Il tipo di documento è il fondamento della sintassi e della semantica di una applicazione XML XML - Introduzione ai concetti
testo corpo ? ? ? + introduzione frontespizio appendice capitolo + + ? + + titolo titolo paragrafo paragrafo titolo paragrafo * * titolo autore PCDATA enfasi citazione PCDATA enfasi citazione La struttura gerarchica ordinata XML - Introduzione ai concetti
Il concetto di tipo di documento • La struttura ad albero del tipo di documento determina la sintassi del linguaggio di markup • La sintassi di un tipo di documento deve essere espressa (mediante il markup) in ogni documento XML • La definizione formale della sintassi di un tipo di documento XML può essere espressa esplicitamente in una Document Type Definition(DTD) o un XML Schema XML - Introduzione ai concetti
DTD & XML Schema • Definiscono regole per la produzione di documenti strutturati • Una DTD: Document Type Definition contiene le definizioni dei tipi di elementi, degli attributi, delle entità, delle notazioni. Un DTD dichiara • quali elementi, tipi, entità notazioni sono legali • …ed in quale parte del documento lo sono • XML Schema: Successore delle DTD • Basato su XML, fornisce un’alternativa alle DTD, più potente • Supporta namespace and data types XML - Introduzione ai concetti
Cosa c’è con XML? • XML è in realtà una famiglia di linguaggi. Alcuni hanno l’ambizione di standard, altri sono solo proposte di privati o industrie interessate. Alcuni hanno scopi generali, altri sono applicazioni specifiche per ambiti ristretti. • XSLT: trasformazione di documenti XML • RDF: specifica di metainformazioni machine-processable • DOM, SAX: modelli e strutture dati per la programmazione • SOAP, WSDL, UDDI: strutture dati e loro dichiarazione per di dati di interscambio tra applicazioni • Migliaia di proposte di vocabolari con lo scopo di standardizzare linguaggi, processi e servizi in ambiti specializzati: RSS, Math-ML, CML, etc. XML - Introduzione ai concetti
Criteri di progettazione di XML Nel documento ufficiale di XML si elencano i seguenti obiettivi progettuali: • XML deve essere utilizzabile in modo diretto su Internet • Non significa che deve essere possibile usarlo sul browser del giorno • Significa che si dovevano tenere in conto le esigenze di applicazioni distribuite su reti a larga scala • XML deve supportare un gran numero di applicazioni • Cioè XML non si limita al supporto di documenti in rete, ma a una larga classe di applicazioni che non c’entrano con la rete. Specificamente: deve essere possibile creare applicazioni come tool di authoring, filtri, “formattatori”, e traduttori XML - Introduzione ai concetti
Criteri di progettazione di XML • XML deve essere compatibile con SGML • Tool SGML esistenti debbono essere in grado di leggere e scrivere documenti XML • Istanze XML debbono essere istanze SGML così come sono, senza traduzioni, per quanto semplici • Dato un documento XML, deve essere possibile generare un DTD SGML tale per cui un tool SGML esegue lo stesso parsing di un tool XML • XML deve avere essenzialmente lo stesso potere espressivo di SGML Questi goal sono stati sostanzialmente raggiunti XML - Introduzione ai concetti
Criteri di progettazione di XML • Deve essere facile lo sviluppo di programmi che elaborino documenti XML • Deve essere possibile creare applicazioni XML utili che non dipendano dal leggere ed interpretare il DTD • Il numero di caratteristiche opzionali deve essere mantenuto al minimo possibile, idealmente a zero. • SGML, per generalità, aveva adottato un numero molto alto di caratteristiche opzionali, di dubbia utilità, o molto specifiche • ogni processore SGML implementava solo parte delle caratteristiche opzionali. Documenti SGML conformi che potevano essere letti da un processore SGML non venivano letti da un altro XML - Introduzione ai concetti
Criteri di progettazione di XML • I documenti XML dovrebbero essere leggibili da umani e ragionevolmente chiari • Formati testuali sono più aperti, più utili, più gradevoli rispetto a formati binari • Inoltre, si può sempre aprire il documento con un editor di testi... • La specifica del linguaggio XML deve avvenire rapidamente • La paura era che le esigenze di estensibilità del Web potessero essere soddisfatte da una qualche combinazione di complicati formati binari e di sistemi proprietari XML - Introduzione ai concetti
Criteri di progettazione di XML • La progettazione XML deve essere formale e concisa • La specifica di SGML è composta di un documento di oltre 300 pagine. Il manuale SGML ne richiede più di 600, e comunque non è facilmente leggibile • La scelta di formalismi nitidi e pochi commenti ha permesso la creazione di una specifica XML notevolmente più corta (~40 pag.) e immediatamente utilizzabile • I documenti XML devono essere facili da creare XML - Introduzione ai concetti
Sintassi di un documento XML • Concretamente, un documento XML è un file di testo che contiene una serie di tag, attributi e testo secondo regole sintattiche ben definite • Un documento XML è intrinsecamente caratterizzato da una struttura gerarchica • Esso è composto da componenti denominati elementi • Ciascun elemento rappresenta un componente logico del documento e può contenere altri elementi (sottoelementi) o del testo XML - Introduzione ai concetti
Sintassi di un documento XML • Gli elementi possono avere associate altre informazioni che ne descrivono le proprietà. Queste informazioni sono chiamate attributi • L’organizzazione degli elementi segue un ordine gerarchico ad albero che prevede un elemento principale, chiamato rootelement o semplicemente root o radice • La radice contiene l’insieme degli altri elementi del documento. Possiamo rappresentare graficamente la struttura di un documento XML tramite un albero, generalmente noto come documenttree XML - Introduzione ai concetti
Sintassi di un documento XML Per fissare le idee prendiamo in considerazione la rappresentazione di un generico articolo a carattere tecnico e proviamo a rappresentarlo secondo il modello XML, come mostrato in figura. titolo articolo titolo titolo titolo paragrafo paragrafo paragrafo testo testo testo file immagine codice XML - Introduzione ai concetti
Sintassi di un documento XML <?xml version="1.0" ?> <articolo titolo="Titolo dell’articolo"> <paragrafo titolo="Titolo del primo paragrafo"> <testo> Blocco di testo del primo paragrafo </testo> <immagine file="immagine1.jpg"> </immagine> </paragrafo> <paragrafo titolo="Titolo del secondo paragrafo"> <testo> Blocco di testo del secondo paragrafo </testo> <codice> Esempio di codice </codice> <testo> Altro blocco di testo </testo> </paragrafo> <paragrafo tipo="bibliografia"> <testo> Riferimento ad un articolo </testo> </paragrafo> </articolo> XML - Introduzione ai concetti
Sintassi di un documento XML • Prologo XML, necessario per ogni documento XML • Ogni documento XML deve contenere un unico elemento di massimo livello (root) che contenga tutti gli altri elementi del documento. • Ogni elemento deve avere un tag di chiusura o, se vuoti, possono prevedere la forma abbreviata (/>) • Gli elementi devono essere opportunamente nidificati, cioè i tag di chiusura devono seguire l’ordine inverso dei rispettivi tag di apertura • XML è case-sensitive • I valori degli attributi devono sempre essere racchiusi tra singoli o doppi apici <?xml version="1.0" ?> XML - Introduzione ai concetti
Sintassi di un documento XML La violazione di una qualsiasi di queste regole fa in modo che il documento risultante non venga considerato ben formato. Anche se queste regole possono sembrare semplici, occorre prestarvi molta attenzione se si usa un semplice editor di testo. Codice del tipo <articolo titolo=test> ... </Articolo> darà qualche problema, e lo stesso dicasi per situazioni analoghe alla seguente: <paragrafo> <testo>abcdefghi... </paragrafo> </testo> XML - Introduzione ai concetti
Sintassi di un documento XML Anche la scelta dei nomi dei tag deve seguire alcune regole. Un tag può iniziare con un lettera o un underscore (_) e può contenere lettere, numeri, il punto, l’underscore (_) o il trattino (-). Non sono ammessi spazi o altri caratteri. XML è sensibile all’uso di maiuscolo e minuscolo, quindi i tag <prova> e <Prova> sono considerati diversi. Potrebbe essere necessario inserire in un documento XML dei caratteri particolari che potrebbero renderlo non ben formato. Ad esempio, se dobbiamo inserire del testo che contiene il simbolo <, corriamo il rischio che possa venire interpretato come l’inizio di un nuovo tag, come nel seguente esempio: <testo> il simbolo < indica minore di </testo> XML - Introduzione ai concetti
Sintassi di un documento XML Per evitare situazioni di questo tipo, XML prevede entità che consentono di sostituire altri caratteri. • Generali: incluse nel documento XML • Interne: esistono all’interno del documento <!ENTITY NomeEntita “Esempio entita interna”> • Esterne: esistono all’esterno del documento <!ENTITY NomeEntita SYSTEM “http://www.xml.com”> • Parametriche: incluse nelle DTD & & < < > > " " ' ‘ Sfruttando le entità, l’esempio precedente diventa: <testo> il simbolo < indica minore di </testo> XML - Introduzione ai concetti
Sintassi di un documento XML In determinate situazioni gli elementi da sostituire con le entità possono essere molti, il che rischia di rendere illeggibile il testo ad essere umano. Si consideri il caso in cui un blocco di testo illustri proprio del codice XML: <codice> <libro> <capitolo> </capitolo> </libro> </codice> In questo caso, al posto di sostituire tutte le occorrenze dei simboli speciali con le corrispondenti entità è possibile utilizzare una sezione CDATA. XML - Introduzione ai concetti
Sintassi di un documento XML Una sezione CDATA (Character DATA) è un blocco di testo che viene considerato sempre come testo, anche se contiene codice XML o altri caratteri speciali. Per indicare una sezione CDATA è sufficiente racchiuderla tra le sequenze di caratteri <![CDATA[ e ]]>. Il nostro esempio diventerà come segue: <codice> <![CDATA[ <libro> <capitolo> </capitolo> </libro> ]]> </codice> In certe situazioni non si conosce a priori il contenuto che può essere inserito in un blocco di testo e pertanto l’utilizzo delle sezioni CDATA risulta obbligatorio. XML - Introduzione ai concetti
Documenti ben formati o validi • Ogni linguaggio, applicazione XML, ha le sue regole • HTML ha le sue regole, ma non c’è modo di farle applicare agli autori • I browser visualizzano anche documenti HTML non conformi • Se i documenti non sono formalmente corretti, è rischioso elaborarli automaticamente <Conto> 123456<Persona>Paolo<Importo>100000 </Conto> • L’esempio (HTML) viene visualizzato correttamente, ma il markup lascia a desiderare. Non è possibile farci affidamento XML - Introduzione ai concetti
Documenti ben formati o validi • XML distingue due tipi di documenti rilevanti per le applicazioni XML: i documenti ben formati (well formed) ed i documenti validi • Un documento con un markup comprensibile, è detto ben-formato • Un documento benformato è un documento intelligibile • Un documento XML si dice ben formato se: • Tutti i tag di apertura e chiusura corrispondono e sono ben annidati • Esiste un elemento radice che contiene tutti gli altri • I tag vuoti (senza contenuto) utilizzano un simbolo speciale di fine tag: <vuoto/> • Tutti gli attributi sono sempre racchiusi tra virgolette • Tutte le entità sono definite XML - Introduzione ai concetti
Documenti ben formati o validi • Un documento è valido se dichiara la sua conformità con uno specifico DTD • Un documento è non valido se non è conforme al suo DTD • Può comunque essere ben formato • Un documento che non dichiara un DTD • non è invalido - non viola il DTD • non è valido - non è conforme al DTD XML - Introduzione ai concetti
Parser validanti e non validanti • Il cuore di un applicazione XML è il parser, ovvero quel modulo che legge il documento XML e ne crea una rappresentazione interna utile per successive elaborazioni (come la visualizzazione) • Un parser validante, in presenza di un DTD, è in grado di verificare la validità del documento, o di segnalare gli errori di markup presenti • Un parser non validante invece, anche in presenza di un DTD è solo in grado di verificare la buona forma sintattica del documento • Un parser non validante è molto più semplice e veloce da scrivere, ma è in grado di fare meno controlli. In alcune applicazioni, però, non è necessario validare i documenti, solo verificare la loro buona forma XML - Introduzione ai concetti
Quando scegliere XML? • Quali sono le condizioni per adottare XML in un progetto? • E’ nuovo ed è di moda ...ma ciò è banale! • Alcunebuonee vereragioni per l’uso di XML: • Produzione di documenti automatici • Gestione indipendente di produzione e uso di dati • Elaborazione di dati con aspetti strutturali complessi XML - Introduzione ai concetti
Quando scegliere XML? • Produzione di documenti automatici • XML è la soluzione in assoluto più elegante (anche se ad oggi ancora faticosa) per integrare collezioni di dati strutturati sul Web • Documenti dinamici, sono facilmente esprimibili in XML, e gli strumenti attuali si concentrano su questo XML - Introduzione ai concetti
Quando scegliere XML? • Gestione indipendente di produzione ed uso di dati • Spesso l’interscambio di dati avviene all’interno di un workflow controllato e noto. In questo caso, data producers e data consumers sono creati ad hoc per lo specifico flusso informativo. XML è una complicazione inutile • Tuttavia esistono delle situazioni in cui non c’è progettazione integrata di producer e consumer. In questo caso, un’adeguata progettazione del producer facilita molto il lavoro di tutti i possibili consumer • XML è strutturato, auto-esplicativo, enfatizza la descrizione del dato più che del suo scopo nella elaborazione. E’ quindi ideale per le situazioni in cui l’elaborazione non è nota in anticipo. XML - Introduzione ai concetti
Quando scegliere XML? • Elaborazione di dati con aspetti strutturali complessi • I database utilizzano le relazioni per ogni tipo di esigenza • Complicato gestire, in una tabella, record con un numero variabile di campi, o situazioni alternative complesse • XML prevede strutture con blocchi ripetuti, alternativi, facoltativi. La descrizione di queste strutture in XML è molto più naturale che con DB relazionali XML - Introduzione ai concetti
Revisione di bozze Formatting markup fatto da mano umana! Nel computer Rendition: un file che contiene sia i dati che la descrizione del loro formato LaTex, troff, rtf, Postscript, etc. Presentation: il risultato della conversione di una rendition in qualcosa di comprensibile all’essere umano Strumenti WYSIWYG = rendition + GUI Esempio: Il publishing XML - Introduzione ai concetti
Opportunità d’uso • POP (Presentation oriented publishing) • MOM (Message oriented middleware) XML - Introduzione ai concetti
Presentation Oriented Publishing • POP è stata l’applicazione killer di SGML • Ha portato enormi risparmi alle aziende che lavoravano sul Web negli anni ‘80 • Invece di creare documenti formattati, gli utenti umani creano astrazioni non formattate • Il file rappresenta ciò che è nel documento, non come deve apparire • L’utente POP non si preoccupa dei dati ma della rendition • Per ottenere il risultato desiderato specificare dei foglio di stile, uno per la stampa, uno per il CD-Rom, uno per il Web, etc. XML - Introduzione ai concetti
Message Oriented Middleware • MOMl’applicazione killer di XML sul Web • MOM influenza radicalmente il concetto di middleware XML - Introduzione ai concetti
Message Oriented Middleware • Il markup XML fornisce informazioni sui dati: metadati • I client possono leggere dati provenienti da qualunque fonte, a condizione che siano in formato XML • Non più routine specializzate da aggiornare ogni volta, ma un singolo XML parser che separa il markup dai dati • L’utente MOM non si preoccupa della rendition • E’ compito dell’utente POP • I documenti MOM tendono ad essere a vita breve, veri messaggi da consumare XML - Introduzione ai concetti