XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis...

64
XML Introduzione Laurea Magistrale Laurea Magistrale in Informatica in Informatica Reti 2 (2005/06) Reti 2 (2005/06) dott. Francesco De Angelis [email protected]

Transcript of XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis...

Page 1: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML Introduzione

Laurea Magistrale Laurea Magistrale in Informaticain Informatica

Reti 2 (2005/06)Reti 2 (2005/06)

dott. Francesco De [email protected]

Page 2: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 2

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

Page 3: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 3

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

Page 4: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 4

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;

Page 5: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 5

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

Page 6: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 6

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

Page 7: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 7

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…)

Page 8: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 8

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!!!

Page 9: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 9

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

Page 10: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 10

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

Page 11: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 11

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

Page 12: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 12

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.

Page 13: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 13

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

Page 14: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 14

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

Page 15: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 15

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

Page 16: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 16

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

Regole XML

Tag specifici

Appl.

xmlparser

Dati (file XML)

Il concetto di metalinguaggio

Page 17: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 17

metalinguaggio

documenti

Il concetto di metalinguaggio

XML

Math-ML XHTML DocBook

sintassi

metasintassi

linguaggi

Page 18: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 18

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

Page 19: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 19

La struttura gerarchica ordinatatesto

introduzione

?

frontespizio

?corpo

+

titolo autore

titolo

paragrafo

+

capitolo

+

titolo paragrafo

+?

appendice

?

titolo +

*

PCDATA enfasi citazione

paragrafo

*

PCDATA enfasi citazione

Page 20: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 20

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

Page 21: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 21

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

Page 22: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 22

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.

Page 23: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 23

Criteri di progettazione di XML

Nel documento ufficiale di XML si elencano i seguenti obiettivi progettuali:

1. 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

2. 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

Page 24: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 24

Criteri di progettazione di XML

3. 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

Page 25: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 25

Criteri di progettazione di XML

4. 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

5. 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

Page 26: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 26

Criteri di progettazione di XML

6. 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...

7. 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

Page 27: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 27

Criteri di progettazione di XML

8. 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

9. I documenti XML devono essere facili da creare

Page 28: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 28

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

Page 29: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 29

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 root element 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 document tree

Sintassi di un documento XML

Page 30: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 30

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.

articolo

testo

paragrafoparagrafo

testo

immagine

paragrafo

codice

testo

titolo

titolo

titolotitolo

file

Sintassi di un documento XML

Page 31: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 31

<?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>

Sintassi di un documento XML

Page 32: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 32

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" ?>

Page 33: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 33

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 analoghealla seguente:

<paragrafo><testo>abcdefghi...</paragrafo></testo>

Sintassi di un documento XML

Page 34: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 34

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>

Sintassi di un documento XML

Page 35: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 35

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

&amp; & &lt; < &gt; > &quot; " &apos; ‘

Sfruttando le entità, l’esempio precedente diventa:

<testo> il simbolo &lt; indica minore di</testo>

Sintassi di un documento XML

Page 36: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 36

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.

Sintassi di un documento XML

Page 37: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 37

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.

Sintassi di un documento XML

Page 38: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 38

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

Page 39: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 39

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

Page 40: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 40

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

Page 41: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 41

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

Page 42: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 42

Quando scegliere XML?

Quali sono le condizioni per adottare XML in un progetto?

E’ nuovo ed è di moda ...ma ciò è banale!Alcune buone e vere ragioni per l’uso di XML:

Produzione di documenti automatici Gestione indipendente di produzione e uso di dati Elaborazione di dati con aspetti strutturali complessi

Page 43: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 43

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

Quando scegliere XML?

Page 44: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 44

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.

Quando scegliere XML?

Page 45: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 45

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

Quando scegliere XML?

Page 46: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 46

Esempio: Il publishing

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

Page 47: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 47

Opportunità d’uso

POP (Presentation oriented publishing) MOM (Message oriented middleware)

Page 48: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 48

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.

Page 49: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 49

Message Oriented Middleware

MOM l’applicazione killer di XML sul Web MOM influenza radicalmente il concetto di middleware

Page 50: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 50

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

Page 51: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 51

Riepilogando

Un documento XML può essere utilizzato in modi diversi Parsing: estrazione del contenuto a partire dai

metadati Rendering: visualizzazione del contenuto in funzione

di uno stylesheet

Page 52: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 52

XML ed EDI

Cosa è l’Electronic Data Interchange Il vecchio EDI Il nuovo EDI: XML e Internet

Page 53: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 53

XML ed EDI

EDI è lo scambio tra computer di informazioni strutturate, che aderiscono a standard di messaggi, con il minimo intervento umano

Comprende: Un set di regole sintattiche per strutturare i dati Un protocollo per lo scambio interattivo Messaggi standard

Le organizzazioni che inviano o ricevono documenti sono chiamate in terminologia EDI "trading partners"

Page 54: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 54

XML ed EDI

Negli ultimi 40 anni le aziende hanno investito migliaia di miliardi (di $!) nell’automazione dei loro processi interni

Gli investimenti hanno portato ad un notevole miglioramento dell’efficienza

Questa efficienza non è ancora stata estesa ai processi esterni Le aziende hanno creato isole di automazione, isolate

dai loro partner - clienti, fornitori, etc. Le interazioni esterne sono inefficienti perché spesso

basate su processi manuali

Page 55: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 55

Cosa è EDI… e cosa non è!

EDI è stata proposta come la soluzione ai problemi di integrazione fra processi di aziende diverse

EDI è interazione effettiva tra i sistemi EDI, dentro una grande corporation, è interazione

tra i processi delle diverse divisioni Cosa non è EDI

EDI non è import/export di dati fra sistemi EDI non sono i batch serali …

Page 56: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 56

Il vecchio EDI

Formati diversi per ciascuna applicazione

Il codice applicativo non ha una vista univoca

Nuovi attori hanno impatti devastanti

Page 57: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 57

Il vecchio EDI

Può soltanto condividere elementi definiti in precedenza

I nuovi bisogni non possono essere facilmente soddisfatti

Page 58: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 58

Il vecchio EDI

Ci sono notevoli differenze tra quanto promesso e le attuali implementazioni di EDI, fondamentalmente errate

Difficili e costose da implementare Richiedono soluzioni specifiche per ogni coppia di

partner E’ come se fosse necessario disporre di una linea

telefonica dedicata per ogni persona con la quale si comunica

Internet è la soluzione? ...XML può esserlo

Page 59: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 59

XML può essere la soluzione

XML è una notazione universale che consente ai sistemi di memorizzare e trasferire dati che possono essere compresi da qualunque altro sistema Mantiene il contenuto e la struttura Separa le business rule dai dati

Page 60: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 60

XML può essere la soluzione

Formati diversi per ciascuna applicazione

XML fornisce una singola vista logica

L’architettura flessibile supporta nuovi componenti

Page 61: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 61

Internet oggi

Poco supporto dai tool Time-to-market

eccessivo Cost of Ownership

elevato Tecnologie ed API

proprietarie

Page 62: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 62

Internet oggi

Reazione lenta ai cambiamenti

Costi di manutenzione elevati

Flessibilità limitata I cambiamenti dei dati

si propagano a tutti i livelli

Page 63: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 63

XML + Internet oggi

Più standard Più semplice Più facilmente

estensibile Minori costi di

manutenzione Maggiore reattività API e template

language standard

Page 64: XML Introduzione Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis francesco.deangelis@unicam.it.

XML - Introduzione ai concetti 64

Alcuni Riferimenti

Deitel et al, XML Corso di programmazione, Apogeo http://www.w3.org/ http://www.w3schools.com