XML (extensible Markup 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

XML: extensible Markup Language

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

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

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

a cura di Maria Finazzi

Introduzione a XML. Language

XML. XML è contemporaneamente: XML non è:

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

Tecnologie Web T Introduzione a XML

HTML+XML= XHTML. Che cos è l XHTML

XML: La nascita del linguaggio

extensible Markup Language

Document Type Definition (DTD)

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

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

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

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Protocollo di metadata harvesting OAI-PMH Lavoro pratico 2

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

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

Tecniche Multimediali

Database. Si ringrazia Marco Bertini per le slides

Tecniche Multimediali

Simple & Efficient.

XSL: extensible Stylesheet Language

Laboratorio Matematico Informatico 2

Organizzazione degli archivi

Linguaggi per il web oltre HTML: XML

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

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

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

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Progettazione di Basi di Dati

Università Politecnica delle Marche. Progetto Didattico

I blog. Andrea Marin. a.a. 2013/2014. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO

BANCHE DATI. Informatica e tutela giuridica

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

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

Modellazione dei dati in UML

Prefazione. Piersalvo Ortu 1

Corso di Informatica di base per le discipline umanistiche - XPATH

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

XML e PHP. Gestire XML con PHP. Appendice

Sistemi Informativi e Basi di Dati

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Servizio Feed RSS del sito CNIT

Raggruppamenti Conti Movimenti

RICERCA DELL INFORMAZIONE

Cosa è un foglio elettronico

Introduzione ai database relazionali

Modellazione e Gestione di Informazioni non Strutturate

I database relazionali (Access)

Access. P a r t e p r i m a

Capitolo 4 Pianificazione e Sviluppo di Web Part

4 - XML e basi di dati

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

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Versione 7.0 Taglie e Colori. Negozio Facile

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

2.1 Introduzione ai linguaggi di marcatura

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Strutturazione logica dei dati: i file

DATABASE. A cura di Massimiliano Buschi

CONTENT MANAGEMENT SYSTEM

Introduzione alla codifica XML per i testi umanistici

Funzioni in C. Violetta Lonati

Le Basi di Dati. Le Basi di Dati

PIATTAFORMA DOCUMENTALE CRG

Il database management system Access

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

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

Dispensa di database Access

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Editing e gestione delle views per il modulo Landing Page Espositore

EXPLOit Content Management Data Base per documenti SGML/XML

Organizzazione delle informazioni: Database

BASI DI DATI - : I modelli di database

SIEBEL CRM ON DEMAND MARKETING

I Preferiti. Elenco dei Preferiti

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

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

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

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

Транскрипт:

Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web A.A. 2011-2012 XML (extensible Markup Language) Eufemia TINELLI

Contenuti Vista logica di XML Vista fisica di XML Caratteristiche sintattiche: elementi, attributi, istruzioni di elaborazione Altro: sezioni CDATA, riferimenti a entità, Whitespace XML e Namespace Esempi: RecipeML, RSS, ebxml, SVG 2012 2

XML Un framework per definire linguaggi di markup XML è un meta-linguaggio di markup, progettato per lo scambio e la interusabilità di documenti strutturati sul Web XML prevede una sintassi semplificata rispetto a SGML e definisce una serie di linguaggi associati ogni linguaggio ha il suo proprio dominio di riferimento (application domain) con i suoi propri tags di markup Facile da gestire esistono diversi tool per processare documenti XML XML si basa su Unicode internazionalizzazione e indipendenza dalla piattaforma Sviluppato dal W3C, standardizzato nel 1998 2012 3

Cosa c èc oltre ad XML? 2012 4

XML: Vantaggi Documenti auto-descrittivi Scelta dei nomi degli elementi può facilitare la comprensione del ruolo strutturale degli stessi Struttura navigabile dei documenti La rigida struttura ad albero e l assenza di regole di minimizzazione rendono semplice l analisi della struttura del documento Struttura gerarchica Diversamente dai formati di dati generici per l interscambio di dati organizzati linearmente XML permette strutture ad albero Ripetibilità degli elementi XML permette di definire formalmente elementi ripetibili Content Model misti elementi possono contenere sia altri elementi sia testo 2012 5

Quando usare XML Produzione di documenti automatici Integrare collezioni di dati strutturati sul web Gestione indipendente di produzione ed uso di dati Data consumers e data producers non sono progettati insieme e l elaborazione non è nota in anticipo Elaborazione di dati in contenitori semi-strutturati Evitare di estrarre forzatamente informazioni atomiche da fonti semi-strutturate Elaborazione di dati con aspetti strutturali complessi Es. gestire in una tabella record con un numero variabile di campi 2012 6

XML: Applicazioni Data-oriented languages Linguaggi usati per descrivere informazioni che tradizionalmente sarebbero memorizzate in un database Document-oriented languages Linguaggi per descrivere la struttura logica dei documenti Protocols and programming languages Linguaggi con una struttura sintattica più complessa Hybrids Linguaggi che gestiscono informazione fortemente strutturata (data-oriented) con una più lasca (document-oriented) 2012 7

SGML HTML XML SGML - XML XML contiene tutte le caratteristiche di SGML che servono per creare applicazioni generali senza scendere nel livello di dettaglio e pedanteria richiesti da SGML. HTML XML HTML definisce una grammatica per la descrizione e la formattazione di pagine web e, più in generale, di ipertesti, il secondo è un meta-linguaggio utilizzato per creare nuovi linguaggi, atti a descrivere documenti strutturati. Mentre l'html ha un insieme ben definito e ristretto di tag, con l'xml è invece possibile definirne di propri a seconda delle esigenze Semplicità di HTML e flessibilità di SGML 2012 8

Un po di storia - http://www.w3.org/xml/ 1986: Standard Generalized Markup Language (SGML) ISO 8879-1986 Aug 1997: XML W3C Working Draft Feb 10, 1998: XML 1.0 Recommendation Dec 13, 2001: XML 1.1 W3C Working Draft Oct 15, 2002 : XML 1.1 W3C Candidate Recommendation Aug 16, 2006: XML 1.1, Recommendation Nov 26, 2008: XML 1.0 (5th edition) Recommendation 2012 9

Criteri di progettazione Goals del progetto iniziale XML Draft (Nov 1996) 1. XML deve essere utilizzabile in modo diretto sul web 2. XML deve supportare un gran numero di applicazioni 3. XML deve essere compatibile con SGML 4. Deve essere facile lo sviluppo di programmi che elaborino documenti XML 5. Il numero di caratteristiche opzionali deve essere mantenuto al minimo possibile, idealmente a zero 6. I documenti XML dovrebbero essere leggibili da umani e ragionevolmente chiari 7. La specifica del linguaggio XML deve avvenire rapidamente. 8. La progettazione XML deve essere formale e concisa 9. I documenti XML devono essere facili da creare 10. Non ha importanza l'economicità del markup XML 2012 10

XML Tree Concettualmente un documento XML è un albero costituito da: nodi, archi figlio, padre sibling (ordinati), antenati, discendenti 2012 11

I nodi di un XML tree Text nodes: corrispondono all informazione reale del documento (nodi foglia) Element nodes: definisce un raggruppamento logico dell informazione dei sue discendenti, ogni elemento ha 1 nome Attribute nodes: non importa l ordine, ogni attributo è associato ad 1 elemento, è costituito dalla coppia name -value Comment nodes: rappresentano meta-informazione che molti tools ignorano (nodi foglia) Processing instructions: istruzioni di specifica per l elaborazione costituite dalla coppia target -value Root nodes: ogni documento XML inizia con 1 nodo radice che rappresenta l intero documento 2012 12

Rappresentazione testuale Text nodes: semplicemente il testo che essi rappresentano Element nodes: tags di apertura e chiusura Attribute nodes: name= value nei tags di apertura Comment nodes: <!-- bla bla bla --> Processing instructions: <?target value?> Root nodes: è implicito!! REGOLE GENERALI XML è case-sensitive Caratteri validi: caratteri vuoti o whitespace (spazi, caratteri di tabulazione, carriage return, line feed), caratteri unicode Sezioni CDATA (es. <ex><![cdata[ errore ]]> ]]></ex>) Riferimenti alle entità (es. & per il carattere &) utile anche per inserire caratteri Unicode in documenti XML o entità definite nella DTD 2012 13

