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



Documenti analoghi
APPENDICE C extensible Markup Language

XML. XML è contemporaneamente: XML non è:

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

/XML ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 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) Origini di XML. La Famiglia di XML HTML SGML XML XHTML WML SOAP. MathML

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

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

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

Guida all uso di Java Diagrammi ER

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

Tecniche Multimediali

Capitolo 4 Pianificazione e Sviluppo di Web Part

XML: extensible Markup Language

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

XML: La nascita del linguaggio

Protocolli applicativi: FTP

Introduzione a XML. Language

a cura di Maria Finazzi

Linguaggi per il web oltre HTML: XML

Tecnologie Web T Introduzione a XML

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

Organizzazione degli archivi

Simple & Efficient.

Prefazione. Piersalvo Ortu 1

Database. Si ringrazia Marco Bertini per le slides

Laboratorio Matematico Informatico 2

Working Draft 0.5 (Telefonia)

SPECIFICHE TECNICHE DEL PACCHETTO DI ARCHIVIAZIONE

Costruzione del layout in gino cms

Laboratorio di Tecnologie Web HTML: Introduzione Dott. Stefano Burigat

extensible Markup Language (XML)

Lezione 1 Introduzione

Document Type Definition (DTD)

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

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

Basi di dati 9 febbraio 2010 Compito A

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

HTML il linguaggio per creare le pagine per il web

2 Reti di Calcolatori XML

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

Altro esempio di HTML

Modellazione e Gestione di Informazioni non Strutturate

Direzione Centrale Accertamento. Indagini finanziarie. Le modalità di trasmissione telematica delle richieste di dati e delle relative risposte

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

HTML+XML= XHTML. Che cos è l XHTML

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

Esercizi di JavaScript

URI. Introduzione. Pag. 1

Modellazione dei dati in UML

Progettaz. e sviluppo Data Base

Esercitazione di Basi di Dati

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Cosa è un foglio elettronico

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

19. LA PROGRAMMAZIONE LATO SERVER

Introduzione all Information Retrieval

INFORMATICA AA Università degli Studi di Ferrara Facoltà di Scienze MM FF NN Corso di Laurea in «Scienze e Tecnologie per i Beni Culturali»

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

MANUALE PER L UTILIZZO DELLA FUNZIONE EVENTI Rel.1.2 del 29 gennaio 2004

Creare un Ipertesto. 1

Una metodologia di progettazione di applicazioni web centrate sui dati

EXPLOit Content Management Data Base per documenti SGML/XML

LINGUAGGI DI PROGRAMMAZIONE

Corso di Informatica

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Dispensa YACC: generalità

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

Compilatore risorse display grafico LCD serie IEC-line

7. Layer e proprietà degli oggetti

Algoritmi e strutture dati. Codici di Huffman

Siti interattivi e dinamici. in poche pagine

RISOLUTORE AUTOMATICO PER SUDOKU

Corso di Informatica di base per le discipline umanistiche - XPATH

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Introduzione alla codifica XML per i testi umanistici

Manuali.net. Nevio Martini

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

Creare un sito Multilingua con Joomla 1.6

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

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Manuale di realizzazione dei modelli di documento

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

Tecniche Multimediali

Java: Compilatore e Interprete

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

Guida Software GestioneSpiaggia.it

File system II. Sistemi Operativi Lez. 20

Introduzione alla programmazione in C

HTML: i link ipertestuali. La sintassi di qualunque link in HTML è la seguente: <A HREF= indirizzo > parolacalda </A>

Corso di PHP. Prerequisiti. 1 - Introduzione

Introduzione a LyX. Creazione di un documento Struttura e stile Modelli di documento Automatismi Riferimenti...

Il linguaggio HTML - Parte 4

Excel avanzato. I nomi. Gli indirizzi e le formule possono essere sostituiti da nomi. Si creano tramite Inserisci Nome Definisci

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

