Laboratorio di Programmazione Distribuita. Introduzione a XML. Dott. Marco Bianchi Università degli Studi di L'Aquila

Documenti analoghi
Document Type Definition (DTD)

extensible Markup Language

XML: La nascita del linguaggio

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

XML: extensible Markup Language

Introduzione a XML. Language

a cura di Maria Finazzi

HTML+XML= XHTML. Che cos è l XHTML

Tecnologie Web T Introduzione a XML

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

XML: sintassi. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 1

Informatica A per Ingegneria Gestionale ( ) Il linguaggio HTML. Elisa Quintarelli-Laura Mandelli. HyperText Markup Language

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

APPENDICE C extensible Markup Language

Tecniche Multimediali

/XML ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 XML

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

Tecniche Multimediali

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

XML. XML è contemporaneamente: XML non è:

Working Draft 0.5 (Telefonia)

Portale Multicanale delle PA del territorio della Regione Emilia-Romagna: un inizio di rete semantica di informazioni

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

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

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_5 V1.11. JSP parte E

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

XML e i database geografici. Capitolo 3. XML ed i database geografici. 3.1 Da HTML a XML. Che cos'è XML? Architettura dei Database Territoriali

Laboratorio Matematico Informatico 2

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

Linguaggi per il web oltre HTML: XML

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

Laboratorio di Basi di Dati e Multimedia

XML (extensible Markup Language) e i Linguaggi di Schema

SVILUPPARE TEMPLATE CON ARIADNE WCM. Linguaggi e tecnologie per sviluppare siti web

Introduzione al Linguaggio HTML

XML (extensible Markup Language)

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

Modellazione dei dati in UML

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

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

XML Master di II livello "Sistemi informativi geografici per il monitoraggio e la gestione del territorio"

Semantic Web. Semantic Web. Il Semantic Web: una semplice estensione. Il Web oggi. Il Semantic Web. Semantic Web

Introduzione al linguaggio XML, extensible Markup Language

CMS MUSEO&WEB. Mappe grafiche. Andrea Tempera (OTEBAC) 12 aprile 2010

Corso di Informatica di base per le discipline umanistiche - XPATH

XSL: extensible Stylesheet Language

Creare un Ipertesto. 1

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

Introduzione. Portare HTML nella famiglia XML Mantenere compatibilità con i software che supportano HTML

Rappresentare i file XML - XSL

Simple & Efficient.

Guida all uso di Java Diagrammi ER

Protocolli applicativi: FTP

APPUNTI DI HTML (SECONDA LEZIONE)

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

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

Modellazione e Gestione di Informazioni non Strutturate

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

Informatica per la comunicazione" - lezione 10 -

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

XML FONDAMENTI ED ELEMENTI BASE DEL LINGUAGGIO...

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Capitolo 4 Pianificazione e Sviluppo di Web Part

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

XSLT WWW. Fabio Vitali 14 aprile 2000

REPORT DI VALUTAZIONE DELL ACCESSIBILITÀ

2 Reti di Calcolatori XML

Prefazione. Piersalvo Ortu 1

Introduzione HTML. Maurizio Palesi. Multimedialità - Maurizio Palesi 1

I link e l'ipertestualità

Introduzione al Semantic Web

Laboratorio di Ingegneria Informatica

ma l XML va ben al di là dell HTML: serve per descrivere

XML e standard connessi. XML, XML-Names, XSL, XPointer, XLink

Linguaggi per la descrizione dei documenti

Laboratorio di Tecnologie Web HTML: Introduzione Dott. Stefano Burigat

Laboratorio di RETI DI CALCOLATORI

Itis Cardano. Introduzione a HTML. Pavia. M. Rivera Itis Cardano Pavia. A.s

XML. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A

TECN.PROG.SIST.INF. XML. Roberta Gerboni

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML

Introduzione al linguaggio XSL (exensible Styles Language) XSLT(eXensible Styles Language Trasformations)

Alcune regole di base per scrivere un programma in linguaggio C

Creare un sito Multilingua con Joomla 1.6

6. XML E RAPPRESENTAZIONE DEL FORMATO DI RISPOSTA

