XML

33
XML XML eXtensible Markup eXtensible Markup Language Language Ing. Luca Sabatucci

description

XML. eXtensible Markup Language. Ing. Luca Sabatucci. radice. elementi. Struttura ad albero. Struttura del file XML. Un documento XML è usato per descrivere un albero gerarchico. Il primo elemento è chiamato radice. Un documento può avere una sola radice. - PowerPoint PPT Presentation

Transcript of XML

Page 1: XML

XMLXMLeXtensible Markup LanguageeXtensible Markup Language

Ing. Luca Sabatucci

Page 2: XML

Struttura ad alberoStruttura ad albero

persona

nome cognome

data di nascita

giorno annomese

luogo di nascita

origine

radice

elementi

Page 3: XML

Struttura del file XMLStruttura del file XML Un documento XML è Un documento XML è

usato per descrivere usato per descrivere un albero gerarchico.un 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 contenere altri elementi al suo elementi al suo interno.interno.

persona

data di nascita

giorno mese

origine

anno

Page 4: XML

RelazioniRelazioni La linea che collega La linea che collega

due elementi della due elementi della gerarchia individua gerarchia individua una relazione una relazione padre-figliopadre-figlio

L’elemento padre è L’elemento padre è quello che quello che ‘contiene’ gli ‘contiene’ gli elementi figlielementi figli

persona

data di nascita

giorno mese

origine

anno

Page 5: XML

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

Page 6: XML

I TAGI TAG I tag XML hanno lo stesso aspetto I tag XML hanno lo stesso aspetto

dei tag HTMLdei tag HTML <persona><persona> <nome> <data_di_nascita>

Si distingue tra Si distingue tra tag iniziali < persona > tag iniziali < persona > e tag finali </persona >e tag finali </persona >

Page 7: XML

I TAGI TAG In HTML l’insieme dei tag che In HTML l’insieme dei tag che

possono essere usati è ben codificato.possono essere usati è ben codificato. A differenza del HTML, l’insieme dei A differenza del HTML, l’insieme dei

tag XML può essere definito tag XML può essere definito dall’utente.dall’utente.

Il nome di un tag può essere una Il nome di un tag può essere una qualunque stringa di testo che qualunque stringa di testo che rispetta certe regole.rispetta certe regole.

Page 8: XML

Nomi XMLNomi XML I nomi usati per i tag possono essere I nomi usati per i tag possono essere

costituiti da qualsiasi carattere costituiti da qualsiasi carattere alfanumericoalfanumerico a-z, a-z, A-Z, A-Z, 0-90-9 lettere accentate ò, à, èlettere accentate ò, à, è ideogrammi çideogrammi ç underscore _, trattino -, punto .underscore _, trattino -, punto .

Page 9: XML

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 alla Il 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>

Page 10: XML

I datiI dati Tra un tag di apertura e un tag di Tra un tag di apertura e un tag di

chiusura possono essere inseriti:chiusura 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>

Page 11: XML

AttributiAttributi Ad un tag possono essere associati Ad un tag possono essere associati

degli attributidegli attributi Un attributo consiste in una coppia Un attributo consiste in una coppia

nome-valore:nome-valore: <persona nome=‘Mario’ <persona nome=‘Mario’

cognome=‘Rossi’>cognome=‘Rossi’> <persona nome=“Valeria” <persona nome=“Valeria”

cognome=“Bianchi”>cognome=“Bianchi”>

Page 12: XML

CommentiCommenti I documenti XML possono contenere I documenti XML possono contenere

dei commenti e delle note.dei commenti e delle note. Un commento si può inserire usando Un commento si può inserire usando

la sintassi:la sintassi: <!-- Commento --><!-- Commento -->

Page 13: XML

La dichiarazione XMLLa dichiarazione XML I documenti XML dovrebbero iniziare I documenti XML dovrebbero iniziare

con una dichiarazione XML:con una 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.

Page 14: XML

Documenti ben formatiDocumenti ben formati Affinché un documento XML sia Affinché un documento XML sia

ben formatoben formato è necessario è necessario rispettare alcune regole sintattiche.rispettare alcune regole sintattiche.

1.1. ad ogni tag iniziale deve corrispondere ad ogni tag iniziale deve corrispondere un tag finaleun tag finale

2.2. gli elementi non possono sovrapporsigli elementi non possono sovrapporsi3.3. deve esistere esattamente un deve esistere esattamente un

elemento radiceelemento radice

Page 15: XML

Documenti ben formatiDocumenti ben formati4.4. i valori degli attributi devono essere i valori degli attributi devono essere

specificati tra apicispecificati tra apici5.5. i commenti e le istruzioni di i commenti e le istruzioni di

