XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor...

49
XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma “Tor Vergata”

Transcript of XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor...

Page 1: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

XML

Introduzione e nozioni fondamentali di sintassi

© Fabio Ciotti, Università di Roma “Tor Vergata”

Page 2: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 3: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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 2000

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

Page 4: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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)

Page 5: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 6: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 7: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

XML: caratteristiche

DOCUMENT MANAGEMENT SYSTEMS

FileXML

On-lineWWW

Carta

CD-ROM

DBMS NATIVI O RELAZIONALI

<Title> Titolo </title>

<p>Paragarafo ..

<p>Paragrafo

Page 8: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 9: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 10: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

XML: principi fondamentali

XML adotta un paradigma di codifica dichiarativo e descrittivo

XML è un metalinguaggio XML descrive un documento come una

struttura dati ad albero XML introduce il concetto di “tipo di

documento” e di “grammatica del documento”

Page 11: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 12: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

metalinguaggio

documenti

Il concetto di metalinguaggio

XML

TEI XHTML DocBook

sintassi

metasintassi

linguaggi

Page 13: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

Il modello di dati XML

XML descrive la struttura dei documenti come un albero etichettato e ordinato di componenti testuali

Un albero è caratterizzato da un insieme di nodi (elementi strutturali,

attributi e segmento di testo) le relazioni di dipendenza tra i nodi le relazioni di ricorrenza dei nodi

Page 14: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

La struttura ad albero

Page 15: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

Il concetto di tipo di documento

La struttura ad albero del documento determina la sintassi del linguaggio di mark-up XML

Tale struttura 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

Page 16: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 17: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 18: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 19: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 20: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 21: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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.

Page 22: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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 vincolato di dati formalizzato nello schema

Page 23: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 24: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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à

Page 25: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 26: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 27: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 28: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 29: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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;

Page 30: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 31: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 32: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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"?>

Page 33: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

Se la definizione della DTD si trova in una entità esterna

<!DOCTYPE nome_DTD SYSTEM “URI” >

<!DOCTYPE Antologia SYSTEM “http://www.mio.web/dtds/antologia.dtd” >

Se la DTD è dotata di un identificatore pubblico

<!DOCTYPE nome_DTD PUBLIC “pub-id” “URI”>

<!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

Page 34: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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 1dichiarazione 2dichiarazione 3...] >

Internal DTD subset

Page 35: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 36: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

La codifica degli elementi

Del. Iniziale Start tag

Del. Iniziale End tagDel. Finale Start tag

Del. Finale End tag

<nome>contenuto dell’elemento</nome>

Sintassi di un elemento

Page 37: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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>

Page 38: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 39: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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>

Page 40: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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>

Page 41: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

La codifica degli elementi

Gli elementi vuoti o sono rappresentati da entrambi i tag

…<nome_elemento> </nome_elemento>… o assumono la seguente forma

<nome_elemento/> Esempio:

<pb/>

Page 42: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 43: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

La codifica degli attributi

Gli attributi devono essere associati agli elementi all'interno del tag iniziale dopo l’identificatore

<nome_elemento nome_attributo = "valore">contenuto… </nome_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

Page 44: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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'/>

Page 45: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

Il riferimento alle entità

L’inclusione di una entità all’interno di un documento XML si effettua mediante un riferimento a entità (entity reference)

La sintassi di un riferimento, valida sia per entità esterne sia interne, è la seguente:

&nome_entità;Delimitatore di apertura

Delimitatore di chiusura

Page 46: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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>

Page 47: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 48: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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

Page 49: XML Introduzione e nozioni fondamentali di sintassi © Fabio Ciotti, Università di Roma Tor Vergata.

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)