Corso di HTML. Prerequisiti. Modulo L3. 1-Concetti generali. Browser Rete Internet Client e server. M. Malatesta 1-Concetti generali-12 28/07/2013

Esercizi di JavaScript

HTML il linguaggio per creare le pagine per il web

XML (extensible Markup Language)

MANUALE D USO DELLA PIATTAFORMA ITCMS

SVI Nuovo Sistema Revisioni

XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS

Sicurezza dei dati. Xml Encryption e Digital Signature. Sicurezza dei dati. XML Encryption. Svantaggio di SSL. SSL (Secure Socket Layer)

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

REPORT DI VALUTAZIONE DELL ACCESSIBILITÀ

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

Il linguaggio HTML - Nozioni di base

HTML 1 AVVISO. Terminologia. Introduzione ad HTML. HyperText Markup Language

XML e Basi di Dati Corso di Basi di Dati 1. XML e basi di dati. Angelo Montanari. Dipartimento di Matematica e Informatica Università di Udine

Transcript:

Laboratorio di Programmazione Distribuita Dott. Marco Bianchi Università degli Studi di L'Aquila bianchi@di.univaq.it http://di.univaq.it/~bianchi

Cos'è XML? XML = extensible Markup Language E' un meta-linguaggio di markup Raccomandazione W3C: 1998 XML 1.0 2000 XML 1.0 (second edition) 2004 XML 1.1 Homepage XML: http://www.w3c.org/xml/ Derivato da, e compatibile con, l'sgml (Standard Generalized Markup Language)

La famiglia XML SGML HTML XML GML Geography MathML Mathematical WML Wireless... CML Chemical

XML in 10 punti 1) XML serve a strutturare i dati 2) XML assomiglia un po' a HTML 3) XML è testo ma non da leggere 4) XML è prolisso per design 5)XML è una famiglia di tecnologie 6) XML è nuovo, ma non così nuovo 7) XML porta da HTML a XHTML 8) XML è modulare 9) XML è la base di RDF e il Web Semantico 10) XML è gratis, indipendente dalla piattaforma e ben supportato

A cosa serve XML E' uno strumento indipendente dall' hardware e dal software utile per Memorizzare Scambiare informazioni.

Esempio di utilizzo di XML (1) AcPharm39156 Nome: Acme Pharmaceuticals Co. Indirizzo in USA : Via: 7301 Smokey Boulevard Città: Smallville Stato: Indiana CAP: 94571

Esempio di utilizzo di XML (1) AcPharm39156 DB2 AcPharm39156 DB1... Diverse tabelle Diverse codifiche

Esempio di utilizzo di XML (1) AcPharm39156?!? DB2 DB1 I sistemi non possono comunicare direttamente DB3 Necessario un convertitore per ogni combinazione possibile

Esempio di utilizzo di XML (1) <customer-details id= AcPharm39156 > <name>acme Pharmaceuticals Co.</name> <address country= US > <street>7301 SmokeyBoulevard</street> <city>smallville</city> <state>indiana</state> <postal>94571</postal> </address> </customer-details>

Esempio di utilizzo di XML (1) XML!!! 2 DB1 DB2 Ok AcPharm39156 XML XML AcPharm39156 1 3

Esempio di utilizzo di XML (2) HTML WML Server Web

Esempio di utilizzo di XML (2) Livello contenuti XML Livello presentazione HTML WML Server Web

HTML vs XML Linguaggio di markup per la presentazione Linguaggio di markup per i contenuti Progettato e guidato dalla visualizzazione Progettato per lo scambio di dati fra applicazioni software e guidato dai dati Elementi predefiniti Consente elementi definiti da utente

HTML vs XML Blandamente definito e interpretato Strettamente definito e interpretato Elementi vuoti non necessitano chiusura: Es. <BR> Tutti gli elementi devono essere chiusi Es. <BR/>

Da HTML...... <p><b>mrs. Mary McGoon</b> <br> 1401 Main Street <br> Anytown, NC 34829</p>...

... a XML <address> <name> <title>mrs.</title> <first-name>mary</first-name> <last-name>mcgoon</last-name> </name> <street>1401 Main Street</street> <city>anytown</city> <state>nc</state> <postal-code>34829</postal-code> </address>

