XML: cosa è

Transcript

XML: cosa è
XML
Parte VI - Introduzione e
nozioni fondamentali di
sintassi
XML: cosa è
„
XML: Extensible Markup Language:
…è
un linguaggio che consente la rappresentazione
di documenti e dati strutturati su supporto digitale
… è uno dei più potenti e versatili sistemi per la
creazione, archiviazione, preservazione e
disseminazione di documenti digitali…
… … ma la sua sintassi rigorosa e al contempo
flessibile ne rende possibile l’applicazione anche
nella rappresentazione di dati strutturati, fornendo
una soluzione alternativa ai tradizionali sistemi
DBMS relazionali
1
XML: le origini
„
„
„
„
„
XML è stato sviluppato dal World Wide Web
Consortium (http://www.w3.org)
Le specifiche sono state rilasciate come W3C
Recommendation nel 1998 e aggiornate nel 2004
XML deriva da SGML, un linguaggio di mark-up
dichiarativo sviluppato dalla International
Standardization Organization (ISO), e pubblicato
ufficialmente nel 1986 con la sigla ISO 8879
XML nasce come un sottoinsieme semplificato di
SGML orientato alla utilizzazione su World Wide
Web…
… ma ha assunto ormai un ruolo autonomo e una
diffusione ben maggiore del suo progenitore
XML: caratteristiche
XML è un metalinguaggio, che permette
di definire sintatticamente linguaggi di
mark-up
„ Un linguaggio XML permette di
esplicitare la (le) struttura(e) di un
documento in modo formale mediante
marcatori (mark-up) che vanno inclusi
all’interno del testo (character data)
„
2
XML: caratteristiche
XML adotta un formato di file di tipo
testuale: sia il mark-up sia il testo sono
stringhe di caratteri
„ XML si basa sul sistema di codifica dei
caratteri ISO 10646/UNICODE
„ Un documento XML è “leggibile” da un
utente umano senza la mediazione di
software specifico
„
XML: caratteristiche
„
„
„
XML è indipendente dal tipo di piattaforma
hardware e software su cui viene utilizzato
XML permette la rappresentazione di qualsiasi
tipo di documento (e di struttura testuale)
indipendentemente dalle finalità applicative
XML è indipendente dai dispositivi di
archiviazione e visualizzazione
un documento XML può essere archiviato su
qualsiasi tipo di supporto digitale (attuale e…
futuro!)
un documento XML può essere visualizzato su
qualsiasi dispositivo di output
3
XML: caratteristiche
On-line
WWW
File
XML
Carta
<Title> Titolo </title>
CD-ROM
<p>Paragarafo ..
<p>Paragrafo
DBMS NATIVI O RELAZIONALI
DOCUMENT MANAGEMENT SYSTEMS
XML: caratteristiche
XML può essere usato per la
rappresentazione di dati strutturati
(archivi, tabelle, matrici) in alternativa ai
formati di database tradizionali
„ XML può essere usato come formato di
scambio dati in applicazioni middleware
„
4
XML: caratteristiche
„
„
„
„
XML è uno standard di pubblico dominio
ogni software “conforme XML” è in grado di
gestire dati in formato XML
sono disponibili numerose applicazioni e
librerie open source per la manipolazione di
dati in formato XML basate su diversi
linguaggi di programmazione (Java, C,
Python, Perl…)
una applicazione in grado di elaborare dati in
formato XML viene definita elaboratore XML
XML: principi fondamentali
XML adotta un paradigma di codifica
dichiarativo e descrittivo
„ XML è un metalinguaggio
„ XML descrive un documento come una
struttura ad albero
„ XML introduce il concetto di “tipo di
documento” e di “sintassi del documento”
„ XML si basa su ISO 10646 /UNICODE
„
5
Il concetto di metalinguaggio
„
XML è un metalinguaggio
… XML
definisce un insieme regole
(meta)sintattiche, attraverso le quali è possibile
descrivere formalmente un linguaggio di markup,
detto “applicazione XML”
… ogni applicazione XML eredita un insieme di
caratteristiche sintattiche comuni
… ogni applicazione XML a sua volta definisce una
sintassi formale particolare
… ogni applicazione XML è dotata di una semantica
specificata in modo non formale
Il concetto di metalinguaggio
metalinguaggio
metasintassi
XML
linguaggi
SMIL
XHTML
DocBook
sintassi
documenti
6
Il concetto di tipo di documento
La definizione di una applicazione XML
si basa su un determinato tipo di
documento
„ Un tipo di documento descrive le
caratteristiche di una classe di
documenti strutturalmente omogenei
„ Il tipo di documento è il fondamento della
sintassi e della semantica di una
applicazione XML
„
Il concetto di tipo di documento
„
„
Un tipo di documento descrive la struttura
della classe di documenti cui si riferisce
come un albero ordinato di componenti
testuali o elementi
Un tipo di documento è caratterizzato da
… un
insieme di elementi strutturali
… le relazioni di dipendenza tra gli elementi
… le relazioni di ricorrenza degli elementi
7
La struttura gerarchica
ordinata
testo
corpo
?
?
frontespizio
introduzione
?
+
appendice
capitolo
+
titolo
titolo
autore
PCDATA
+
?
paragrafo
titolo
+
paragrafo
*
enfasi
titolo
+
paragrafo
*
citazione PCDATA
enfasi
citazione
Il concetto di tipo di documento
„
„
„
La struttura ad albero del tipo di documento
determina la sintassi del linguaggio di mark-up
XML
La sintassi di un tipo di documento deve essere
espressa implicitamente (mediante il mark-up) in
ogni documento XML
La definizione formale della sintassi di un tipo di
documento XML può essere espressa
esplicitamente in una Document Type Definition
(DTD) o un XML Schema
8
La Document Type Definition
„
„
Una DTD è costituita da un elenco di
dichiarazioni (markup declaration) che
descrivono la struttura del documento
Le dichiarazioni di una DTD definiscono:
… gli
elementi strutturali (element) di un documento
mediante un identificatore generico
… il modello di contenuto di ogni elemento (content
model) ovvero gli elementi che contiene ed i loro
rapporti (un elemento può essere vuoto)
… la lista degli attributi associati a ciascun elemento e il
loro tipo
La Document Type Definition
XML non fornisce alcun modo per definire
la semantica di una DTD
„ ogni elemento è definito esclusivamente
interamente dal suo nome e dal suo
contenuto
„ ogni altra specificazione semantica va
fornita mediante documentazione in lingua
naturale o in altre notazioni logiche
„
9
Strutture XML: gli elementi
I componenti strutturali di un documento
sono denominati elementi (element)
„ Ogni nodo dell’albero del tipo di
documento è un (tipo di) elemento
„ Ogni (tipo di) elemento è dotato di un
nome (detto identificatore generico) che lo
identifica
„
Strutture XML: gli elementi
„
„
„
Esiste uno e uno solo elemento, detto elemento radice
(corrispondente al nodo radice dell’albero), che non è
contenuto da nessun altro e che contiene direttamente o
indirettamente tutti gli altri
Ogni elemento, escluso l’elemento radice, deve essere
contenuto da un solo elemento (elemento padre) e può
contenere altri sotto-elementi (elementi figli) e/o stringhe
di caratteri
Esiste un sottoinsieme di elementi che non contengono
altri elementi e che possono
…
…
essere vuoti
contenere esclusivamente stringhe di caratteri
10
Strutture XML: gli attributi
„
A ogni elemento possono essere associati
uno o più attributi (attribute) che ne
specificano ulteriori caratteristiche o
proprietà non strutturali. Ad esempio:
… il
tipo rispetto a una data tassonomia
… la lingua del suo contenuto testuale
… un identificatore univoco
… un numero di ordine
… etc.
Strutture XML: gli attributi
„
Gli attributi XML hanno sono caratterizzati
da
… un
nome che li identifica
… un valore
Il valore di un attributo può avere un tipo
esplicitato nella DTD
„ Se un documento XML è solo ben
formato, tutti i valori degli attributi sono di
tipo CDATA
„
11
Strutture XML: le entità
Un documento XML (in quanto oggetto
digitale) ha una struttura fisica
„ Dal punto di vista fisico un documento è
composto da unità di archiviazione che
sono denominate entità (entity)
„ Esiste almeno una entità in ogni
documento XML: la document entity, che
contiene il documento stesso
„
Strutture XML: le entità
„
In generale una entità è qualsiasi sequenza
di byte considerata indipendentemente dalla
sua funzione strutturale
… un
singolo carattere UNICODE
… una stringa di testo XML (caratteri e mark-up)
… un intero file XML esterno
… un intero file non XML (es. immagini digitali, etc.)
„
È possibile ad esempio rappresentare nel
contenuto di un documento caratteri non
presenti sulla tastiera mediante entità
12
Strutture XML: le entità
Le entità vanno definite con apposite
dichiarazioni nella DTD
„ Una entità ha un nome e un contenuto
„ In un documento l’inserimento di una
entità avviene mediante un riferimento a
entità che ne specifica il nome
„ Un processore XML sostituirà
automaticamente il contenuto dell’entità al
posto del riferimento
„
XML: documenti ben formati e
validi
Ogni documento XML deve essere ben
formato
„ Un documento è ben formato
„
… se
la sua struttura è implicita nel markup
… e se rispetta i vincoli di buona formazione
indicati nelle specifiche
„
Un documento XML ben formato non
richiede la presenza di una DTD
13
XML: documenti ben formati e
validi
„
„
Un documento XML può essere valido
Un documento è valido se
… si
riferisce a una DTD esplicita mediante una
Doctype declaration
… ne soddisfa i vincoli sintattici (nome, sequenza
occorrenze ed attributi degli elementi)
„
„
Il controllo di validità viene effettuato da un
apposito programma detto parser
La parte del documento XML all’interno del
nodo radice viene definita document instance
Come si crea un documento
XML
„
„
„
Un documento XML contiene il mark-up
(sottoforma di coppie di tag) che rappresenta
linearmente la struttura gerarchica degli
elementi, i loro eventuali attributi, e i caratteri
del testo
L’inserimento di mark-up e caratteri deve
rispettare i vincoli di buona formazione
indicati nelle specifiche XML
Un documento valido deve rispettare anche i
vincoli sintattici definiti nella DTD
14
Aspetti di sintassi generale
„
„
„
Un documento XML è una stringa di caratteri
UNICODE in codifica UTF-8 o UTF-16
I nomi di elementi, attributi e entità sono sensibili
alla differenza tra maiuscolo e minuscolo
Il mark-up è separato dal contenuto testuale
mediante caratteri speciali:
…<
„
>&
I caratteri speciali non possono comparire come
contenuto testuale e devono essere
eventualmente sostituiti mediante i riferimenti a
entità
… &lt;
&gt; &amp;
Vincoli di buona formazione
Esiste un solo elemento radice
„ Tutti gli elementi non vuoti devono
presentare sia il tag iniziale sia il tag finale
„ Tutti gli elementi devono essere
correttamente annidati
„ Tutti i valori di attributo devono essere
racchiusi tra apici doppi o singoli
„
15
La forma di un documento XML
„
Ogni documento XML inizia con un
prologo che contiene:
… una
XML declaration
… eventualmente una Doctype declaration (la
dichiarazione della DTD a cui il documento si
riferisce)
… eventualmente una serie di processing
instruction
XML declaration
„
Forme di XML declaration:
… <?xml
version="1.0"?>
… <?xml version="1.0“ encoding=“UTF-8”?>
„
Se se le dichiarazioni della DTD sono
inserite all’interno della entità documento è
obbligatoria una dichiarazione di
documento autonomo:
… <?xml
version="1.0" standalone="yes"?>
16
Doctype declaration
Se la definizione della DTD si trova in una entità
esterna
„
…
<!DOCTYPE nome_DTD SYSTEM “sys-id” >
„
„
<!DOCTYPE Antologia SYSTEM
“c:\sgml\dtd\antologia.dtd” >
Se la DTD è dotata di un identificatore
pubblico
…
<!DOCTYPE nome_DTD PUBLIC “pub-id” “sys-id”>
„
<!DOCTYPE TEI.2 PUBLIC “-//TEI P4//DTD Main
Document Type//EN” “tei2.dtd”>
„
n. b. il nome della DTD corrisponde al nome del suo elemento
radice
Doctype declaration
„
Se la definizione della DTD si trova nella stessa
entità del document instance essa va
direttamente della Doctype declaration in una
sezione denominata internal DTD subset
<!DOCTYPE nome_DTD
[
dichiarazione 1
dichiarazione 2
dichiarazione 3
...]
>
Internal DTD
subset
17
La codifica degli elementi
Nel documento ogni elemento non vuoto
(contenente cioè altri elementi o caratteri)
deve essere marcato da un tag iniziale e
da un tag finale
„ Ogni tag è costituito da caratteri
delimitatori e dal nome dell'elemento
„
La codifica degli elementi
„
Sintassi di un elemento
Del. Finale Start tag
Del. Iniziale End tag
<nome>contenuto dell’elemento</nome>
Del. Iniziale Start tag
Del. Finale End tag
18
La codifica degli elementi
<text>
<div1>
<p>Subito, con le prime parole che le rivolse, volle
avvisarla che non intendeva compromettersi in una
relazione troppo seria…</p>
<p>La sua famiglia? Una sola sorella non
ingombrante né fisicamente né moralmente, piccola
e pallida, di qualche anno più giovane di lui…</p>
…
</div1>
</text>
La codifica degli elementi
La relazione lineare tra i tag rappresenta
la relazione gerarchica tra gli elementi
„ Per ogni elemento, se il suo tag iniziale è
nel contenuto di un elemento P allora il
suo tag finale deve essere nel contenuto
del medesimo elemento P
„ Detto altrimenti le coppie di tag devono
annidarsi correttamene e mai sovrapporsi
„
19
La codifica degli elementi
SBAGLIATO!!!
<p>Subito, con le prime parole che le rivolse,
volle avvisarla che non intendeva
compromettersi in <emph>una relazione troppo
seria… </p>
<p>La sua famiglia?</emph>Una sola sorella
non ingombrante né fisicamente né
moralmente, piccola e pallida, di qualche anno
più giovane di lui… </p>
La codifica degli elementi
CORRETTO!!!
<p>Subito, con le prime parole che le rivolse,
volle avvisarla che non intendeva
compromettersi in <emph>una relazione
troppo seria… </emph> </p>
<p> <emph>La sua famiglia?</emph> Una
sola sorella non ingombrante né fisicamente
né moralmente, piccola e pallida, di qualche
anno più giovane di lui… </p>
20
La codifica degli elementi
„
Gli elementi vuoti
…o
sono rappresentati da entrambi i tag
„
…o
…<nome_elemento> </nome_elemento>…
assumono la seguente forma
„
<nome_elemento/>
… Esempio:
„
<img src=‘foo.gif’/>
La codifica degli attributi
„
Ogni elemento XML può avere uno o più
attributi
„
Un attributo ha un nome e un valore, che
può assumere diverse tipologie
21
La codifica degli attributi
„ Gli
attributi devono essere associati agli
elementi all'interno del tag iniziale dopo
l’identificatore
…
<elemento attributo = "valore"> contenuto…</elemento>
„ Altri
eventuali attributi vanno collocati
dopo il primo separati da uno o più spazi
„ Non possono esservi più istanze dello
stesso attributo per un elemento
La codifica degli attributi
<text resp=“Italo Svevo” n=“Senilità”>
<div n=“1”>
<p id=“C1P1”>Subito, con le prime parole che le
rivolse, volle avvisarla che non intendeva
compromettersi in una relazione troppo seria…</p>
<p id=“C1P2”>La sua famiglia? Una sola sorella non
ingombrante né fisicamente né moralmente, piccola e
pallida, di qualche anno più giovane di lui…</p>
<pb n=“5”/>
22
Il riferimento alle entità
„
L’inclusione di una entità all’interno di un
documento SGML si effettua mediante un
riferimento a entità (entity reference)
„
La sintassi di un riferimento, valida sia per
entità esterne sia interne, è la seguente:
Delimitatore di
apertura
&nome_entità;
Delimitatore di
chiusura
Il riferimento alle entità
„ In
questo esempio i caratteri accentati
sono stati sostituiti da riferimenti a entità
carattere
<p>La sua famiglia? Una sola sorella non
ingombrante n&eacute; fisicamente n&eacute;
moralmente, piccola e pallida, di qualche anno
pi&ugrave; giovane di lui…</p>
23
Applicazioni XML rilevanti
„
„
„
„
DocBook : DTD per la creazione di
manualistica tecnica curata dal consorzio
OASIS
XHTML 1.0: DTD per la creazione di
documenti Web realizzato dal W3 Consortium
Text Encoding Initiative: DTD per la creazione
di testi su supporto digitale in ambito
umanistico sviluppata dal TEI consortium
Encoded Archival Description: DTD per la
descrizione di materiali archivistici realizzato
dalla Library of Congress
Standard correlati a XML
„
XML adotta due linguaggi appositamente
sviluppati per la specificazione di strutture
ipertestuali complesse:
… XML
Linking Specification (XLink) specifica come
costruire elementi e attributi di collegamento
… XML Extended Pointer Specification (XPointer)
specifica i sistemi di indirizzamento delle
destinazioni di un link
24
Standard correlati a XML
„
„
La presentazione di un documento XML
viene controllata da uno o più fogli di stile
I linguaggi di stile utilizzabili con XML sono
… Extensible
„
„
„
Stylesheet Language (XSL)
XPath: selezione e individuazione di nodi
XSLT: trasformazione tra alberi
XSL-FO: formattazione di pagina
… Cascading
Style Sheet (CSS)
25

Documenti analoghi

XML e basi di dati - Dipartimento di Matematica e Informatica

XML e basi di dati - Dipartimento di Matematica e Informatica L’elemento persona contiene un sottoelemento nome e tre sottoelementi professione. L’elemento nome, a sua volta, contiene due sottoelementi nome proprio e cognome.

Dettagli

XML - DISI

XML - DISI Il DTD può essere inserito in un file esterno al documento e riferito dal documento attraverso un tag speciale posto all’inizio del documento

Dettagli

il linguaggio XML - Dipartimento di Ingegneria Informatica e delle

il linguaggio XML - Dipartimento di Ingegneria Informatica e delle in certi casi i vari elementi devono rispettare un particolare ordine di precedenza (per esempio le voci di una rubrica telefonica potrebbero prevedere il nome di una persona come primo elemento, s...

Dettagli