UML Diagrammi delle classi. UML Diagramma classi 1

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE

Navigare in Internet Laboratorio di approfondimento la creazione di siti web e/o blog. Marco Torciani. (Quinta lezione) Unitre Pavia a.a.

Transcript:

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

Cosa è XML 1 XML (Extensible Markup Language ) è un linguaggio di markup È stato progettato per lo scambio e la interusabilità di documenti strutturati su Internet XML è un metalinguaggio, cioè un linguaggio che permette di definire nuovi linguaggi. XML deriva da SGML, È stato estremamente semplificato ed esteso in certi aspetti. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 2

Cosa è XML 2 XML è un ambiente per definire linguaggi di markup Non c è una collezione fissata di tag di markup, possiamo definire i tag a nostro piacimento, i tag sono ideati a seconda del tipo di informazione che devono rappresentare Ogni linguaggio XML è progettato per una particolare applicazione, ma tutti i linguaggi condividono molte caratteristiche Esiste un insieme di strumenti generici per elaborare i documenti XML Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 3

A cosa serve XML XML viene usato per definire tutti i linguaggi di tipo markup ridefinire in maniera più formale quelli già esistenti (e.g, XHTML) semplificare le specifiche di linguaggi di markup originariamente scritte in SGML Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 4

La famiglia di XML HTML SGML XHTML XML WML MathML SOAP Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 5

Esempio di documento XML <collection> <CD number="1"> <song album="santana1" track="11"> <title>african Bamba</title> <length>4:42</length> </song> <song album="santana1" track="9"> <artist>santana & Mana</artist> <title>corazon Espinado</title> <length>4:36</length> </song> <album ID="santana1"> <artist>santana</artist> <title>supernatural</title> <year>1999</year> </album> </CD> </collection> Mancano alcune dichiarazioni iniziali Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 6

XML: Vantaggi 1 XML permette agli sviluppatori di creare facilmente strutture ad-hoc per contenere informazione strutturata. I parser XML sono diffusi su tutte le piattaforme e free. Gli sviluppatori possono utilizzare questi parser per decodificare e validare le strutture XML, limitandosi poi a gestire solo l'informazione contenuta usando API specifiche (DOM, SAX). Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 7

XML: Vantaggi 2 XML è completamente text-based, quindi leggibile anche dagli esseri umani e facilmente editabile anche a mano. Supporta UNICODE, quindi è adatto a ogni tipo di scrittura/lingua. Essendo dati testuali strutturati esattamente come HTML, i dati XML possono essere trasportati usando il protocollo HTTP anche attraverso firewall (SOAP). Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 8

XML: Svantaggi I documenti XML, a causa delle struttura testuale e dei tag, tendono ad essere molto più ingombranti di quelli in formato binario, quindi la loro trasmissione sulla rete non è ottimale. I parser XML non sono veloci come quelli scritti ad-hoc per formati specifici, soprattutto se binari. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 9

XML: Applicazioni Protocolli RMI SOAP Matematica MathML Web XHTML, WML Multimedia SMIL Musica MusicML Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 10

Documento XML 1 Un documento XML è un albero etichettato ed ordinato Esistono due tipi di nodi Nodi dati (character data) -- (e.g., testo) Nodi elementi (element) -- (e.g., tag html) I nodi dati sono nodi foglia dell albero Contengono i dati del documento XML In genere un nodo dato deve essere non vuoto e non adiacente ad altri nodi dati Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 11

Documento XML 2 I nodi elementi sono tutti etichettati con Un nome (spesso chiamato il tipo dell elemento) Un insieme opzionale di attributi, ognuno consistente di un nome e di un valore Questi nodi possono avere nodi figli Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 12

Esempio elemento nome valore attributo nodo dato Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 13

Altri tipi di nodi Un albero/documento XML può contenere ulteriori tipi di nodi Processing Instructions Annotazioni per i programmi che elaboreranno il documento XML Dichiarazione del tipo di documento i tipi di dati che compongono il documento Commenti Come nei linguaggi di programmazione Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 14

