XML

322 views

Published on

  • Be the first to comment

  • Be the first to like this

XML

  1. 1. XMLXML eXtensible Markup LanguageeXtensible Markup Language Ing. Luca Sabatucci
  2. 2. Struttura ad alberoStruttura ad albero persona nome cognome data di nascita giorno annomese luogo di nascita origine radice elementi
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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>
  18. 18. Regola 3Regola 3  Deve esistere esattamente un elemento radiceDeve esistere esattamente un elemento 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>
  19. 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. 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. 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. 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à  &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
  23. 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. 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. 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. 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. 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. 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. 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. 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>
  31. 31. Utilizzo dei caratteri UnicodeUtilizzo dei caratteri Unicode
  32. 32. La DTD associataLa DTD associata <!ENTITY assoc<!ENTITY assoc "أسّوشِ"أسّوشِ يَتْس">يَتْس"> <!ENTITY text<!ENTITY text "اليوني"اليوني كود">كود"> <!ELEMENT welcome (from, subject)><!ELEMENT welcome (from, subject)> <!ELEMENT from ANY ><!ELEMENT from ANY > <!ELEMENT subject ANY><!ELEMENT subject ANY>
  33. 33. Ulteriori InformazioniUlteriori Informazioni  Dove reperire ulteriori informazioni su XMLDove reperire ulteriori informazioni su 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

×