XML Prof. Barbara Pernici Politecnico di Milano aggiornato 10/12/2002.

Post on 01-May-2015

220 views 0 download

Transcript of XML Prof. Barbara Pernici Politecnico di Milano aggiornato 10/12/2002.

XML

Prof. Barbara Pernici

Politecnico di Milano

aggiornato 10/12/2002

La tecnologia Web

• La tecnologia Web come base di sistemi informativi complessi

• Come scambiare i dati tra sistemi diversi:– Quali sono i principali problemi da

risolvere:• Separazione tra dati, logica applicativa e

presentazione• Sicurezza

Sommario

• Separare contenuto e presentazione

• Struttura di un documento

• Definizione della struttura

• applicazioni

Interoperabilita’ tra applicazioni basate su web

In che formato vengono scambiati i dati?

Formati standard

– HTML• linguaggio di markup per presentazione +

contenuto

– XML• metalinguaggio (serve a definire linguaggi di

markup)• per descrizione contenuto• altri formati per descrizione presentazione

(XSL)

XML

• XML (eXtensible Markup Language) è un linguaggio che descrive il contenuto delle pagine Web

• Standard approvato dal W3C nel 1998• Sta diventano lo standard per lo

scambio dei dati sul Web...• ...molti software vendors stanno

sviluppando tools per importare/esportare XML

XML

• Come HTML, prevede l’utilizzo di tag:<nometag>...</nometag>

• A differenza di HTML:– possono essere definiti nuovi tag– le strutture possono essere

arbitrariamente annidate

Elementi sintattici

• Element: porzione di testo limitata da tag– Start tag (e.g, <persona>)– End tag (e.g., </persona>)

• Subelement

persona

nome cognome email•Esempio:<persona>

<nome> Julia</nome><cognome>Roberts </cognome><email> jr@yahoo.it</email>

</persona>

XML

esempio

CHECK

ADDRESS CHECKNO DATE PAYEE AMOUNT

Esempio assegno

<CHECK><ADDRESS>John W. CowanGale L. Cowan123 E. 345th St, #2ANew York, NY 10111</ADDRESS><CHECKNO>1013</CHECKNO><DATE>19980615</DATE><PAYEE>Consolidated Edison</PAYEE><AMOUNT>USD 65.75</AMOUNT>

<BANK>The Chase Manhattan Bank270 Park AvenueNew York, NY 10017</BANK><MICR>

<ROUTE>021000128</ROUTE><ACCOUNT>077442422</ACCOUNT>

</MICR><SIG TYPE=”MD5”>0921937AB903C93D8932F39D9F9EC123</SIG></CHECK>

Note esempio assegno

• tutto quello che sta tra start-tag e il corrispondente end-tag viene chiamato elemento

• gli elementi CHECK e MICR contengono altri elementi

• gli altri solo testo• e’ possibile avere elementi misti

Attributi

• Gli elementi possono avere attributi

• Gli attributi possono avere valori• Attributi e valori scritti nello start

tag• Elemento SIG ha attributo TYPE,

con valore “MD5”.

Attributi

• Attributi: gli attributi sono coppie (attributo,

valore)Esempio :<persona nome=“Julia” cognome=“Roberts”email=“jr@yahoo.it”>Opp.<persona cognome=“Roberts”><nome> Julia</nome><email> jr@yahoo.it</email></persona>

XML si autodocumenta

• Confronto con:02100012800007744242200010139806156575CONSOLIDATED EDISON

• Contiene le stesse informazioni (eccetto firma), ma solo un programma e’ in grado di decifrarlo

Testo in chiaro

• I formati proprietari dei dati cambiano continuamente

• I dati del censimento USA scritti a mano del 1860 sono piu’ accessibili dei dati del 1960 su schede perfomate

• Il testo in chiaro non dipende da uno specifico programma per crearlo e editarlo

Document Type Definitions

(DTDs)• Descrivono gli elementi validi e