Esempio di utilizzo di XML (3) Web

Esempio di utilizzo di XML (3) Web A+O^N #S12_C OEaWq jal)nw2 1M,w?-H Jjw29(çà 32n$nwM hfn1baz9òm mp[2~nwqnb wem27cnm kn20,c_wù+ &9jc'làa,fèfj?

Esempio di utilizzo di XML (4) Semantic Web RDF A+O^N + #S12_C OWL RDF OEaWq + jal)nw2 OWL 1M,w?-H RDF Jjw29(çà + OWL 32n$nwM RDF hfn1baz9òm + mp[2~nwqnb OWL wem27cnm RDF kn20,c_wù+ + OWL &9jc'làa,fèfj!

Esempio di utilizzo di XML (4) Semantic Web: The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation. Tim Berners-Lee, James Hendler, Ora Lassila, The Semantic Web, Scientific American, May 2001

Esempio di utilizzo di XML (4) Semantic Web Esempio: RDF A+O^N Vacanza di + due settimane #S12_C OWL con destinazione Maldive, pernottamento in hotel 4 stelle con vista mare e spiaggia privata. Viaggio in aereo con posto per non RDF fumatori. OEaWq Costo massimo di + 2000 Euro jal)nw2 a persona. Utente OWL 1 3 1M,w?-H RDF Jjw29(çà + OWL 32n$nwM 2 RDF hfn1baz9òm + mp[2~nwqnb OWL wem27cnm RDF kn20,c_wù+ + OWL &9jc'làa,fèfj Agente Software

Basi di XML

Tags <address> <name> <title>mrs.</title> <first-name>mary</first-name> <last-name>mcgoon</last-name> </name> <street>1401 Main Street</street> <city state="nc">anytown</city> <postal-code>34829</postal-code> </address> Un tag è il testo tra la parentesi angolare sinistra (<) e la destra (>). Ci sono tag di apertura e tag di chiusura

Elementi <address> <name> <title>mrs.</title> <first-name>mary</first-name> <last-name>mcgoon</last-name> </name> <street>1401 Main Street</street> <city state="nc">anytown</city> <postal-code>34829</postal-code> </address> Un elemento è composto da un tag di apertura, un tag di chiusura e tutto ciò che c'è in mezzo.

Sintassi degli elementi li tag di apertura di un elemento: <nome [attributi]> nome è il nome dell elemento. attributi è una lista opzionale di attributi per l elemento. Il tag di chiusura corrispondente: </nome> nome è lo stesso identificatore usato nell apertura. Elementi privi di contenuto (empty tag): <nome [attributi] />

Elemento radice Un documento XML deve essere contenuto in un singolo elemento (root element) <!-- A well-formed document --> <greeting> Hello, World! </greeting> <!-- An invalid document --> <greeting> Hello, World! </greeting> <greeting> Hola, el Mundo! </greeting>

Gerarchia di elementi Gli elementi nidificati creano una struttura ad albero tipica dei documenti XML. All interno di questa struttura si definiscono alcuni rapporti di parentela utili per individuare gli elementi: <a> <b> Testo </b> <c> <d/> </c> </a>? a è il nodo radice? b e c sono figli di a, il testo è figlio di b, d è figlio di c? c è il padre di d, b è il padre del Testo, a è il padre di b e c? b e c sono fratelli? b, c, d e il testo sono discendenti di a, d è un discendente di c, il testo è un discendente di b? a è un predecessore di b, c, d e del testo, b è un predecessore del testo, c è un predecessore di d.

Elementi non sovrapponibili <!-- NOT legal XML markup --> <p> <b>i <i>really love </b> XML. </i> </p> <!-- legal XML markup --> <p> <b>i <i>really love </i> </b> <i>xml.</i> </p>

Elementi di chiusura necessari <!-- NOT legal XML markup --> <p>yada yada yada... <p>yada yada yada... <p>... <!-- Two equivalent break elements --> <br></br> <br/> <!-- Two equivalent image elements --> <img src="../img/c.gif"></img> <img src="../img/c.gif" />