Elementi e attributi in XML - Esempi Solo elementi Solo testo Una combinazione Vuoto 2012 14

Dichiarazione XML <?XML version= 1.0 encoding= UTF-16 standalone= yes?> Un documento XML può includere una dichiarazione XML. Questa specifica le caratteristiche opzionali del documento in questione. La sintassi usata per la dichiarazione XML è quella delle Processing Instructions La non obbligatorietà della dichiarazione XML è dovuta a motivi di convenienza. In assenza di dichiarazione XML, si assume la forma: <?XML version= 1.0?> Dichiarazione XML Version Encoding Standalone 2012 15

Un documento XML 2012 16

Documenti ben-formati e validi XML distingue due tipi di documenti rilevanti per le applicazioni XML: i documenti ben formati ed i documenti validi. In SGML, un DTD è necessario per la validazione del documento. Anche in XML, un documento è valido se presenta un DTD ed è possibile validarlo usando il DTD. XML permette anche documenti ben formati, ovvero documenti che, pur essendo privi di DTD, presentano una struttura sufficientemente regolare e comprensibile da poter essere controllata: Tutti i tag di apertura e chiusura corrispondono e sono ben annidati <x><y></y></x> <z><x><y></x></y> Esiste un elemento radice che contiene tutti gli altri I tag vuoti (senza contenuto) utilizzano un simbolo speciale di fine tag: <elementovuoto/> Tutti gli attributi sono sempre racchiusi tra virgolette Tutte le entità sono definite 2012 17

