La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazione Web eXtensible Markup Language (XML) 2014/2015Programmazione Web - XML1.

Presentazioni simili


Presentazione sul tema: "Programmazione Web eXtensible Markup Language (XML) 2014/2015Programmazione Web - XML1."— Transcript della presentazione:

1 Programmazione Web eXtensible Markup Language (XML) 2014/2015Programmazione Web - XML1

2 2014/2015 eXtensible Markup Language Formato di file proposto dal W3C per distribuire documenti elettronici sul World Wide Web Evoluzione: 1986: Standard Generalized Markup Language (SGML) ISO Agosto 1997: XML Working Draft Dicembre 1997: XML 1.0 Proposed Recommendation Febbraio 1998: W3C Recommendation Richiami di XML 2Programmazione Web - XML2

3 2014/2015 HTML vs XML (I) HTML: insieme fisso di tag XML: standard per creare linguaggi di markup con tag personalizzati (erede di SGML); possono essere usati in qualunque dominio applicativo Il cosmo di Einstein Autore: Kaku Michio Editore: Codice Anno: 2005 ISBN: Il cosmo di Einstein Kaku Michio Codice Programmazione Web - XML3

4 2014/2015 HTML vs XML (II) XML non rimpiazza HTML! L’HTML è un caso particolare di XML XML e HTML sono nati con scopi diversi: XML progettato per descrivere i dati  cosa sono i dati scambiare e condividere dati e informazioni tra sistemi eterogenei (B2B, B2C,etc.) creare nuovi linguaggi (WML, MathML…) HTML progettato per visualizzare i dati  come appaiono i dati separare i dati dal modo con cui vengono presentati Recentemente è stato introdotto l’XHTML, che combina l’HTML con le rigide regole sintattiche dell’XML, permettendone una maggiore interoperabilità e l’utilizzo anche su dispositivi a minore capacità 4Programmazione Web - XML4

5 2014/2015 Sintassi XML Ogni documento deve iniziare con E’ un linguaggio di markup, quindi ne rispetta tutte le regole generali I tag sono “case sensitive” Un documento XML deve avere un tag radice Un documento XML è ben formato se soddisfa le regole di sintassi dell’XML 5Programmazione Web - XML5

6 2014/2015 Esempio di documento XML Forno Frigo 6Programmazione Web - XML6

7 2014/2015 Esempio di documento XML Forno Frigo 7 Dichiarazione iniziale Elemento radice Attributo Elemento con solo testo Elemento con altri tag annidati Programmazione Web - XML7

8 2014/2015 Elementi: modello di contenuto Gli elementi possono avere diversi tipi di contenuto possono contenere altri elementi annidati (element content) Il cosmo di Einstein Kaku Michio Traduzione a cura di P. Bonini L’eredità di Albert Einstein 8Programmazione Web - XML8

9 2014/2015 Elementi: modello di contenuto Gli elementi possono avere diversi tipi di contenuto possono contenere altri elementi annidati (element content) possono contenere solo testo (text content) Il cosmo di Einstein Kaku Michio Traduzione a cura di P. Bonini L’eredità di Albert Einstein 9Programmazione Web - XML9

10 2014/2015 Elementi: modello di contenuto Gli elementi possono avere diversi tipi di contenuto possono contenere altri elementi annidati (element content) possono contenere solo testo (text content) possono contenere sia elementi annidati che testo (mixed content) Il cosmo di Einstein Kaku Michio Traduzione a cura di P. Bonini L’eredità di Albert Einstein 10Programmazione Web - XML10

11 2014/2015 Elementi: modello di contenuto Gli elementi possono avere diversi tipi di contenuto possono contenere altri elementi annidati (element content) possono contenere solo testo (text content) possono contenere sia elementi annidati che testo (mixed content) possono essere vuoti (empty content) con o senza attributi Il cosmo di Einstein Kaku Michio Traduzione a cura di P. Bonini L’eredità di Albert Einstein 11Programmazione Web - XML11

12 2014/2015 Attributi Gli elementi possono avere degli attributi I valori vanno racchiusi tra “ ” Differiscono dagli elementi perchè non possono contenere elementi figli Limitazioni nell’uso di attributi non possono contenere valori multipli non possono descrivere strutture Forno Programmazione Web - XML12

13 2014/2015 Document Type Definition (DTD) Detta il formato comune per una classe di documenti XML, cioè: gli elementi ammessi le regole di annidamento degli elementi, gli attributi e il contenuto ammesso per ciascun elemento Scopi: accordarsi su formato/struttura dei documenti validare documenti XML secondo certe regole Un documento XML è valido rispetto ad un DTD se rispetta il formato specificato 13Programmazione Web - XML13

14 2014/2015 Tipi di dichiarazioni in un DTD ELEMENT : introduce il nome dell’elemento e il suo contenuto ammissibile ATTLIST: specifica gli attributi ammessi per un dato elemento e le proprietà di questi attributi (tipo e vincoli sugli attributi) ENTITY: simile ad una dichiarazione di costante, si riferisce ad una particolare porzione di documento XML 14Programmazione Web - XML14

