Introduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language. a.a. 2004/05 Tecnologie Web 1



Documenti analoghi
extensible Markup Language

La struttura: DTD. Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino. laura.farinetti@polito.it

XML e PHP. Gestire XML con PHP. Appendice

Linguaggi per il web oltre HTML: XML

Capitolo 4 Pianificazione e Sviluppo di Web Part

HTML il linguaggio per creare le pagine per il web

Modellazione e Gestione di Informazioni non Strutturate

MODA-ML: Esempi di XSL (Extensible Stylesheet Language) Vocabolario di supporto alla creazione di un set di Schemi di documenti XML

La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni:

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione

Settimana I...1. Giorno 1 - Introduzione all XSLT...3

XML. XML è contemporaneamente: XML non è:

Corso di Informatica di base per le discipline umanistiche - XPATH

EXPLOit Content Management Data Base per documenti SGML/XML

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Tecnologie Web T Introduzione a XML

a cura di Maria Finazzi

Esercizi di JavaScript

XML (extensible Markup Language)

XML: extensible Markup Language

Reti di Calcolatori. Il Livello delle Applicazioni

Tecniche Multimediali

Introduzione a XML. Language

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO

Simple & Efficient.

XSL: extensible Stylesheet Language

G I O R D A N I A L E S S A N D R A I T T S E R A L E G. M A R C O N I

Implementazione di MVC. Gabriele Pellegrinetti

Infrastrutture INFormatiche Ospedaliere 2 Corso di laurea di Ingegneria Medica. Indice

Creare documenti XML. La natura epistemologica della codifica. Perché comprare XML? La struttura gerarchica ordinata. Riassumendo le componenti

Il linguaggio XML. Capitolo Introduzione al linguaggio XML

Sommario. Settimana - Gli elementi fondamentali Introduzione...xv. Giorno 1 - I linguaggi di markup...3

XML: La nascita del linguaggio

Definire linguaggi XML XSchema

STAMPA UNIONE DI WORD

19. LA PROGRAMMAZIONE LATO SERVER

I linguaggi di marcatura e XML per la codifica dei dati d archivio

XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Prefazione. Piersalvo Ortu 1

Corso di Amministrazione di Reti A.A. 2002/2003

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A Language) Stylesheet.

Esercitazione su Windows. Introduzione al calcolatore Introduzione a Windows

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

SISTEMI INFORMATIVI E TELEMEDICINA. 15. Usare XML con ADO.NET Prof. Mauro Giacomini

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

XML. Parte VI - Introduzione e nozioni fondamentali di sintassi. XML: Extensible Markup Language:

4 - XML e basi di dati

Siti web centrati sui dati (Data-centric web applications)

Guida all uso di Java Diagrammi ER

Lifephone. Introduzione. Database. Sito

Introduzione alla programmazione in C

Esercitazione 1 primi passi e uso dei file

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

Registratori di Cassa

Siti interattivi e dinamici. in poche pagine

XML e TEI: introduzione alla codifica dei testi letterari. La nascita del linguaggio. Il concetto di metalinguaggio di codifica SGML

Introduzione al Linguaggio C

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

MANUALE D USO DELLA PIATTAFORMA ITCMS

Università degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web T A.A Esercitazione 2 XML, DTD, XSD, Parser SAX/DOM

Web Programming Specifiche dei progetti

Esercizio data base "Biblioteca"

I file di dati. Unità didattica D1 1

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Tecniche Multimediali

PSG Table Builder Manuale Utente. PSG TABLE BUILDER Manuale Utente

Organizzazione delle informazioni: Database

Comprendere cosa è Internet e sapere quali sono i suoi principali impieghi. 25/09/2011 prof. Antonio Santoro

Mac Application Manager 1.3 (SOLO PER TIGER)

ScanDoc presentazione ed uso

Corso di Informatica

Referti on-line e CRM ReView Service Monitor Specifiche tecniche

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Sviluppo e integrazione di strumenti a supporto del reverse engineering di applicazioni flash

per scrivere un articolo da prima pagina! per inviare una newsletter Come si crea Comunicazione Anfaa Edizione 4a.2013

