Upload
benedetta-vanni
View
221
Download
1
Embed Size (px)
Citation preview
XML
Prof. Barbara Pernici
Politecnico di Milano
Introduzione a XML
Sommario
• Separare contenuto e presentazione
• Struttura di un documento
• Definizione della struttura
• applicazioni
Interoperabilita’ tra applicazioni basate su web
SISTEMA A SISTEMA B
In che formato vengono scambiati i dati?
Formati standard per il web
– HTML (Hypertext Markup Language)• linguaggio di markup per presentazione +
contenuto
– XML (eXtensible Markup Language)• metalinguaggio (serve a definire linguaggi di
markup)• per descrizione contenuto• altri formati per descrizione presentazione (XSL
eXtensible stylesheet language)
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> [email protected]</email>
</persona>
Note esempio
• tutto quello che sta tra start-tag e il corrispondente end-tag viene chiamato elemento
• gli elementi possono essere composti e contenere altri elementi
Documento “ben formato”
• Ogni documento XML deve contenere un solo elemento radice
• Struttura gerarchica del documento
• a ogni tag di apertura corrisponde un tag di chiusura
Attributi
• Gli elementi possono avere attributi
• Gli attributi possono avere valori• Attributi e valori scritti nello start
tag• I valori sono indicati tra virgolette
Attributi
• Attributi: gli attributi sono coppie (attributo,
valore)Esempio :<persona nome=“Julia” cognome=“Roberts”email=“[email protected]”>Opp.<persona cognome=“Roberts”><nome> Julia</nome><email> [email protected]</email></persona>
Piazzola di sosta 1
La struttura dei documenti
XML si autodocumenta
• Confronto con:Julia:Roberts:[email protected]
• Contiene le stesse informazioni, ma in generale e’ necessario conoscere la struttura del record per comprendere l’informazione
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 la sua creazione e modifica
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• Elementi vuoti: definiti con parola
chiave EMPTY
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 alternativa– 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 degliattributi associati a un elemento
DTD (solo definizione attributi)
<!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
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>
Piazzola di sosta
Applicazioni utilizzando XML
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 formati di scambio definiti
tramiteXML
Applicazioni
• XML/EDI (electronic business transactions between companies)
• Workflow Management• Definizione di documenti informatici• Wrapping Legacy Systems• XHTML: ridefinizione di HTML in XML
Riepilogo
• Separare contenuto e presentazione
• Struttura di un documento
• Definizione della struttura
• Applicazioni