Elementi case-sensitive <!-- NOT legal XML markup --> <h1> Elements are case sensitive </H1> <!-- legal XML markup --> <h1> Elements are case sensitive </h1>

Attributi <address> <name> <title>mrs.</title> <first-name>mary</first-name> <last-name>mcgoon</last-name> </name> <street>1401 Main Street</street> <city state="nc">anytown</city> <postal-code>34829</postal-code> </address> Un attributo è una coppia nome-valore all'interno di un tag di apertura.

Sintassi degli attributi Gli attributi permettono di specificare proprietà degli elementi Sintassi di base: <nome attributo1= val1,..., attributon= valn > Sono utilizzati per definire proprietà che non possono o non si vogliono definire nel contenuto dell'elemento

Regole per gli attributi Gli attributi XML devono rispettare due regole: Devono avere valori I valori devono essere racchiusi tra doppi apici <!-- NOT legal XML markup --> <ol compact /> <!-- NOT legal XML markup --> <ol compact= yes />

Commenti Possono apparire in qualsiasi punto del documento Il loro contenuto viene ignorato dal parser Possono contenere qualsiasi carattere tranne: -- <!-- Here's a PI for Cocoon: --> <?cocoon-process type="sql"?>

Entità <!-- Here's an entity: --> <!ENTITY dw "developerworks"> E' possibile definire entità con il tag ENTITY Rispetto all'esempio, il processore XML sostuisce tutte le occorrenze di &dt; con la stringa developerworks Entità carattere predefinite: < rappresenta < > rappresenta > " rappresenta & rappresenta & &apos; rappresenta '

Sezioni PCData Il testo inseribile nei documenti XML comprende tutti i caratteri definiti in UNICODE. È possibile inserire caratteri speciali o riservati tramite entità carattere. È possibile inserire stringhe predefinite tramite entità generali. Non è possibile usare esplicitamente i caratteri >, < e &, per i quali è sempre necessario usare le corrispondenti entità carattere.

Sezioni CDATA CDATA = dati carattere All'interno di sezioni CDATA si può utilizzare qualsiasi sequenza di carattere Le sequenze sono ignorare dal parser e visualizzate Sintassi: <![CDATA[char_seq]]> <!-- Here's a CDATA section: --> <![CDATA[<HTML><HEAD></HEAD> <BODY>Ciao Mondo</BODY></HTML>]]>

Processing Instruction <?target data?> Sono usate per passare informazioni extramarkup ai programmi che manipoleranno il file XML. target identifica il destinatario della PI. data è una stringa di dati per la PI. <!-- Here's a PI for Cocoon: --> <?cocoon-process type="sql"?>

Dichiarazione XML <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> La dichiarazione XML è obbligatoria e deve essere posta all immediato inizio del documento Gli attributi sono: version: (obbligatorio) la versione di XML usata. encoding: (opzionale) nome della codifica dei caratteri usata nel documento. (default: UTF-8 o 16) standalone: (opzionale) se vale yes indica che il file non fa riferimento ad altri file esterni. (default: no)

Specificare le regole sintattiche Document Type Definition XML-Schema <address> <name> <title>mrs.</title> <first-name>mary</first-name> <last-name>mcgoon</last-name> </name> <street>1401 Main Street</street> <city state="nc">anytown</city> <postal-code>34829</postal-code> </address>

Documenti invalidi, validi e well-formed Documenti invalidi Non conformi alle regole sintattiche XML o all'associato DTD o schema Documenti validi Conformi sia alle regole sintattiche XML che a quelle definite nell'associato DTD o schema Documenti well-formed Conformi alle regole sintattiche XML, ma che non hanno un DTD o schema associato

Molteplici interpretazioni di un tag Il tag <TITLE> può essere interpretato, come: Il titolo di una pagina web Il titolo di un libro Il titolo di una casa nobiliare Il titolo di un film Il titolo di una slide ecc. Problema: Come associare un significato unico ai tag?

Namespaces I namespaces servono a dichiarare l appartenenza degli elementi a particolari linguaggi XML. Sono particolarmente utili se più linguaggi vengono mescolati nello stesso documento, con possibili di collisioni tra nomi.