InterNet: rete di reti

XML. Concetti principali. Risultato possibile. Differenze tra XML e HTML

Applicazioni e Architetture Internet. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Manuali.net. Nevio Martini

Corso basi di dati Introduzione alle ASP

Transcript:

Introduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language a.a. 2004/05 Tecnologie Web 1

XML - I XML (exstensible Markup Language): XML è un formato standard, definito dal W3C (http://www.w3.org) indipendente dalla piattaforma, utilizzato per la rappresentazione di dati e di contenuti strutturati XML viene spesso presentato come il successore di HTML; in realtà: HTML è un linguaggio per il markup di documenti (pagine Web) XML è un meta-linguaggio, consente cioè la definizione di nuovi linguaggi a.a. 2004/05 Tecnologie Web 2

XML - II Vantaggi di XML: Si è imposto come standard per la condivisione di dati su Internet E` basato su una rappresentazione dei dati come stringhe di caratteri facilmente trasferibili via HTTP Sono stati sviluppati strumenti per la scrittura, l interpretazione, la gestione di documenti XML E` utilizzato per la condivisione e lo scambio di dati tra applicazioni a.a. 2004/05 Tecnologie Web 3

XML - III Che cos'è un meta-linguaggio? Un meta-linguaggio è un linguaggio per definire nuovi linguaggi (in questo senso è estensibile ) Per es: supponiamo di avere una ditta che importa e rivende caffè e di voler rappresentare il nostro listino prezzi; vorremmo un linguaggio che ci metta a disposizione i seguenti tag: <listinoprezzi> <caffe> <nome>mocha Java</nome> <prezzo>11.95</ prezzo> </caffe> <caffe> <nome>sumatra</nome> <prezzo>12.50</ prezzo> </caffe> </listinoprezzi> Listino prezzi caffè nome prezzo Mocha Java 11.95 Sumatra 12.50 a.a. 2004/05 Tecnologie Web 4

XML: DTD - I Possiamo definirlo! Utilizziamo una DTD (Document Type Definition), per definire il nuovo linguaggio (cioè l'insieme di tag di cui abbiamo bisogno): Definisco un tag <!ELEMENT listinoprezzi (caffe)*> "listinoprezzi", <!ELEMENT caffe (nome, prezzo)> costituito da un numero arbitrario <!ELEMENT nome (#PCDATA)> di tag "caffe" <!ELEMENT prezzo (#PCDATA)> Definisco un tag "caffe", costituito da un tag "nome" e da un tag "prezzo" I tag "nome" e "prezzo" non sono a loro volta costituiti da altri tag, ma contengono solo testo a.a. 2004/05 Tecnologie Web 5

XML: DTD - II coffees.dtd <?xml version='1.0' encoding='utf-8'?> <!ELEMENT listinoprezzi (caffe)*> <!ELEMENT caffe (nome, prezzo)> <!ELEMENT nome (#PCDATA)> <!ELEMENT prezzo (#PCDATA)> prologo: specifica la versione di XML e il set di caratteri usato listino.xml <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE listino SYSTEM coffees.dtd"> <listinoprezzi> <caffe> <nome>mocha Java</nome> <prezzo>11.95</ prezzo> </caffe> <caffe> <nome>sumatra</nome> <prezzo>12.50</ prezzo> </caffe> </listinoprezzi> all inizio del documento XML dichiariamo la DTD di riferimento a.a. 2004/05 Tecnologie Web 6

XML: DTD - III Una caratteristica fondamentale di XML è la possibilità di rappresentare la struttura delle informazioni (mediante i tag); in particolare i tag in un documento XML definiscono una struttura gerarchica: listinoprezzi listinoprezzi caffè nome prezzo caffè caffè caffè nome prezzo nome prezzo nome prezzo a.a. 2004/05 Tecnologie Web 7

XML: documenti ben formati Un documento XML è ben formato se rispetta le regole sintattiche dell XML Intuitivamente, un documento è ben formato sse: contiene tutte le componenti necessarie (1 prologo, 1 solo elemento radice,...) i suoi tag sono bilanciati, cioè ogni tag aperto viene chiuso: <TAG>bla</TAG> Se l elemento è vuoto: <TAG></TAG> <TAG/> i tag sono annidati correttamente, cioè l ultimo tag aperto è il primo ad essere chiuso: <TAG1><TAG2><TAG3>...</TAG3></TAG2></TAG1> NB: XML (a differenza di HTML) è case-sensitive! a.a. 2004/05 Tecnologie Web 8

XML: documenti validi - I Abbiamo detto che, utilizzando una DTD (Document Type Definition) possiamo definire nuovi linguaggi (cioè insiemi di tag) basati su XML Un documento XML è valido se è ben formato (sintassi XML) e se rispetta la DTD; per es, dato il frammento di DTD visto prima: <!ELEMENT listinoprezzi (caffe)*> <!ELEMENT caffe (nome, prezzo)> <!ELEMENT nome (#PCDATA)> <!ELEMENT prezzo (#PCDATA)> a.a. 2004/05 Tecnologie Web 9

XML: documenti validi - II struttura errata: l elemento prezzo NON è figlio di listinoprezzi (ma di caffe) tag non definito nella DTD <listinoprezzi> <caffe> <nome>mocha Java</nome> <prezzo>11.95</ prezzo> </caffe> <caffe> <nome>sumatra</nome> <prezzo>12.50</ prezzo> </caffe> </listinoprezzi> <listinoprezzi> <caffe> <marca>mocha Java</marca> </caffe> <prezzo>11.95</ prezzo> <caffe> <marca>sumatra</marca> </caffe> <prezzo>12.50</ prezzo> </listinoprezzi> è un documento valido NON è un documento valido a.a. 2004/05 Tecnologie Web 10

Parser XML: SAX - I Parser XML = strumento (programma) che verifica se un documento XML è ben formato Alcuni parser XML sono anche validanti, cioè verificano se un documento XML è ben formato e se è valido rispetto alla DTD (o XML-schema) di riferimento Per costruire applicazioni che usano documenti XML il parser deve offrire delle API per invocare l analisi sintattica, restituire risultati, validare, ecc. Per es. esistono i parser SAX (Simple API for XML), sviluppati per vari linguaggi di programmazione tra cui Java (JAXP: parser SAX di Sun Microsystems, offre API in Java) Ci sono anche dei parser utilizzabili via web, per es. il validatore di W3C: http://validator.w3.org/ a.a. 2004/05 Tecnologie Web 11

Parser XML: SAX - II Quando lanciamo un parser (validante) su un documento XML, il parser analizza il file xml se trova un errore (per es: manca prologo, tag aperto ma non chiuso, tag non bilanciati, tag sconosciuto, ) lo segnala e si ferma (documento non ben formato e/o non valido) altrimenti, arriva fino a fine documento (e si ferma) Esempio di segnalazione di errore: org.xml.sax.saxparseexception: Element type marca must be declared. at org.apache.xerces.parsers.abstractsaxparser.parse at. a.a. 2004/05 Tecnologie Web 12

Parser XML: SAX - III Come funziona un parser XML? legge il documento XML in modo sequenziale, carattere per carattere, partendo dall inizio lancia eventi che contengono informazioni sui caratteri appena letti; per es: quando incontra un tag aperto, lancia l evento startelement() che indica l inizio di un elemento XML; quando incontra un tag chiuso lancia l evento endelement(), ecc. doc. XML Stream XML Parser startdocument event startelement event enddocument event Applicazione Java startdocument() startelement(). enddocument() a.a. 2004/05 Tecnologie Web 13

Parser XML: SAX - IV Si può scrivere un applicazione (Java) che cattura gli eventi lanciati dal parser durante l analisi del documento li gestisce (per es. estrae dati e li salva, stampa a video, ecc.) i parser possono essere usati per estrarre informazioni da documenti XML; per es. JAXP (il parser SAX di Sun Microsystems), offre API in Java per catturare gli eventi e gestirli a.a. 2004/05 Tecnologie Web 14

Parser XML: DOM - I I parser SAX fanno l analisi sintattica del documento XML basandosi sul concetto di evento W3C ha definito le specifiche per una rappresentazione alternativa di documenti XML, maggiormente strutturata permette di analizzare e modificare il contenuto del documento L idea di base è quella di utilizzare il fatto che l annidamento dei tag definisce una struttura gerarchica che permette una rappresentazione ad albero, in cui gli elementi sono oggetti che rappresentano i nodi dell albero DOM (Document Object Model) = W3C standard per gestione di documenti XML a.a. 2004/05 Tecnologie Web 15

Parser XML: DOM - II DOM (Document Object Model): rappresenta i documenti con un modello ad oggetti rappresenta i documenti come strutture ad albero specifica delle interfacce (API) per navigare all interno del documento (albero) e per accedere alle varie parti listino.xml <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE listino SYSTEM coffees.dtd"> <listinoprezzi> <caffe> <nome>mocha Java</nome> <prezzo>11.95</ prezzo> </caffe> <caffe> <nome>sumatra</nome> <prezzo>12.50</ prezzo> </caffe> </listinoprezzi> DOCUMENT (listino) listinoprezzi caffè caffè child elements Document Root element nome prezzo nome prezzo a.a. 2004/05 Tecnologie Web 16

Parser XML: DOM - III Molti parser (es. JAXP) sono conformi a DOM usano la rappresentazione DOM (libreria org.w3c.dom) per gestire documenti La librearia org.w3c.dom offre un supporto completo per creare, navigare e modificare un albero (documento) a partire dalla radice; a.a. 2004/05 Tecnologie Web 17

Parser XML: DOM - IV DOM è nato per trattare documenti: è document-oriented (focalizzato sulle parti di cui un documento si compone) la gestione di strutture dati è possibile, ma un po ostica sono stati sviluppati altri modelli di rappresentazione che facilitano l accesso e la modifica; per es: JDOM, DOM4J, JAXB JAXB (Java Architecture for XML Binding) è nato apposta per trattare la rappresentazione XML di strutture dati a.a. 2004/05 Tecnologie Web 18

XML Schema - I XML-Schema è una specifica di W3C (www.w3.org/tr/xmlschema-0/) alternativa (e più recente) di DTD, per definire linguaggi basati su XML; XML-Schema permette di: specificare la struttura dei dati specificare il tipo del contenuto dei dati NB: DTD permette di specificare la struttura, ma non il (tipo del) contenuto! Es: coffeeorder.xsd definisce la struttura di documenti XML che descrivono ordini di caffè (definisce un linguaggio XML per descrivere ordini di caffè) a.a. 2004/05 Tecnologie Web 19

coffeeorder.xsd [prima parte] XML Schema - II <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="coffeeorder" type="coffeeordertype"/> <xsd:complextype name="coffeeordertype"> <xsd:sequence> <xsd:element name="billto" type="address"/> <xsd:element name="items" type="items"/> <xsd:element name= "comment" type= "xsd:string" minoccurs= "0"/> </xsd:sequence> elemento <xsd:attribute name="orderdate" type="xsd:date"/> opzionale </xsd:complextype> definizione del tipo complesso CoffeeOrderType come sequenza di elementi: un elemento di tipo (complesso) Address un elemento di tipo (complesso) Items un elemento di tipo (semplice, predefinito) string namespace per XML-Schema dichiarazione dell element (tag) coffeorder (di tipo CoffeOrderType) definizione dell attributo orderdate, di elementi di tipo CoffeeOrderType a.a. 2004/05 Tecnologie Web 20

XML Schema - III coffeeorder.xsd [seconda parte] <xsd:complextype name="address"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="street" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="country" type="xsd:string"/> </xsd:complextype> <xsd:complextype name="items"> </xsd:complextype> </xsd:schema> definizione del tipo complesso Items definizione del tipo complesso Address come sequenza di 3 elementi (name, street, city) di tipo (semplice, predefinito) string a.a. 2004/05 Tecnologie Web 21

ESEMPIO: coffeeorder.xml XML Schema - IV <?xml version="1.0"?> <coffeeorder orderdate="1999-10-20" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <billto country="italy"> <name>paolo Bianchi</name> <street>123 via Po</street> <city>torino</city> </billto> <items> <item partnum="242-no" > <coffeename>lavazza Oro</coffeeName> <quantity>5</quantity> <price>19.99</price> </item> <item partnum="242-mu" > <coffeename>nescafe</coffeename> <quantity>3</quantity> <price>19.98</price> </item> </items> </coffeeorder> all inizio del documento XML dichiariamo L XML-Schema di riferimento a.a. 2004/05 Tecnologie Web 22

XML Schema - V Per gestire schemi grossi o condividere definizioni è possibile importare uno schema esterno Supponiamo, per es, di definire il tipo Address in un documento (file) separato, address.xsd e poi di importarlo in coffeeorder.xsd (dichiarandone una URI): <include schemalocation= http://www.example.com/schemas/address.xsd /> in questo modo coffeeorder.xsd può dichiarare elementi di tipo Address come se la definizione fosse interna NB: uno schema può importare più schemi esterni mediante clausole include a.a. 2004/05 Tecnologie Web 23

XML: XSL - I La principale caratteristica di XML è la separazione del contenuto del documento dal suo aspetto (grafico): Il documento XML rappresenta unicamente il contenuto informativo che si intende pubblicare L'aspetto finale del documento è prodotto per mezzo di fogli di stile scritti in XSL (exstensible Stylesheet Language): <listinoprezzi> <caffe> <nome>mocha Java</nome> <prezzo>11.95</ prezzo> </caffe> <caffe> <nome>sumatra</nome> <prezzo>12.50</ prezzo> </caffe> </listinoprezzi> documento XML XSL Listino prezzi caffè marca prezzo Mocha Java 11.95 Sumatra 12.50 doc. finale (per es. brochure) a.a. 2004/05 Tecnologie Web 24

XML: XSL - II Grazie a questa caratteristica possiamo gestire un unica versione del contenuto (dati) che vogliamo rappresentare e poi generare visualizzazioni diverse (in formati diversi: word, pdf, excel, html, ) riutilizzo del contenuto in contesti diversi: documento XML pagina Web (HTML) record in un database brochure ecc a.a. 2004/05 Tecnologie Web 25

XML: XSL - III Un processore XSLT legge in input il file XML che rappresenta il contenuto + il foglio di stile XSL (che è un file di testo con estesione.xsl, per es: stile1.xsl) ed esegue la trasformazione e produce il risultato (un file di testo che può essere a sua volta interpretato come pagina HTML, record di database, ecc.) documento XML stylesheet XSL processore XSLT pagina Web (HTML) record in un database brochure ecc a.a. 2004/05 Tecnologie Web 26

XML: XSL - IV Modalità per applicare una trasformazione XSL ad un documento XML (cioè per invocare il processore XSLT): 1. Il browser (per es. IE6) contiene un processore XSLT: il file XML viene caricato come una normale pagina; il foglio di stile da applicare è indicato nel file XML; il risultato viene visualizzato dal browser stesso 2. Un programma (per es. Java) standalone applica il foglio di stile XSL al file XML 3. Un Web Server applica il foglio di stile XSL al file XML e spedisce il risultato al client (browser) che ha originato l'applicazione Vediamo un esempio della prima modalità a.a. 2004/05 Tecnologie Web 27

XML: XSL - V Il browser (per es. IE6) contiene un processore XSLT: il file XML viene caricato come una normale pagina nel file XML indichiamo qual è il foglio di stile da applicare: <?xml-stylesheet type="text/xsl" href="listinoweb.xsl"?> nel file XSL indichiamo il namespace specifico usato dal browser: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/tr/wd-xsl"> Files: coffees.dtd, listino.xml, listinoweb.xsl, listinocarta.xsl Per provare l applicazione di diversi fogli di stile XSL allo stesso documento XML: - in listino.xml mettere il riferimento a listinoweb.xsl - aprire listino.xml con IE per vedere il risultato della trasformazione - modificare il riferimento in listino.xml (a listinocarta.xsl) - aprire listino.xml con IE per vedere il risultato della trasformazione a.a. 2004/05 Tecnologie Web 28