Processing Instruction (PI) Le Processing Instructions (PI) vengono usate per passare informazioni extra-markup ai programmi che manipoleranno il file XML. Possono apparire ovunque, dopo la dichiarazione XML. <?target data?> target identifica il destinatario della PI. data è una stringa di dati per la PI. Non deve seguire alcuna regola XML, e può contenere anche caratteri riservati. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 15

Esempio di PI Tecnologie di Sviluppo per il web HTML XML PHP CSS Javascript <?flubber pg=9 recto?> <?thingie?> <?xyz stop: the presses?> <title> Tecnologie di Sviluppo per il web <?lb?>html <?lb?> XML <?lb?>php <?lb?>css <?lb?>javascript </title> Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 16

Prologo Documento XML Dichiarazione XML Dichiarazione obbligatoria Viene posta all inizio del documento Dichiarazione DOCTYPE Dichiarazione obbligatoria solo se il documento deve essere validato Viene posta all inizio del documento Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 17

Dichiarazione XML Processing Instruction <?xml version="1.0" encoding="utf-8" standalone="yes"?> 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 (e.g. DTD). Default: no Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 18

Dichiarazione DOCTYPE <!DOCTYPE RootElement ExternalDTDReference [InternalDTDSubset ]> RootElement (obbligatorio) è il nome dell elemento radice del documento. ExternalDTDReference (opzionale) può essere: SYSTEM "uri", dove uri punta a un DTD esterno contenente la definizione del linguaggio usato nel documento. PUBLIC "pubid" "uri", dove pubid è un identificatore alternativo per il DTD pubblico puntato da uri. InternalDTDSubset (opzionale) è un DTD specificato inline al documento. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 19

Esempi di DTD PUBLIC <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <!DOCTYPE time-o-gram PUBLIC "-//LordsOfTime//DTD TimeOGram 1.8//EN" http://www.lordsoftime.org/dtds/timeogram.dtd > Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 20

Esempi di DTD SYSTEM <!DOCTYPE doc SYSTEM "http://www.dtds-r-us.com/generic.dtd"> <!DOCTYPE press-release SYSTEM http:// www.dtdland.org/dtds/reports.dtd [ <!ENTITY bobco "Bob's Bolt Bazaar, Inc."> ]> Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 21

Schema XML Invece della DTD si utilizza uno schema Documento XML per descrivere la struttura e la semantica di un documento XML <card xmlns="http://businesscard.org" xmlns:xsi= "http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation= "http://businesscard.org http://./business_card.xsd"> </card> url Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 22

Commenti in XML I commenti sono utili agli esseri umani, e vengono ignorati dai parser XML. Possono apparire ovunque tranne che all interno degli attributi. <!-- questo è un commento --> Il commento si apre con un <!-- ed è chiuso da un -->, che quindi non può apparire nella stringa interna. Il contenuto non deve seguire regole e può anche contenere caratteri riservati. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 23

Elementi XML Gli elementi sono la base di un linguaggio XML Il documento è diviso in parti a cui sono associati degli elementi Gli elementi possono essere contenitori Mix di testo ed altri elementi Gli elementi possono essere vuoti Non hanno contenuto Gli elementi possono avere degli attributi Aggiungono informazioni agli elementi Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 24

Elementi Un elemento è un frammento di dati, limitato ed identificato (tramite un nome) da un tag. Tag di apertura Elemento artist Elemento title Tag di chiusura <album> <artist> Pino Daniele </artist> <title> Nero a Metà </title> </album> Elemento album Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 25

Sintassi per elemento contenitore 1. Tag di apertura 2. Nome contenitore 3. Lista di attibuti 4. Nome attributo 5. Valore attributo 6. Contenuto 7. Tag di chiusura Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 26