Riferimento a un namespace <slide> <title xmlns= http://www.example.com/slideshow > Overview </title> </slide> L'attributo xmlns permette di specificare il significato da dare all'elemento La validità di xmlns è estesa a tutto il contenuto dell elemento stesso.

Definire un prefisso namespace Quando si deve far spesso riferimento a un namespace è conveniente definire un prefisso <SL:slideshow xmlns:sl= http://www.example.com/slideshow >... <slide> <SL:title>Overview</SL:title> </slide>... </SL:slideshow>

Sintassi definizione namespace <name xmlns="uri"> Dichiarazione riferimento namespace: indica il namespace per l'elemento e tutti gli elementi contenuti non prefissati. <name xmlns:prfx="uri"> Dichiarazione prefisso namespace: indica che tutti gli elementi contenuti il cui nome è prefissato da prfx: andranno considerati appartenenti al namespace puntato da uri. <name xmlns="uri1" xmlns:prfx1="uri2" xmlns:prfx2="uri3"> Ci possono essere più namespaces attivi per lo stesso elemento, ma solo uno di tipo riferimento.

Esercizi & Laboratorio XML

Strumenti XML Editor Convertitori non XML -> XML XML --> XML XML -> non XML Parser o processori Memorizzazione e gestione Distribuzione Software lato client Software lato server

Esercitazione: obiettivo Costruire un primo documento xml L'esempio è tratto da: Web Services Tutorial Cap. 5 - Understanding XML

Passo 1: il file Creare un file chiamato slidesample01.xml Attenzione: per editare il file utilizzare un editor ASCII

Passo 2: la dichiarazione <?xml version='1.0' encoding='utf-8'?>

Passo 3: un commento <?xml version='1.0' encoding='utf-8'?> <!-- A SAMPLE set of slides -->

Passo 4: l'elemento radice <?xml version='1.0' encoding='utf-8'?> <!-- A SAMPLE set of slides --> <slideshow> </slideshow>

Passo 5: attributi a un elemento <?xml version='1.0' encoding='utf-8'?> <!-- A SAMPLE set of slides --> <slideshow title= Sample Slide Show date= Date of publication author= Yours Truly > </slideshow>

Passo 6: elementi annidati <slideshow... > <!-- TITLE SLIDE --> <slide type= all > <title>wake up to WonderWidgets!</title> </slide> </slideshow>

Passo 7: testo in stile HTML... <!-- TITLE SLIDE --> <slide type= all > <title>wake up to WonderWidgets!</title> </slide> <!-- OVERVIEW --> <slide type= all > <title>overview</title> <item>why <em>ww</em> are great</item> <item>who <em>buys</em> WW</item> </slide> </slideshow>

Passo 8: un elemento vuoto... <!-- OVERVIEW --> <slide type= all > <title>overview</title> <item>why <em>ww</em> are great</item> <item/> <item>who <em>buys</em> WW</item> </slide> </slideshow>

slidesample01.xml <!-- A SAMPLE set of slides --> <slideshow title="sample Slide Show" date="date of publication" author="yours Truly" > <!-- TITLE SLIDE --> <slide type="all"> <title>wake up to WonderWidgets!</title> </slide> <!-- OVERVIEW --> <slide type="all"> <title>overview</title> <item>why <em>wonderwidgets</em> are great</item> <item/> <item>who <em>buys</em> WonderWidgets</item> </slide> </slideshow>

XML & Browser

Introdurre un errore... <!-- OVERVIEW --> <slide type= all > <title>overview</title> <item>why <em>ww</em> are great</item> <item/> <item>who <em>buys</em> WW</item> </slide> </slideshow>

Errore nel parsing

Altri esercizi Su The Java Web Services Tutorial : Utilizzare processing instruction (p.122) Utilizzare entità (p.125) Inserire sezioni CDATA (p.127)

Risorse On-Line Sito corso: Articolo: XML in 10 punti Articolo: The Semantic Web Documento: Introduction to XML Ebook: The Java Web Services Tutorial Link: Sito W3C: www.w3.org

Domande?