Esercitazioni di XML a cura di Maria Finazzi (11-19 gennaio 2007)
e-mail:
[email protected] pagine web:
Il trattamento dell'informazione Testo a stampa: •
Come ogni cockney il signor Doolittle riteneva che solo a Londra si parlasse il vero inglese.
HTML a schermo: • •
Come ogni cockney il signor Doolittle riteneva che solo a Londra si parlasse il vero inglese. Come ogni cockney il signor Doolittle riteneva che solo a Londra si parlasse il vero inglese.
Codifica HTML: •
Come ogni cockney il signor Doolittle riteneva che solo a Londra si parlasse il vero inglese.
Codifica XML: • •
Come ogni cockney il signor Doolittle riteneva che solo a Londra si parlasse il vero inglese Come ogni cockney il signor Doolittle riteneva che solo a Londra si parlasse il vero inglese 2
I linguaggi di marcatura Un linguaggio di marcatura è un sistema per descrivere: 1. la rappresentazione di testi ("come si devono vedere” il documento) 2. la struttura di testi ("come sono fatti” il testo vero e proprio) HTML e XHTML sono linguaggi di markup per la rappresentazione dei testi. SGML e XML sono invece linguaggi del secondo tipo, perché: • separano il contenuto dalle istruzioni sulla rappresentazione • catturano il significato degli elementi di un documento Esempio di marcatura: Elenco nomi Esercizio di marcatura: Elenco testi 3
Documenti XML: cosa sono Un documento XML contiene sequenze di caratteri che possono rappresentare • semplice testo (character data) • markup (tag o etichette)
I tag XML, a differenza di quelli HTML/XHTML: • non sono predefiniti e limitati: è possibile creare qualsiasi numero di tag, a seconda delle esigenze • descrivono il tipo di testo contenuto al loro interno, e non la sua formattazione
Un documento XML, a differenza di uno HTML: • deve rispettare regole sul posizionamento dei tag • deve rispettare regole sulla scrittura dei tag • in pratica: deve essere sintatticamente corretto, cioè ben formato 4
Documenti XML: cosa contengono Un documento XML è composto da: • Prologo o header, che contiene la dichiarazione XML, ad es.: • Elementi (due tipi): • delimitati da un tag iniziale
e un tag finale • vuoti (privi di contenuto):
• Attributi:
• Contenuto degli elementi (testo presente fra il tag iniziale e il tag finale): contenuto
Possono inoltre essere presenti: • commenti: • riferimenti a entità (generali o parametriche) 5
Le principali regole di XML In un documento ben formato: 1. deve esserci un prologo 2. 3. 4. 5. 6. 7. 8.
a ogni tag iniziale deve corrispondere un tag finale i tag non devono incrociarsi deve esistere un elemento radice (root element) sono rispettate le regole sulla denominazione degli elementi sono rispettate le regole sulla definizione degli attributi sono rispettate le regole sulla denominazione degli attributi sono rispettate le regole sui caratteri speciali 6
Regola n. 1 Esempio di prologo Un documento XML può iniziare con una dichiarazione XML (XML declaration):
in cui vengono dichiarati: • la specifica di XML: version="1.0" (per ora esiste solo lo standard XML 1.0) • il set di caratteri, ad es.: encoding="ISO-8859-1" se viene omesso, la codifica di default è UTF-8 • il riferimento o meno a una DTD esterna (Document Type Definition): standalone="yes" se viene omesso, il valore di default è no 7
Prologo e DTD La dichiarazione non è obbligatoria, ma se presente essa deve essere posta esattamente all'inizio del documento. Nel caso in cui il documento XML non sia standalone: standalone="no"
la dichiarazione XML deve essere seguita dalla dichiarazione del tipo di documento (document type declaration): 8
Regola n. 2 A ogni tag iniziale deve corrispondere un tag finale
Come in HTML: • i tag iniziali cominciano con il carattere < • i tag finali cominciano con i caratteri • i nomi degli elementi possono essere personalizzati a seconda del contenuto del documento Esempio: Mario Rossi
Per gli elementi privi di contenuto la sintassi è leggermente diversa: • il tag comincia con il carattere < • il tag prosegue con il nome dell'elemento • il tag si conclude con i caratteri /> Esempio:
9
Regola n. 3 I tag non devono incrociarsi I tag XML possono essere contenuti uno dentro l'altro, ma, come scatole cinesi, non possono incrociarsi (se dopo un tag iniziale ho inserito un altro tag iniziale, prima di chiudere il primo tag devo chiudere il secondo): • tag incrociati (SBAGLIATO): contenuto
Esempio (sbagliato): MarioRossi
• tag non incrociati (CORRETTO): contenuto
Esempio: MarioRossi
10
Regola n. 4 Deve esistere un elemento radice (root element) L'elemento radice: • è il primo elemento del documento, che contiene tutti gli altri elementi • non ha padre • è unico RADICE PRIMO ELEMENTO
SECONDO ELEMENTO
PRIMO SOTTOELEMENTO
SECONDO SOTTOELEMENTO
TERZO ELEMENTO PRIMO SOTTOELEMENTO
11
Struttura ad albero dei documenti XML I documenti XML hanno quindi una struttura ad albero gerarchico Esempio: Mario Rossi scrittore gironalista
L'elemento non contiene semplicemente del testo, ma tre elementi figli L'elemento è padre dell'elemento e dei due elementi 12 L'unico elemento che non ha padre è l'elemento radice
Esempio di struttura ad albero LIBRO CAPITOLO 1
CAPITOLO 2
PARAGRAFO 1 FRASE 1
FRASE 2
FRASE 3
CAPITOLO 3
PARAGRAFO 2 FRASE 4
PARAGRAFO 1
FRASE 5
13
Regola n. 5 Denominazione degli elementi I nomi degli elementi: • sono case-sensitive ( è diverso da ) • possono contenere: numeri, lettere, underscore, puntini, trattini • devono iniziare con un carattere o con un underscore (_) • non possono iniziare con un numero • non possono contenere spazi • possono combinare lettere maiuscole e minuscole (es. ) • evitare nomi specifici del linguaggio, come: "xml", 14 "xsl", ecc.
Regola n. 6 Definizione degli attributi Gli elementi XML, come quelli HTML/XHTML, possono essere dotati di attributi. Un attributo è formato da: • nome dell'attributo • valore dell'attributo racchiuso fra virgolette singole o doppie • un separatore fra nome e valore, cioè il segno uguale (=), accompagnato eventualmente da spazi Esempio: Mario Rossi
Gli attributi: • devono essere posti all'interno del tag di apertura • non possono comparire più di una volta all'interno di ciascun tag
15
Elementi o attributi? L'esempio precedente: Mario Rossi scrittore giornalista
può essere codificato utilizzando degli attributi al posto di alcuni elementi 16
Elementi o attributi: scelta • La scelta tra una rappresentazione e l'altra può dipendere dal tipo di dati e dal tipo di utilizzo • Nei documenti di tipo narrativo è naturale che il testo sia contenuto di elementi XML e che le informazioni aggiuntive vengano inserite in attributi 17
Regola n. 7 Denominazione degli attributi
Anche i nomi degli attributi: • sono case-sensitive (tipo è diverso da Tipo) • possono contenere: numeri, lettere, underscore, puntini, trattini • devono iniziare con un carattere o con un underscore (_) • non possono iniziare con un numero • non possono contenere spazi • possono combinare lettere maiuscole e minuscole (es. DataNascita) 18
Regola n. 8 Caratteri speciali • I caratteri speciali usati nel linguaggio XML (come uncinate e, per gli attributi, virgolette) se utilizzati nel contenuto di un elemento o nel valore di un attributo vanno indicati come entità • I riferimenti a entità generali sono delimitati dai caratteri e commerciale (&) e punto e virgola (;) • Queste sono le 5 referenze a entità predefinite di XML: Entità carattere
Entità numerica
<
<
>
>
"
“
'
‘
&
& 19
Sistemi di rappresentazione ed archiviazione informatica dell'informazione Per evitare la perdita di informazioni nel tempo e per consentirne l'utilizzo in contesti diversi da quello originario un documento elettronico deve soddisfare due condizioni: la standardizzazione e la portabilità, e cioè: • indipendenza dall'hardware (processore, supporto digitale, dispositivi di input o di output) • indipendenza dal software (sistemi operativi, applicazioni) • indipendenza dai sistemi di codifica dei caratteri (lingue o sistemi di scrittura) • indipendenza logica da tipologie di elaborazione 20
I linguaggi di marcatura (2) Un linguaggio di marcatura è un sistema per descrivere: 1. la rappresentazione di testi ("come si devono vedere") 2. la struttura di testi ("come sono fatti") HTML e XHTML sono linguaggi di markup per la rappresentazione dei testi. SGML e XML sono invece linguaggi del secondo tipo, perché: • separano il contenuto dalle istruzioni sulla rappresentazione • catturano il significato degli elementi di un documento 21
Linguaggi per descrivere la struttura dei testi 1. SGML (Standard Generalized Markup Language) • • • • •
nasce negli anni '70 (come GML) diventa uno standard ISO nel 1986 (e prende il nome di SGML) usa dei tag per descrivere i meta dati, separando il contenuto dalle istruzioni specifiche molto complesse (non tutte implementate dai singoli programmi) NB: HTML è un'applicazione di SGML (ma non è un linguaggio di markup strutturato perché è una tecnica orientata alla presentazione delle informazioni)
2. XML (eXtensible Markup Language) • • • •
deriva da una semplificazione di SGML nasce nel 1998 come raccomandazione del W3C permette di rappresentare facilmente documenti strutturati o semistrutturati NB: dall'estensione di alcune regole di XML al linguaggio HTML 22 è derivato XHTML
Parentesi su XHTML Il linguaggio di marcatura di testi per il web denominato XHTML deriva da un incrocio fra il sistema HTML di rappresentazione dei testi per il web e le regole XML
23
Tecnologie di supporto per XML XSLT (eXtensible Stylesheet Language Transformations) applicazione XML che descrive le trasformazioni da un documento XML a un altro (che può essere in XML o in un altro formato, come HTML, PDF, ecc.) XSL-FO (XSL Formatting Objects) linguaggio che descrive la formattazione di un oggetto trasformato XPATH sintassi utilizzata per identificare particolari porzioni di documenti XML 24
Altri argomenti 1. DTD e Schema 2. fogli di stile XSL 3. standard di codifica
25
1a. DTD: Document Type Definition Il markup utilizzabile in un documento XML può essere libero o vincolato a particolari regole semantiche relative alla struttura In tal caso il markup di una applicazione XML può essere documentato in una DTD (Document Type Definition) 26
1b. DTD: Document Type Definition La DTD definisce: • elementi e relativi attributi • relazioni (parentele) tra elementi • caratteristiche degli elementi (ad es.: se e quante volte devono o possono comparire) • caratteristiche degli attributi (ad es.: se sono obbligatori o facoltativi, e se hanno dei valori predefiniti) • entità generali o parametriche
Un documento XML che rispetti tutte le regole descritte in una DTD, oltre che ben formato (sintatticamente corretto) è anche valido (semanticamente corretto)
27
1c. Dichiarazione del tipo di documento Se per un documento XML è richiesta la validazione, nel prologo del documento va inserito un riferimento alla DTD così strutturato:
Esempio (con URL relativo per arrivare al file della DTD): Mario Rossi scrittore giornalista
La DTD può anche essere inserita all'interno del file XML; in tal caso il valore di standalone è yes 28
1c. XML Schema La sintassi delle DTD non è XML Nel 2001 il W3C ha approvato lo standard XML Schema: lo Schema descrive ella la struttura di un documento XML in formato XML Gli Schema sono molto più complessi e potenti delle DTD, e permettono di stabilire regole molto più dettagliate 29
2a. Fogli di stile Un foglio di stile (stylesheet) descrive come un documento elettronico deve essere presentato sullo schermo, sulla carta ed eventualmente come deve essere pronunciato da un sintetizzatore vocale Dal 1994 ad oggi il W3C ha promosso vari tipi di stylesheet: • CSS: fogli di stile per HTML • XSL: fogli di stile per XML 30
2b. XSLT XSLT (eXtensible Stylesheet Language Transformations) è un'applicazione XML promossa dal W3C che permette di specificare regole per trasformare un documento XML in un altro documento L'output di XSLT può essere • un altro documento XML (es. XHTML) • un file HTML • un file di testo Le operazioni che effettuabili tramite XSLT sono diverse: • selezionare elementi o attributi • formattare • ordinare • contare • porre condizioni 31
2d. XPath • XPath definisce una serie di regole per il filtraggio e la selezione di nodi all'interno della struttura ad albero di un documento XML • XPath si basa sulle relazioni tra i vari nodi (genitori, figli e fratelli) 32
3. Standard di codifica Alcuni modelli di markup sono diventati degli standard per la codifica di particolari tipi di documenti, ad esempio: • DocBook per la documentazione (DocBook) • TEI per varie tipologie di testi (Text Encoding Initiative): • Guidelines TEI P4 () è in preparazione la versione P5 (http://www.tei-c.org/P5/) • TEILite, versione ridotta delle Guidelines TEI (, anche in traduzione italiana: ) 33
La codifica di testi TEILite
34
Software per XML Esistono molti editor per compilare e validare file XML, tra cui: 1. NoteTab (da usare in combinazione con il parser SP): consente di creare delle librerie personalizzate per la marcatura (file .clb); servono i seguenti componenti: • • • •
editor Notetab: esiste una versione gratuita (Light, ma senza sintassi colorata) e due a pagamento (Std e Pro) parser SP libreria per lanciare la validazione istruzioni per installare il parser SP e la libreria di NoteTab
2. XMLSpy: esiste una versione gratuita (FREE Home Edition), che richiede solo un codice di registrazione che viene inviato via e-mail
35
Bibliografia XML • Extensible Markup Language (XML) 1.0 (Third Edition): raccomandazioni del W3C:
• Extensible Markup Language (XML) 1.0: traduzione italiana (della prima edizione delle raccomandazioni del W3C)
• Harold - Means, XML Guida di riferimento, Apogeo, 2001 • Holzner, XML Tutto & Oltre, Apogeo, 2001
TEI • Il manuale TEI Lite. Introduzione alla codifica elettronica dei testi letterari, a cura di Fabio Ciotti, Bonnard, 2005 36