2. Struttura ad alberoStruttura ad albero
persona
nome cognome
data di nascita
giorno annomese
luogo di nascita
origine
radice
elementi
3. Struttura del file XMLStruttura del file XML
Un documento XML èUn documento XML è
usato per descrivere unusato per descrivere un
albero gerarchico.albero gerarchico.
Il primo elemento èIl primo elemento è
chiamato radice.chiamato radice.
Un documento puòUn documento può
avere una sola radice.avere una sola radice.
Ogni elemento puòOgni elemento può
contenere altri elementicontenere altri elementi
al suo interno.al suo interno.
persona
data di nascita
giorno mese
origine
anno
4. RelazioniRelazioni
La linea che collega dueLa linea che collega due
elementi della gerarchiaelementi della gerarchia
individua una relazioneindividua una relazione
padre-figliopadre-figlio
L’elemento padre èL’elemento padre è
quello che ‘contiene’ gliquello che ‘contiene’ gli
elementi figlielementi figli
persona
data di nascita
giorno mese
origine
anno
5. Un esempio di file XMLUn esempio di file XML
<?xml version="1.0"?>
<persona>
<nome>Luigi</nome>
<cognome>Pirandello</cognome>
<origine>
<data_di_nascita>
<giorno>28</giorno>
<mese>giugno</mese>
<anno>1867</anno>
</data_di_nascita>
<luogo_di_nascita>Agrigento</luogo_di_nascita>
</origine>
</persona>
tag
dato
dichiarazione XML
6. I TAGI TAG
I tag XML hanno lo stesso aspetto dei tagI tag XML hanno lo stesso aspetto dei tag
HTMLHTML
<persona><persona>
<nome>
<data_di_nascita>
Si distingue traSi distingue tra
tag iniziali < persona >tag iniziali < persona >
e tag finali </persona >e tag finali </persona >
7. I TAGI TAG
In HTML l’insieme dei tag che possono essereIn HTML l’insieme dei tag che possono essere
usati è ben codificato.usati è ben codificato.
A differenza del HTML, l’insieme dei tag XMLA differenza del HTML, l’insieme dei tag XML
può essere definito dall’utente.può essere definito dall’utente.
Il nome di un tag può essere una qualunqueIl nome di un tag può essere una qualunque
stringa di testo che rispetta certe regole.stringa di testo che rispetta certe regole.
8. Nomi XMLNomi XML
I nomi usati per i tag possono essere costituiti daI nomi usati per i tag possono essere costituiti da
qualsiasi carattere alfanumericoqualsiasi carattere alfanumerico
a-z,a-z,
A-Z,A-Z,
0-90-9
lettere accentate ò, à, èlettere accentate ò, à, è
ideogrammi çideogrammi ç
underscore _, trattino -, punto .underscore _, trattino -, punto .
9. Nomi XMLNomi XML
Non possono essere usati:Non possono essere usati:
spazispazi
virgolette “, apostrofi ‘, il simbolo $virgolette “, apostrofi ‘, il simbolo $
i simboli < e >i simboli < e >
il simbolo % e il punto e vigola ;il simbolo % e il punto e vigola ;
Il nome usato per un tag è sensibile allaIl nome usato per un tag è sensibile alla
differenza tra maiuscole e minuscoledifferenza tra maiuscole e minuscole
Il tag <Persona> è diverso da <persona>Il tag <Persona> è diverso da <persona>
10. I datiI dati
Tra un tag di apertura e un tag di chiusuraTra un tag di apertura e un tag di chiusura
possono essere inseriti:possono essere inseriti:
altri tagaltri tag
dei dati testualidei dati testuali
contenuto mistocontenuto misto
<data_di_nascita>
<giorno>28</giorno>
<mese>giugno</mese>
<anno>1867</anno>
</data_di_nascita>
<p>
lezione di <b>XML</b>
</p>
11. AttributiAttributi
Ad un tag possono essere associati degli attributiAd un tag possono essere associati degli attributi
Un attributo consiste in una coppia nome-Un attributo consiste in una coppia nome-
valore:valore:
<persona nome=‘Mario’ cognome=‘Rossi’><persona nome=‘Mario’ cognome=‘Rossi’>
<persona nome=“Valeria” cognome=“Bianchi”><persona nome=“Valeria” cognome=“Bianchi”>
12. CommentiCommenti
I documenti XML possono contenere deiI documenti XML possono contenere dei
commenti e delle note.commenti e delle note.
Un commento si può inserire usando la sintassi:Un commento si può inserire usando la sintassi:
<!-- Commento --><!-- Commento -->
13. La dichiarazione XMLLa dichiarazione XML
I documenti XML dovrebbero iniziare con unaI documenti XML dovrebbero iniziare con una
dichiarazione XML:dichiarazione XML:
<?xml version="1.0" encoding="UTF-8"?>
dove:
version identifica la versione di XML in uso.
Attualmente la versione in uso è la 1.0
encoding specifica quale tipo di codifica deve essere
usata all’interno del documento: XML supporta un
grande quantità di set di caratteri.
14. Documenti ben formatiDocumenti ben formati
Affinché un documento XML siaAffinché un documento XML sia benben
formatoformato è necessario rispettare alcune regoleè necessario rispettare alcune regole
sintattiche.sintattiche.
1.1. ad ogni tag iniziale deve corrispondere un tag finalead ogni tag iniziale deve corrispondere un tag finale
2.2. gli elementi non possono sovrapporsigli elementi non possono sovrapporsi
3.3. deve esistere esattamente un elemento radicedeve esistere esattamente un elemento radice
15. Documenti ben formatiDocumenti ben formati
4.4. i valori degli attributi devono essere specificati trai valori degli attributi devono essere specificati tra
apiciapici
5.5. i commenti e le istruzioni di elaborazione noni commenti e le istruzioni di elaborazione non
possono apparire all’interno dei tagpossono apparire all’interno dei tag
6.6. non deve apparire nessun carattere < o &non deve apparire nessun carattere < o &
all’interno dei caratteri di un elemento o di unall’interno dei caratteri di un elemento o di un
attributoattributo
16. Regola 1Regola 1
Ad ogni tag iniziale deve corrispondere un tagAd ogni tag iniziale deve corrispondere un tag
finalefinale
<giorno>28</giorno>
<mese>giugno</mese>
<anno>1867</anno>
17. Regola 2Regola 2
Gli elementi non possono sovrapporsiGli elementi non possono sovrapporsi
Non valido:Non valido:
<giorno>28<mese>giugno</giorno></mese>
Valido:Valido:
<giorno>28</giorno>
<mese>giugno</mese>
19. Regola 4Regola 4
I valori degli attributi devono essere specificatiI valori degli attributi devono essere specificati
tra virgolettetra virgolette
Non valido:Non valido:
<persona nome=Mario cognome=Rossi><persona nome=Mario cognome=Rossi>
Valido:Valido:
<persona nome=“Mario” cognome=“Rossi”><persona nome=“Mario” cognome=“Rossi”>
20. Regola 5Regola 5
I commenti e le istruzioni di elaborazione nonI commenti e le istruzioni di elaborazione non
possono apparire all’interno dei tagpossono apparire all’interno dei tag
Non valido:Non valido:
<persona <!– una persona--> ><persona <!– una persona--> >
Valido:Valido:
<persona> <!– una persona--><persona> <!– una persona-->
21. Regola 6Regola 6
Non deve apparire nessun carattere < o &Non deve apparire nessun carattere < o &
all’interno dei caratteri di un elemento o di unall’interno dei caratteri di un elemento o di un
attributoattributo
Non valido:Non valido:
<espressione> a > b </espressione><espressione> a > b </espressione>
22. Referenze ad entitàReferenze ad entità
Per superare i limiti di non poter usare certiPer superare i limiti di non poter usare certi
caratteri (>,<,% caratteri accentati) come testocaratteri (>,<,% caratteri accentati) come testo
interno ai tag si usano delle combinazioniinterno ai tag si usano delle combinazioni
speciali chiamate referenze ad entitàspeciali chiamate referenze ad entità
< -> il carattere minore << -> il carattere minore <
& -> il carattere && -> il carattere &
> ->il carattere maggiore >> ->il carattere maggiore >
" -> le virgolette" -> le virgolette
' -> apostrofo' -> apostrofo
23. Sezioni CDATASezioni CDATA
Quando un documento XML contiene delleQuando un documento XML contiene delle
grosse porzioni di testo, usare le referenze adgrosse porzioni di testo, usare le referenze ad
entità può risultare fastidioso.entità può risultare fastidioso.
Per semplificare la scrittura di documenti XMLPer semplificare la scrittura di documenti XML
si introducono le sezioni CDATAsi introducono le sezioni CDATA
All’interno di una sezione CDATA può essereAll’interno di una sezione CDATA può essere
usato qualunque carattere si desidera, compresousato qualunque carattere si desidera, compreso
quelli che normalmente non possono esserequelli che normalmente non possono essere
usati.usati.
24. Sezione CDATASezione CDATA
Una sezione CDATA inizia con la sequenzaUna sezione CDATA inizia con la sequenza
<![CDATA[<![CDATA[
e termina con la sequenzae termina con la sequenza
]]>]]>
Ad esempio:Ad esempio:
<p> <![CDATA[ qui dentro posso usare tutti i<p> <![CDATA[ qui dentro posso usare tutti i
caratteri che desidero compreso > < % “ ’ oppurecaratteri che desidero compreso > < % “ ’ oppure
i caratteri accentati à è ì ò ù ]]> </p>i caratteri accentati à è ì ò ù ]]> </p>
25. Elementi vuotiElementi vuoti
Quando un elemento non deve avere nessunQuando un elemento non deve avere nessun
contenuto esso può apparire in due forme.contenuto esso può apparire in due forme.
Nella forma estesa:Nella forma estesa:
<elemento></elemento><elemento></elemento>
Oppure nella forma contratta:Oppure nella forma contratta:
<elemento/><elemento/>
26. Documenti validiDocumenti validi
Spesso la “ben formazione” di un documentoSpesso la “ben formazione” di un documento
XML non è sufficienteXML non è sufficiente
Per determinate applicazioni può esserePer determinate applicazioni può essere
necessario definire ulteriori regole dinecessario definire ulteriori regole di
composizione dei tagcomposizione dei tag
Ad esempio si può voler che il tag <persona>Ad esempio si può voler che il tag <persona>
contenga sempre un tag <nome> e un tagcontenga sempre un tag <nome> e un tag
<cognome><cognome>
27. Documenti validiDocumenti validi
Un file XML si dice anche valido se rispetta unaUn file XML si dice anche valido se rispetta una
serie di regoleserie di regole
Le regole generalmente vengono definite in fileLe regole generalmente vengono definite in file
esterno chiamato DTDesterno chiamato DTD
28. Differenza tra XML e HTMLDifferenza tra XML e HTML
HTML descrive sia l’aspetto che il contenuto di unaHTML descrive sia l’aspetto che il contenuto di una
pagina Web; XML invece descrive soltanto ilpagina Web; XML invece descrive soltanto il
contenuto.contenuto.
HTML ha una sintassi molto libera; XML inveceHTML ha una sintassi molto libera; XML invece
prevede che siano rispettate certe regole diprevede che siano rispettate certe regole di
composizione.composizione.
HTML ha una sintassi chiusa, non possono essereHTML ha una sintassi chiusa, non possono essere
definiti ulteriori tag, per aggiungere potenza ad HTMLdefiniti ulteriori tag, per aggiungere potenza ad HTML
si devono usare altre tecnologia; XML invece èsi devono usare altre tecnologia; XML invece è
totalmente configurabile.totalmente configurabile.
29. I caratteri UnicodeI caratteri Unicode
Per superare i limiti imposti dal set di caratteriPer superare i limiti imposti dal set di caratteri
ASCII (piuttosto ridotto) in XML su utilizza ilASCII (piuttosto ridotto) in XML su utilizza il
set di caratteri UNICODEset di caratteri UNICODE
VedasiVedasi www.unicode.orgwww.unicode.org
30. Esempio di utilizzo dell’UNICODEEsempio di utilizzo dell’UNICODE
<?xml version = "1.0" encoding="UTF-8"?><?xml version = "1.0" encoding="UTF-8"?>
<!-- Figura 5.4: lang.xml --><!-- Figura 5.4: lang.xml -->
<!-- Uso dei caratteri Unicode --><!-- Uso dei caratteri Unicode -->
<!DOCTYPE welcome SYSTEM "lang2.dtd"><!DOCTYPE welcome SYSTEM "lang2.dtd">
<welcome><welcome>
<from><from>
<!-- Deitel and Associates --><!-- Deitel and Associates -->
دايتَلدايتَل
أندأند
<!-- entity --><!-- entity -->
&assoc;&assoc;
</from></from>
<subject><subject>
<!-- Welcome to the world of Unicode --><!-- Welcome to the world of Unicode -->
أهلاًأهلاً
بكمبكم
فيِفيِ
عالمعالم
<!-- entity --><!-- entity -->
&text;&text;
</subject></subject>
</welcome></welcome>