Parser XML Modulo che legge il documento XML e ne crea una rappresentazione interna utile per successive elaborazioni 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 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. 2012 18

Namespace Nella visione XML, i tipi di documenti si mescolano e si fondono tra loro in maniera complessa. Lo stesso documento potrebbe avere alcuni elementi definiti in un tipo ed altri in un altro. I namespace in XML si propongono per risolvere questi problemi. XML-Namespaces è una recommendation di W3C del 1999. Ogni nome (elementi, attributi, entità, ecc.) del documento XML è preceduto da un prefisso che specifica l origine del nome stesso. Il prefisso è separato da il carattere : dal nome dell elemento o dell attributo. Poiché ogni namespace userà un prefisso diverso,è possibile capire quali elementi appartengono all uno e all altro, e di evitare qualunque problema di collisione. L attributo predefinito xmlns serve per introdurre i prefissi usati dai namespace del documento. Il valore dell attributo è un URI che non ha nessun valore dichiarativo, ma solo informativo. Un nome (di elemento o di attributo) che contiene prefisso di namespace e nome locale viene detto nome qualificato. 2012 19

Uso dei namespace - Esempio <?xml version="1.0"?> <data:root xmlns:data= http://www.microsoft.com/data"> <data:header isbn= 07356-0831-8" /> <myorg:book xmlns:myorg= http://www.microsoft.com/myorg"> <title>xhtml Pocket Consultant</title> <creator>william R. Stanek</creator> <chapter number= 3" title= XHTML Essentials" > <page>xhtml Definitions <data:page>this is a paragraph in a page</data:page> </page> <main_text>xhtml Definitions Main <data:main_text>this is a paragraph in the main text</data:main_text> </main_text> </chapter> </myorg:book> <data:footer>copyright 2001 William R. Stanek</data:footer> </data:root > 2012 20

Namespace di default Nella dichiarazione xmlns si pone il nome del prefisso che si intende usare nel corso del documento per gli elementi definiti in quel namespace. L assenza di tale prefisso in xmlns indica la presenza di un namespace di default, per cui tutti i nomi privi di prefisso di debbono intendere appartenenti a quel namespace. I namespace di default non si applicano agli attributi <?xml version="1.0"?> <data:root xmlns:data= http://www.microsoft.com/data"> <data:header isbn= 07356-0831-8" /> <book xmlns= http://www.microsoft.com/myorg"> <title>xhtml Pocket Consultant</title> <creator>william R. Stanek</creator> <chapter number= 3" title= XHTML Essentials" > <page>xhtml Definitions <data:page>this is a paragraph in a page</data:page> </page> <main_text>xhtml Definitions Main <data:main_text>this is a paragraph in the main text</data:main_text> </main_text> </chapter> <book> <data:footer>copyright 2001 William R. Stanek </data:footer> </data:root > 2012 21

Namespace e DTD I namespace sono stati introdotti dopo i DTD, e quindi esprimere namespace nei DTD non è facile. L'unico modo è di esprimere come nomi validi i nomi qualificati, bloccando il prefisso. Elemento dichiarato con un prefisso (N.B. Tale dichiarazione non è necessaria per gli elementi figlio che ereditano il namespace oppure se l elemento è incluso in un namespace di default) <!ELEMENT prefix:element_name (#PCDATA) > Attributo dichiarato con un prefisso <!ATTLIST prefix:element_name prefix:attrib_name #IMPLIED> Dichiarazione dell attributo xmlns <!ATTLIST prefix:element_name xmlns:prefix CDATA #FIXED "http://www.betterbooks.org"> N.B la dichiarazione di namespace va sia nel DTD (viene considerata un attributo), sia nel documento (come dichiarazione vera e propria) 2012 22

RecipeML - DTD 2012 23

RecipeML XML tree 2012 24