che tipo di contenuto possono avere

• Descrivono gli attributi validi e i valori di default

• autodocumentazione

Esempio

<!DOCTYPE db[<!ELEMENT db (persona*)><!ELEMENT persona (nome, cognome,

email)><!ELEMENT nome (#PCDATA)><!ELEMENT cognome (#PCDATA)><!ELEMENT email (#PCDATA)>]>

Struttura del documento

• Elementi semplici: Le stringhe di caratteri sono indicate come #PCDATA (Parsed Character Data)

• Elementi composti

Definizione di elementi composti

• Persona* è una espressione regolare chevuol dire un qualsiasi numero dipersone• Altre espressioni regolari sono:– e+, una o più occorrenze– e?, zero o uno– e1|e2, alternanza– e1,e2, concatenazione

Attributi

Doc XML

<prodotto>

<nome linguaggio=“Italiano”

categoria=“pelletteria”>

Borsa Fendi

</nome>

<prezzo valuta=“euro”>

350

</prezzo>

</prodotto>

E’ possibile fare una dichiarazione dei tipi diattributi

DTD<!Attlist nomelinguaggio CDATA #REQUIREDcategoria CDATA #IMPLIED><!Attlist prezzovaluta CDATA #IMPLIED>

Definizione attributi

#REQUIRED= obbligatorio#IMPLIED= opzionaleTipo CDATA= stringhe

• Nota: non ho modo di esprimere tipi interi, date,

valuta nei DTD...è tutto genericamente CDATA

Parte del DTD per Check

<!-- The DTD for an ordinary bank check --><!ELEMENT ACCOUNT #PCDATA><!ELEMENT ADDRESS #PCDATA><!ELEMENT AMOUNT #PCDATA><!ELEMENT CHECKNO #PCDATA>...<!ELEMENT MICR (ROUTE, ACCOUNT)><!ELEMENT CHECK (ADDRESS, CHECKNO, DATE, PAYEE,AMOUNT, BANK, MICR, SIG, MEMO?)><!ATTLIST SIGTYPE CDATA #REQUIRED>

Definizione attributi

ID, IDREF, IDREFS: • il tipo ID indica che l’attributo è un

identificatore; • il tipo IDREF indica che il valore

dell’attributo è un identicatore di un altro elemento;

• Il tipo IDREFS indica che il valore dell’attributo è una lista di identificatori separati da spazi

Esempio DTD

<!DOCTYPE family<!ELEMENT family (person*)><!ELEMENT person (name)><!ELEMENT name (#PCDATA)><!ATTLIST personId ID #REQUIREDmother IDREF #IMPLIEDfather IDREF #IMPLIEDchildren IDREFS #IMPLIED>>

Esempio dati in documento XML

<family><person id=”jane” mother=”mary” father=”john”><name> Jane Doe </name></person><person id=”john” children=”jane jack”><name> John Doe </name></person><person id=”mary” children=”jane jack”><name> Mary Smith </name></person><person id=”jack” mother=”mary” father=”john”><name> Jack Smith </name>/person></family>

Memorizzazione DTD

Alternative:– riferimento a file– semplici DTD inseriti direttamente nel

documento– repositories

Applicazioni

Diverse visualizzazioni per le stesse informazioni– Le informazioni rappresentate da un documento XMLpossono essere rappresentate in forme diverse con diversidocumenti XSL

Integrazione dati– Dati provenienti da più sorgenti possono essere mappati sudocumenti XML che ne descrivono lo schema e integrati inun unico documento

Integrazione di componenti– Componenti basati su tecnologie diverse possonocomunicare tra loro attraverso protocolli ASCII descritti inXML

Applicazioni

• XML/EDI (electronic business transactions between companies)

• Workflow Management• Wrapping Legacy Systems• XHTML: ridefinizione di HTML in XML

Riepilogo

• Separare contenuto e presentazione

• Struttura di un documento

• Definizione della struttura

• Applicazioni