15 2014/2015 Dichiarazione di elementi (I) 15 Elementi contenenti altri elementi figli … Elementi con PCDATA (parsed character data = porzione testo qualsiasi) testo Elementi vuoti Programmazione Web - XML15

16 2014/2015 Dichiarazione di elementi (II) 16 Contenuto misto testo.. Qualsiasi contenuto Programmazione Web - XML16

17 2014/2015 Occorrenze di un elemento 17 1 volta 1 o più volte 0 o più volte 0 o 1 volta Programmazione Web - XML17

18 2014/2015 Dichiarazione di attributi 18 Per ogni elemento il DTD dice: quali attributi può avere il tag che valori può assumere ciascun attributo eventuali vincoli sulla cardinalità degli attributi qual è il valore di default Esempio di dichiarazione di attributo: Programmazione Web - XML18

19 2014/2015 Tipi di attributi 19 CDATA: stringa ID: chiave unica IDREF, IDREFS: riferimento ad uno o più ID nel documento ENTITY, ENTITIES: nome di una o più entità NMTOKEN, NMTOKENS: caso ristretto di CDATA (una stringa di una o più parole separate da spazi) codice ID #REQUIRED label CDATA #IMPLIED status (disponibile|terminato) ‘disponibile’ Programmazione Web - XML19

20 2014/2015 Vincoli sugli attributi 20 #REQUIRED: il valore deve essere specificato #IMPLIED: l’attributo può avere un valore e il valore di default non è definito “val”: il valore dell’attributo è “val” se nient’altro è specificato #FIXED “val”: il valore, se presente, deve coincidere con “val” codice ID #REQUIRED label CDATA #IMPLIED status (disponibile|terminato) “disponibile” Programmazione Web - XML20

21 2014/2015 Dichiarazione di entità 21 Analoghe alle dichiarazioni di macro con #define in C Le entità possono essere interne ( &ATI; ) esterne ( &boilerplate; ) Programmazione Web - XML21

22 Sistemi Informativi e Servizi ... Documenti XML con DTD 2014/2015Programmazione Web - XML22

23 Sistemi Informativi e Servizi ... DTD esterno Documenti XML con DTD 2014/2015Programmazione Web - XML23

24 Sistemi Informativi e Servizi Forno Frigo Esempio di DTD 2014/2015Programmazione Web - XML24

25 Sistemi Informativi e Servizi Forno Frigo NOTA: un DTD NON è un documento XML Esempio di DTD 2014/2015Programmazione Web - XML25

26 Sistemi Informativi e Servizi Storia: inizialmente proposto da Microsoft, è divenuto W3C recommendation (maggio 2001) Scopo: definire gli elementi e la composizione di un documento XML Un XML Schema definisce regole riguardanti: Elementi Attributi Gerarchia degli elementi Sequenza di elementi figli Cardinalità di elementi figli Tipi di dati per elementi e attributi Valori di default per elementi e attributi XML Schema 2014/2015Programmazione Web - XML26

27 Sistemi Informativi e Servizi Possono contenere solo testo (nessun sottoelemento o attributo) Definizione di elementi semplici: Esempi di definizione di elementi semplici in XSD Elementi semplici in un documento XML 65 Rossi Elementi semplici 2014/2015Programmazione Web - XML27

28 Sistemi Informativi e Servizi Possono contenere solo testo (nessun sottoelemento o attributo) Definizione di elementi semplici: Esempi di definizione di elementi semplici in XSD Elementi semplici in un documento XML 65 Rossi Elementi semplici 2014/2015 Valore di default o fisso Programmazione Web - XML28

29 Sistemi Informativi e Servizi.. element content.. Elementi complessi 2014/2015Programmazione Web - XML29

30 Sistemi Informativi e Servizi.. element content.. Elementi complessi 2014/2015Programmazione Web - XML30

31 Sistemi Informativi e Servizi Numero di occorrenze: maxOccurs: max numero di occorrenze minOccurs: min numero di occorrenze Se non specificati: 1 e 1 sola occorrenza Vincoli di cardinalità 2014/2015Programmazione Web - XML31

32 Sistemi Informativi e Servizi Per definire gruppi di elementi (o attributi), tra loro correlati Group name … Raggruppamento 2014/2015Programmazione Web - XML32

33 Sistemi Informativi e Servizi E’ possibile imporre delle restrizioni sui valori dei tipi semplici tramite l’uso di “facet” Valore max/min Enumerazione di valori Pattern di caratteri ammessi Lunghezza di liste di valori Le restrizioni sono applicate al range di valori ammessi per questo tipo Restrizioni 2014/2015Programmazione Web - XML33

34 Sistemi Informativi e Servizi E’ possibile imporre delle restrizioni sui valori dei tipi semplici tramite l’uso di “facet” Valore max/min Enumerazione di valori Pattern di caratteri ammessi Lunghezza di liste di valori Facet + valore Restrizioni 2014/2015Programmazione Web - XML34

35 Sistemi Informativi e Servizi Riferimento ad altri elementi Attraverso l’attributo “ref” ci si può riferire ad un elemento definito altrove … … 2014/2015Programmazione Web - XML35