RecipeML rappresentazione testuale <collection> <description>recipes suggested by Jane Dow</description> <recipe id="r117"> <title>rhubarb Cobbler</title> <date>wed, 14 Jun 95</date> <ingredient name="diced rhubarb" amount="2.5" unit="cup"/> <ingredient name="sugar" amount="2" unit="tablespoon"/> <ingredient name="fairly ripe banana" amount="2"/> <ingredient name="cinnamon" amount="0.25" unit="teaspoon"/> <ingredient name="nutmeg" amount="1" unit="dash"/> <preparation> <step> Combine all and use as cobbler, pie, or crisp. </step> </preparation> <comment> Rhubarb Cobbler made with bananas as the main sweetener. It was delicious. </comment> <nutrition calories="170" fat="28%" carbohydrates="58%" protein="14%"/> <related ref="42">garden Quiche is also yummy</related> </recipe> </collection> 2012 25

RecipeML Browsing (senza XSLT) http://www.brics.dk/ixwt ixwt/examples/recipes.xml 2012 26

RSS - Really Simple Syndication RSS 2.0 è conforme a XML 1.0 Formato standard basato su XML che ha come scopo quello di facilitare la diffusione e la promozione dei contenuti di un sito web, nonché lo scambio e l inclusione di tali contenuti da un sito all altro Feed RSS: documento XML collegato alle nostre pagine web che permette ai nostri visitatori di restare sempre al corrente nostri aggiornamenti e sui nuovi contenuti che andiamo ad inserire (articoli, post, video, ecc.), senza dovere ogni volta collegarsi direttamente al sito La codifica di default di un documento RSS è UTF-8 Un feed RSS non appartiene di default a nessun namespace identificato da un URI ma possiamo usare il namespace XHTML (http://www.w3.org/1999/xhtml) o il namespace Dublin Core (http://purl.org/dc/elements/1.1/) Feed RSS 2.0 validator http://feed2.w3.org/docs/rss2.html 2012 27

RSS - Elementi channel - definisce i nostri contenuti con maggiore precisione. Questo elemento ospita sia informazioni sul nostro sito che i contenuti veri e propri suddivisi per voci (item). I figli di channel: title - ogni feed RSS deve avere un titolo link - accetta come valore un URL assoluto che definisce l indirizzo web del feed description - serve a far visualizzare una breve descrizione del feed language - specifica la lingua del feed pubdate e lastbuilddate - indicano, rispettivamente, la data di pubblicazione e di ultima modifica del nostro feed. Sono fondamentali (ma non obbligatori) per l aggiornamento dei contenuti da parte delle applicazioni che gestiscono i feed RSS item - contiene le risorse che vogliamo condividere con il nostro feed. Ci può essere più di un elemento item all interno di un elemento channel e un elemento item può contenere gli elementi elencati prima ( tranne l elemento channel) 2012 28

RSS - Esempio <?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>acme News</title> <link>http://www.acme.com/news</link> <description>ultime news da ACME</description> <language>it</language> <pubdate>sun, 7 Feb 2010 20:00:00 GMT</pubDate> <lastbuilddate>sun, 7 Feb 2010 20:00:00 GMT</lastBuildDate> <item> <title>lorem ipsum</title> <link>http://www.acme.com/news/07/02/2010/lorem-ipsum</link> <description>lorem quondam scripsit articulum de originibus librorum et ivit via sicut eius est mos, sed nescit quod meditavit nugarum totus in illis. </description> <pubdate>sun, 7 Feb 2010 20:00:00 GMT</pubDate> </item> </channel> </rss> 2012 29

ebxml Elettronic Business XML initiative 2012 30

SVG Scalable Vector Graphics 2012 31

Limiti di XML Verbosità e complessità Mapping relazionale Leggibilità per l uomo Meglio orientato ai documenti che ai dati Competitors: JSON (JavaScript Object Notation) - Uno standard leggero progettato per lo scambio di dati derivato da JavaScript YAML (Yet Another Markup Language) formato per la serializzazione di dati utilizzabile dagli esseri umani, derivato da C, Perl e Python 2012 32

Lista dei vini - XML 2012 33

Lista dei vini - JSON 2012 34

Riferimenti Specifiche http://www.w3.org/xml/ http://www.w3.org/tr/xml/ http://www.w3.org/tr/xml11/ http://www.w3.org/tr/xml-names11/ http://www.w3.org/tr/rec-xml-names/ Testo consigliato A. Moller and M. Schwartzbach, An Introduction to XML and Web Technologies, Addison Wesley, 2006 [cap. 2] 2012 35