Sintassi per elemento vuoto 1. Tag di apertura 2. Nome contenitore 3. Lista di attibuti 4. Nome attributo 5. Valore attributo L elemento termina con uno slash (/) ed una parentesi angolare chiusa Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 27

Elementi: regole I nomi degli elementi sono case-sensitive Ogni elemento contenitore aperto deve essere chiuso entro la fine del documento Gli elementi possono essere nidificati, in tal caso, vanno chiusi esattamente nell ordine inverso a quello di apertura Un documento XML deve avere un unico elemento radice, in cui tutti gli altri sono nidificati Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 28

Nota sull elemento vuoto Alcuni elementi possono essere privi di contenuto In questo caso è possibile omettere il tag di chiusura scrivendo quello di apertura come abbiamo già visto Il elemento <nome attributi /> è equivalente a <nome attributi> </nome> Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 29

Esempio codice XML 1 <?xml version="1.0"?> <time-o-gram pri="important"> <to>sarah</to> <subject>reminder</subject> <message>don't forget to recharge K-9 <emphasis>twice a day</emphasis>. Also, I think we should have his bearings checked out. See you soon (or late). I have a date with some <villain>daleks</villain>... </message> <from>the Doctor</from> </time-o-gram> mixed content Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 30

Esempio codice XML 2 Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 31

Albero del documento Gli elementi, nidificandosi, creano la struttura ad albero tipica dei documenti XML. All interno di questa struttura si definiscono alcuni rapporti di parentela utili per individuare gli elementi padre/figlio fratelli predecessore/discendente Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 32

Attributi Gli attributi permettono di specificare proprietà degli elementi come coppie nomevalore. Sono usati per definire proprietà che non possono o non si vogliono inserire nel contenuto dell elemento. Vengono specificati all interno dei tag di apertura degli elementi. Al contrario degli elementi, per gli attributi l ordine di presentazione non è significativo. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 33

Quando usare gli attributi Si possono usare quando non ha senso utilizzare un elemento figlio per specificare la proprietà che l attributo indica Abbiamo un documento XML che rappresenta una collezione di CD musicali <CD number="1"> <song album="santana1" track="11"> <title> African Bamba</title> <length> 4:42</length> </song> <!-- altri elementi di tipo song> <album ID="santana1"> <artist> Santana</artist> <title> Supernatural</title> <year> 1999</year> </album> </CD> Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 34

Regola generale Usare elementi per dati che devono essere presentati ed attributi per dati di sistema <chapter number= 23 focus= Server-side programming > XML Processing with Java </chapter> <chapter> <number> 23 </number> <focus> Server-side programming </focus> <title> XML Processing with Java </title> </chapter> Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 35

Attributi: regole I nomi degli attributi sono case-sensitive Lo stesso tag non può contenere due attributi con lo stesso nome Non sono ammessi attributi senza valore (solo nome) Il valore degli attributi deve essere specificato tra virgolette semplici o doppie Il valore può contenere riferimenti ad entità Il valore non può contenere markup, sezioni CDATA, virgolette uguali a quelle iniziali Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 36

Sezione CDATA Permette di definire esplicitamente un area in cui si trova solo testo semplice <!CDATA[ <<solo testo!>> ]]> È utile per impedire che il parser consideri markup delle stringhe che ne hanno solo la forma All interno delle sezioni CDATA sono ammessi tutti i caratteri UNICODE, e anche le entità non sono riconosciute come tali. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 37

Nota sul testo Il testo che possiamo inserire 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 Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 38

Documento XML ben formato Un documento XML è ben formato se rispetta le regole generali di sintassi viste nella parte precedente Un documento ben formato deve sottostare a limitazioni esclusivamente sintattiche Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 39

Documento XML valido Un documento XML è valido se è ben formato e rispetta le regole sintattiche e semantiche contenute del DTD o nello Schema XML associato Un documento senza DTD o Schema XML non è mai valido Un documento valido soddisfa dei vincoli imposti dalla semantica/struttura dei suoi elementi Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 40