elaborazione non possono apparire elaborazione non possono apparire all’interno dei tagall’interno dei tag

6.6. non deve apparire nessun carattere < non deve apparire nessun carattere < o & all’interno dei caratteri di un o & all’interno dei caratteri di un elemento o di un attributoelemento o di un attributo

Page 16: XML

Regola 1Regola 1 Ad ogni tag iniziale deve Ad ogni tag iniziale deve

corrispondere un tag finalecorrispondere un tag finale <giorno>28</giorno> <mese>giugno</mese> <anno>1867</anno>

Page 17: XML

Regola 2Regola 2 Gli elementi non possono Gli elementi non possono

sovrapporsisovrapporsi Non valido:Non valido:

<giorno>28<mese>giugno</giorno></mese>

Valido:Valido: <giorno>28</giorno> <mese>giugno</mese>

Page 18: XML

Regola 3Regola 3 Deve esistere esattamente un Deve esistere esattamente un

elemento radiceelemento radice<?xml version="1.0" ?><persona>

<nome>Luigi</nome></persona><persona>

<nome>Mario</nome></persona><persona>

<nome>Valeria</nome></persona>

<?xml version="1.0” ?><elenco_persone>

<persona><nome>Luigi</

nome></persona><persona>

<nome>Mario</nome>

</persona><persona>

<nome>Valeria</nome>

</persona></elenco_persone>

Page 19: XML

Regola 4Regola 4 I valori degli attributi devono essere I valori degli attributi devono essere

specificati tra virgolettespecificati tra virgolette Non valido:Non valido:

<persona nome=Mario <persona nome=Mario cognome=Rossi>cognome=Rossi>

Valido:Valido: <persona nome=“Mario” <persona nome=“Mario”

cognome=“Rossi”>cognome=“Rossi”>

Page 20: XML

Regola 5Regola 5 I commenti e le istruzioni di I commenti e le istruzioni di

elaborazione non possono apparire elaborazione non possono apparire all’interno dei tagall’interno dei tag

Non valido:Non valido: <persona <!– una persona--> ><persona <!– una persona--> >

Valido:Valido: <persona> <!– una persona--><persona> <!– una persona-->

Page 21: XML

Regola 6Regola 6 Non deve apparire nessun carattere Non deve apparire nessun carattere

< o & all’interno dei caratteri di un < o & all’interno dei caratteri di un elemento o di un attributoelemento o di un attributo

Non valido:Non valido: <espressione> a > b </espressione><espressione> a > b </espressione>

Page 22: XML

Referenze ad entitàReferenze ad entità Per superare i limiti di non poter usare Per superare i limiti di non poter usare

certi caratteri (>,<,% caratteri certi caratteri (>,<,% caratteri accentati) come testo interno ai tag si accentati) come testo interno ai tag si usano delle combinazioni speciali usano delle combinazioni speciali chiamate referenze ad entitàchiamate referenze ad entità

&lt; -> il carattere minore <&lt; -> il carattere minore < &amp; -> il carattere &&amp; -> il carattere & &gt; ->il carattere maggiore >&gt; ->il carattere maggiore > &quot; -> le virgolette&quot; -> le virgolette &apos; -> apostrofo&apos; -> apostrofo

Page 23: XML

Sezioni CDATASezioni CDATA Quando un documento XML contiene Quando un documento XML contiene

delle grosse porzioni di testo, usare le delle grosse porzioni di testo, usare le referenze ad entità può risultare referenze ad entità può risultare fastidioso.fastidioso.

Per semplificare la scrittura di documenti Per semplificare la scrittura di documenti XML si introducono le sezioni CDATAXML si introducono le sezioni CDATA

All’interno di una sezione CDATA può All’interno di una sezione CDATA può essere usato qualunque carattere si essere usato qualunque carattere si desidera, compreso quelli che desidera, compreso quelli che normalmente non possono essere usati.normalmente non possono essere usati.

Page 24: XML

Sezione CDATASezione CDATA Una sezione CDATA inizia con la Una sezione CDATA inizia con la

sequenzasequenza <![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 > < % “ ’ caratteri che desidero compreso > < % “ ’ oppure i caratteri accentati à è ì ò ù ]]> </p>oppure i caratteri accentati à è ì ò ù ]]> </p>

Page 25: XML

Elementi vuotiElementi vuoti Quando un elemento non deve avere Quando un elemento non deve avere

nessun contenuto esso può apparire nessun contenuto esso può apparire in due forme.in due forme.

Nella forma estesa:Nella forma estesa: <elemento></elemento><elemento></elemento>

Oppure nella forma contratta:Oppure nella forma contratta: <elemento/><elemento/>