36 Sistemi Informativi e Servizi Un esempio di schema XML 2014/2015Programmazione Web - XML36

37 2014/ XHTML Si tratta di una versione più “controllata” dell'HTML, che segue le regole dell'XML annidamento corretto degli elementi... tag di chiusura... gestione ordinata dei tag vuoti case sensitivity per i nomi dei tag e degli attributi (minuscolo) Valori di attributi tra virgolette ed espliciti checked=”checked” Programmazione Web - XML37

38 2014/ Compatibilità Cross-Browser (I) I Browser supportano due modalità di rendering: Standards mode and Quirks mode Lo Standards mode lavora seguendo il più possibile le specifiche del W3C, quindi in maniera (quasi) indipendente dal browser Il Quirks mode segue le regole di formattazione dello specifico browser, con le sue limitazioni ed estensioni. La modalità Quirks esiste per rendere i browser compatibili con i vecchi siti web, che erano sviluppati con codice molto browser- dipendente. Oggi, è necessario sviluppare i nuovi siti in modalità Standards Programmazione Web - XML38

39 2014/ Compatibilità Cross-Browser (II) (!) Di default i browser usano la modalità Quirks Per entrare in modalità Standards occorre inserire all’inizio del documento una dichiarazione doctype come quella che segue Per usare l’XHTML transitional: Per usare l’XHTML strict: Programmazione Web - XML39

40 Il parser XML è un’applicazione che:  recupera il documento XML  carica i dati in memoria  presenta all’applicazione che lo invoca un’interfaccia di alto livello  fornisce servizi di validazione (opzionale)  fornisce servizi di ricerca (opzionale) Parser XML 2014/2015Programmazione Web - XML40

41 XMLDTD XML parser Applicazione XSD Parser XML 2014/2015Programmazione Web - XML41

42 Due diversi approcci  approccio ad eventi »il parser scandisce l’intero documento XML »ogni volta che incontra un nuovo elemento, informa l’applicazione usando la tecnica del Callback  approccio basato su modello »il parser costruisce internamente una struttura ad albero che rappresenta il documento XML (albero sintattico) »fornisce all’applicazione delle API che permettono la navigazione dell’albero sintattico Parsing di documenti XML 2014/2015Programmazione Web - XML42

43 Il Signore degli Anelli J.R.R. Tolkien Bompiani XML Parser Applicazione LibroTitolo Autore … t Approccio ad eventi 2014/2015Programmazione Web - XML43

44 Il Signore degli Anelli J.R.R. Tolkien Bompiani XML Parser Applicazione Librodisponibilità=“…” Titolo attr Editore Approccio basato su modello 2014/2015Programmazione Web - XML44

45 E’ una API per il parsing di documenti XML Definisce una modalità di rappresentazione di documenti XML Usa strutture dati accessibili dall’applicazione Definisce le operazioni per agire sulla rappresentazione intermedia  caricamento della struttura  costruzione di un nuovo documento  navigazione dell’albero sintattico  aggiungere, eliminare, modificare e spostare le componenti Esistono implementazioni di DOM per diversi linguaggi di programmazione  linguaggi server-side: Java, C++, C#  linguaggi di script: VB-script, Javascript DOM – Document Object Model 2014/2015Programmazione Web - XML45

46 I documenti XML sono caricati sotto forma di albero sintattico, composto da oggetti di tipo Nodo  ogni nodo può avere uno o più figli DOM definisce solo la vista logica e non dice nulla sull’effettiva struttura in memoria Come modello ad oggetti si specificano  gli oggetti utilizzati per rappresentare il documento ed i suoi costituenti  le interfacce pubbliche degli oggetti per poter essere utilizzate dal livello applicativo  le relazioni tra gli oggetti e le interfacce  la semantica associata ad ogni classe La struttura del DOM 2014/2015Programmazione Web - XML46

47 The &projectName; project is important MAIS project MIUR FIRB + ELEMENT: sentence + TEXT: The + ENTITY REF: projectName + TEXT: project is important + ELEMENT: name + TEXT: MAIS project + ELEMENT: typology + TEXT: MIUR FIRB Esempio di DOM 2014/2015Programmazione Web - XML47

48 Approccio ad eventiApproccio basato su modello E’ molto “leggero” Il programmatore può implementare solo le funzionalità necessarie Fornisce all’applicazione un modello ricco del documento Mantiene una rappresentazione completa e durevole in memoria Interfaccia troppo semplice; si richiede più codice nell’applicazione Nessun supporto per operare sul documento Richiede un'occupazione di memoria per tutto il documento Programmazione Web - XML

49 2014/ Dove trovare materiale, esempi, quiz… Tutorial della W3C (http://www.w3schools.com/default.asp)http://www.w3schools.com/default.asp Tutorial su XML, DTD e XML Schema (http://www.w3schools.com/xml/) Specifica XHTML 1 (http://www.w3.org/TR/xhtml1/)http://www.w3.org/TR/xhtml1/ Programmazione Web - XML49


Scaricare ppt "Programmazione Web eXtensible Markup Language (XML) 2014/2015Programmazione Web - XML1."

Presentazioni simili


Annunci Google