Page 26: XML

Documenti validiDocumenti validi Spesso la “ben formazione” di un Spesso la “ben formazione” di un

documento XML non è sufficientedocumento XML non è sufficiente Per determinate applicazioni può Per determinate applicazioni può

essere necessario definire ulteriori essere necessario definire ulteriori regole di composizione dei tagregole di composizione dei tag Ad esempio si può voler che il tag Ad esempio si può voler che il tag

<persona> contenga sempre un tag <persona> contenga sempre un tag <nome> e un tag <cognome><nome> e un tag <cognome>

Page 27: XML

Documenti validiDocumenti validi Un file XML si dice anche valido se Un file XML si dice anche valido se

rispetta una serie di regolerispetta una serie di regole Le regole generalmente vengono Le regole generalmente vengono

definite in file esterno chiamato DTDdefinite in file esterno chiamato DTD

Page 28: XML

Differenza tra XML e Differenza tra XML e HTMLHTML

HTML descrive sia l’aspetto che il HTML descrive sia l’aspetto che il contenuto di una pagina Web; XML invece contenuto di una pagina Web; XML invece descrive soltanto il contenuto.descrive soltanto il contenuto.

HTML ha una sintassi molto libera; XML HTML ha una sintassi molto libera; XML invece prevede che siano rispettate certe invece prevede che siano rispettate certe regole di composizione.regole di composizione.

HTML ha una sintassi chiusa, non possono HTML ha una sintassi chiusa, non possono essere definiti ulteriori tag, per essere definiti ulteriori tag, per aggiungere potenza ad HTML si devono aggiungere potenza ad HTML si devono usare altre tecnologia; XML invece è usare altre tecnologia; XML invece è totalmente configurabile.totalmente configurabile.

Page 29: XML

I caratteri UnicodeI caratteri Unicode Per superare i limiti imposti dal set Per superare i limiti imposti dal set

di caratteri ASCII (piuttosto ridotto) di caratteri ASCII (piuttosto ridotto) in XML su utilizza il set di caratteri in XML su utilizza il set di caratteri UNICODEUNICODE

Vedasi Vedasi www.unicode.orgwww.unicode.org

Page 30: XML

Esempio di utilizzo Esempio di utilizzo dell’UNICODEdell’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 -->&#1583;&#1575;&#1610;&#1578;&#1614;&#1604;&#1583;&#1575;&#1610;&#1578;&#1614;&#1604;&#1571;&#1606;&#1583;&#1571;&#1606;&#1583;<!-- entity --><!-- entity -->&assoc;&assoc;</from></from><subject><subject><!-- Welcome to the world of Unicode --><!-- Welcome to the world of Unicode -->&#1571;&#1607;&#1604;&#1575;&#1611;&#1571;&#1607;&#1604;&#1575;&#1611;&#1576;&#1603;&#1605;&#1576;&#1603;&#1605;&#1601;&#1610;&#1616;&#1601;&#1610;&#1616;&#1593;&#1575;&#1604;&#1605;&#1593;&#1575;&#1604;&#1605;<!-- entity --><!-- entity -->&text;&text;</subject></subject>

</welcome></welcome>

Page 31: XML

Utilizzo dei caratteri Utilizzo dei caratteri UnicodeUnicode

Page 32: XML

La DTD associataLa DTD associata<!ENTITY assoc <!ENTITY assoc

"&#1571;&#1587;&#1617;&#1608;&#15"&#1571;&#1587;&#1617;&#1608;&#1588;&#1616;&#1610;&#1614;&#1578;&#88;&#1616;&#1610;&#1614;&#1578;&#1618;&#1587;">1618;&#1587;">

<!ENTITY text <!ENTITY text "&#1575;&#1604;&#1610;&#1608;&#16"&#1575;&#1604;&#1610;&#1608;&#1606;&#1610;&#1603;&#1608;&#1583;">06;&#1610;&#1603;&#1608;&#1583;">

<!ELEMENT welcome (from, subject)><!ELEMENT welcome (from, subject)><!ELEMENT from ANY ><!ELEMENT from ANY ><!ELEMENT subject ANY><!ELEMENT subject ANY>

Page 33: XML

Ulteriori InformazioniUlteriori Informazioni Dove reperire ulteriori informazioni Dove reperire ulteriori informazioni

su XMLsu XML W3C (World Wide Web Consortium) W3C (World Wide Web Consortium)

http://www.w3.org/XML/http://www.w3.org/XML/ http://www.w3schools.com/default.asphttp://www.w3schools.com/default.asp http://www.html.it/xml/guida/index.htmlhttp://www.html.it/xml/guida/index.html www.xml.orgwww.xml.org