La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

CORSO ITP Informatica Gestionale Modulo – Rappresentazione dei dati Romeo Pruno University of Camerino

Presentazioni simili


Presentazione sul tema: "CORSO ITP Informatica Gestionale Modulo – Rappresentazione dei dati Romeo Pruno University of Camerino"— Transcript della presentazione:

1 CORSO ITP Informatica Gestionale Modulo – Rappresentazione dei dati Romeo Pruno University of Camerino https://unicam.it/~romeo.pruno

2 Camerino, 26/11/2005Dott. Romeo Pruno – Agenda Introduzione Storia ed applicazioni di XML Un po di storia Il mondo di XML: XHTML ed oltre Documenti dati e rappresentazioni Struttura dei documenti XML Documenti ben formati Documenti validi Definizione ed applicazione di grammatiche DTD XML Schema Namespace Modelli di presentazione di documenti XML XML & CSS XSL eXtendible Stylesheet Language XPath Fogli di stile XSLT

3 Camerino, 26/11/2005Dott. Romeo Pruno – Introduzione LeXtensible Markup Language (XML) non è lennesimo linguaggio di markup né levoluzione dellormai vecchio, ma sempre vivo, HTML. Esso è un meta-linguaggio di markup, cioè un linguaggio che permette di definire altri linguaggi di markup. A differenza di HTML, XML non ha tag predefiniti e non serve per definire pagine Web né per programmare. Esso serve esclusivamente per definire altri linguaggi.

4 Camerino, 26/11/2005Dott. Romeo Pruno – Introduzione In realtà, XML di per sé non è altro che un insieme standard di regole sintattiche per modellare la struttura di documenti e dati. Questo insieme di regole, dette più propriamente specifiche, definiscono le modalità secondo cui è possibile crearsi un proprio linguaggio di markup. Le specifiche ufficiali sono state definite dal W3C (Worl Wide Web Consortium) e sono consultabili a partire dallindirizzo

5 Camerino, 26/11/2005Dott. Romeo Pruno – Introduzione Ma perché si sente tanto parlare di XML? Perché tutti ne parlano quasi come una rivoluzione in ambito informatico? Cosa è possibile fare con questo meta-linguaggio? Come è possibile definire ed utilizzare un proprio linguaggio di markup?

6 Camerino, 26/11/2005Dott. Romeo Pruno – Agenda Introduzione Storia ed applicazioni di XML Un po di storia Il mondo di XML: XHTML ed oltre Documenti dati e rappresentazioni Struttura dei documenti XML Documenti ben formati Documenti validi Definizione ed applicazione di grammatiche DTD XML Schema Namespace Modelli di presentazione di documenti XML XML & CSS XSL eXtendible Stylesheet Language XPath Fogli di stile XSLT

7 Camerino, 26/11/2005Dott. Romeo Pruno – Storia ed applicazioni di XML SGML (Standard Generalized Markup Language), un meta-linguaggio per la definizione di linguaggi di markup. Questo linguaggio risultava però troppo complesso per gli scopi della ricerca e pertanto fu snellito da alcune caratteristiche e semplificato in alcuni punti per renderlo adatto allo scopo. Nel dicembre 97 le specifiche di XML venivano pubblicate come Proposed Recommendation. Tuttavia, anche se gli obiettivi iniziali della nascita di XML erano rivolti alla soluzione di un problema di standard per il Web, ben presto ci si accorse che XML non era limitato al solo contesto Web.

8 Camerino, 26/11/2005Dott. Romeo Pruno – Storia ed applicazioni di XML Esso risulta essere abbastanza generale per poter essere utilizzato nei più disparati contesti: definizione della struttura di documenti scambio di informazioni tra sistemi diversi rappresentazione di immagini definizione di formati di dati Questo aspetto rappresentava una rivoluzione.

9 Camerino, 26/11/2005Dott. Romeo Pruno – Storia ed applicazioni di XML A questo punto, dopo aver conosciuto la storia dellorigine di XML, la domanda che generalmente viene fatta è: allora XML sostituirà lHTML? Anche se il dubbio risulta legittimo, possiamo dire che XML e HTML non sono in diretta concorrenza. tutti i tag e i loro attributi sono espressi in minuscolo è obbligatorio inserire il tag di chiusura (ad esempio, se usiamo dobbiamo chiudere con ) i valori degli attributi devono essere specificati tra doppi apici o singoli apici (ad esempio, ) i tag vuoti seguono la cosiddetta sintassi minimizzata (per esempio, il tag diventa ) utilizzare l'attributo id al posto di name per identificare gli elementi di un documento

10 Camerino, 26/11/2005Dott. Romeo Pruno – Storia ed applicazioni di XML Abbiamo detto allinizio che XML è un insieme standard di regole sintattiche per modellare la struttura di documenti e dati. Due parole di questa definizione sono di fondamentale importanza: standard e struttura.

11 Camerino, 26/11/2005Dott. Romeo Pruno – Storia ed applicazioni di XML Standard Le regole in questione sono standard e questo garantisce lindipendenza da una specifica piattaforma hardware e software o da uno specifico produttore. Pertanto, se definiamo un nostro linguaggio di markup tramite XML possiamo stare sicuri che esistono già strumenti per le diverse piattaforme in grado di comprendere ed elaborare correttamente il nostro linguaggio.

12 Camerino, 26/11/2005Dott. Romeo Pruno – Storia ed applicazioni di XML Regole Le regole di XML consentono di definire la struttura di documenti e dati, ma non altre caratteristiche come il tipo o la presentazione dei dati o documenti. Questo compito non è di XML ma è delegato ad altre tecnologie, alcune delle quali sono basate sullo stesso XML, a dimostrarne la flessibilità ed universalità.

13 Camerino, 26/11/2005Dott. Romeo Pruno – Storia ed applicazioni di XML Regole Viene fuori quindi che intorno ad XML ruotano una serie di tecnologie e linguaggi che supportano luso di questo meta- linguaggio e lo rendono affidabile e flessibile per gli usi più disparati. DTD e XML Schema possiamo creare grammatiche che definiscono formalmente la struttura dei dati e ne consentono di verificare la correttezza CSS, XSL, XSL-FO possiamo controllare la presentazione dei dati e la loro trasformazione in altri formati; XLink e XPointer possiamo collegare documenti XML mentre con XQuery e XQL possiamo estrarre informazioni secondo determinati criteri.

14 Camerino, 26/11/2005Dott. Romeo Pruno – Agenda Introduzione Storia ed applicazioni di XML Un po di storia Il mondo di XML: XHTML ed oltre Documenti dati e rappresentazioni Struttura dei documenti XML Documenti ben formati Documenti validi Definizione ed applicazione di grammatiche DTD XML Schema Namespace Modelli di presentazione di documenti XML XML & CSS XSL eXtendible Stylesheet Language XPath Fogli di stile XSLT

15 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni Concretamente, un documento XML è un file di testo che contiene una serie di tag, attributi e testo secondo regole sintattiche ben definite. Un documento XML è intrinsecamente caratterizzato da una struttura gerarchica. Esso è composto da componenti denominati elementi. Ciascun elemento rappresenta un componente logico del documento e può contenere altri elementi (sottoelementi) o del testo.

16 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni Gli elementi possono avere associate altre informazioni che ne descrivono le proprietà. Queste informazioni sono chiamate attributi. Lorganizzazione degli elementi segue un ordine gerarchico o arboreo che prevede un elemento principale, chiamato root element o semplicemente root o radice. La radice contiene linsieme degli altri elementi del documento. Possiamo rappresentare graficamente la struttura di un documento XML tramite un albero, generalmente noto come document tree.

17 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni Per fissare le idee prendiamo in considerazione la rappresentazione di un generico articolo a carattere tecnico e proviamo a rappresentarlo secondo il modello XML, come mostrato in figura. articolo testo paragrafo testo immagine paragrafo codice testo titolo file

18 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni Blocco di testo del primo paragrafo Blocco di testo del secondo paragrafo Esempio di codice Altro blocco di testo Riferimento ad un articolo

19 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni Il corpo vero e proprio del documento segue questa prima riga, rappresentando gli elementi tramite tag, cioè sequenze di caratteri delimitate dai segni ' ' proprio come avviene per lHTML. A differenza dellHTML in cui i tag sono predefiniti, XML ci lascia liberi di definire i tag che vogliamo. Per specificare un attributo per un elemento inseriamo il nome dellattributo con il relativo valore allinterno del tag di apertura dellelemento. Lorganizzazione gerarchica degli elementi viene rappresentata in XML tramite il loro annidamento. Alcuni elementi possono essere vuoti, cioè possono essere privi di contenuto testuale. A differenza di quanto avviene per lHTML, che consente lutilizzo di elementi senza tag di chiusura, XML prevede che vengano sempre specificati i tag di apertura e chiusura. E questo il caso del tag immagine.

20 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni Tuttavia, XML prevede una sintassi abbreviata per gli elementi vuoti che evita di dover specificare il tag di chiusura. E infatti sufficiente terminare il tag di apertura con la sequenza di caratteri "/>", come nel seguente esempio:

21 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni XML richiede un certo rigore sugli aspetti sintattici. Abbiamo visto nel paragrafo precedente che un tag vuoto deve necessariamente prevedere il tag di chiusura o in alternativa la versione abbreviata del tag. 1.Ogni documento XML deve contenere un unico elemento di massimo livello (root) che contenga tutti gli altri elementi del documento. Le sole parti di XML che possono stare allesterno di questo elemento sono i commenti e le direttive di elaborazione (per esempio, la dichiarazione della versione di XML) 2.Ogni elemento deve avere un tag di chiusura o, se vuoti, possono prevedere la forma abbreviata (/>) 3.Gli elementi devono essere opportunamente nidificati, cioè i tag di chiusura devono seguire lordine inverso dei rispettivi tag di apertura 4.XML fa distinzione tra maiuscole e minuscole, per cui i nomi dei tag e degli attributi devono coincidere nei tag di apertura e chiusura anche in relazione a questo aspetto 5.I valori degli attributi devono sempre essere racchiusi tra singoli o doppi apici

22 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni La violazione di una qualsiasi di queste regole fa in modo che il documento risultante non venga considerato ben formato. Anche se queste regole possono sembrare semplici, occorre prestarvi molta attenzione se si usa un semplice editor di testo. Soprattutto se si è abituati a lavorare con HTML. Codice del tipo... darà qualche problema, e lo stesso dicasi per situazioni analoghe alla seguente: abcdefghi...

23 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni Anche la scelta dei nomi dei tag deve seguire alcune regole. Un tag può iniziare con un lettera o un underscore (_) e può contenere lettere, numeri, il punto, lunderscore (_) o il trattino (-). Non sono ammessi spazi o altri caratteri. XML è sensibile alluso di maiuscolo e minuscolo, quindi i tag e sono considerati diversi. Potrebbe essere necessario inserire in un documento XML dei caratteri particolari che potrebbero renderlo non ben formato. Ad esempio, se dobbiamo inserire del testo che contiene il simbolo <, corriamo il rischio che possa venire interpretato come linizio di un nuovo tag, come nel seguente esempio: il simbolo < indica minore di

24 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni Per evitare situazioni di questo tipo, XML prevede degli oggetti speciali detti entità che consentono di sostituire altri caratteri. Cinque entità sono predefinite e consentono luso di altrettanti caratteri riservati allinterno di un documento: & definisce il carattere & < definisce il carattere < > definisce il carattere > " definisce il carattere " ' definisce il carattere Sfruttando le entità, lesempio precedente diventa: il simbolo < indica minore di

25 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni In determinate situazioni gli elementi da sostituire con le entità possono essere molti, il che rischia di rendere illeggibile il testo ad essere umano. Si consideri il caso in cui un blocco di testo illustri proprio del codice XML: In questo caso, al posto di sostituire tutte le occorrenze dei simboli speciali con le corrispondenti entità è possibile utilizzare una sezione CDATA.

26 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni Una sezione CDATA (Character DATA) è un blocco di testo che viene considerato sempre come testo, anche se contiene codice XML o altri caratteri speciali. Per indicare una sezione CDATA è sufficiente racchiuderla tra le sequenze di caratteri. Il nostro esempio diventerà come segue: In certe situazioni non si conosce a priori il contenuto che può essere inserito in un blocco di testo e pertanto lutilizzo delle sezioni CDATA risulta obbligatorio.

27 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni Come si definisce una grammatica per descrivere un linguaggio di markup? Attualmente due sono gli approcci più diffusi alla creazione di grammatiche per documenti XML: DTD - Document Type Definition e XML Schema. Questi argomenti saranno affrontati in seguito. Un documento XML può essere allorigine di diversi tipi di elaborazione: generazione di altri documenti, eventualmente in formati diversi, controllo delle impostazioni di programmi, rappresentazione di immagini, ecc. Tutti i possibili impieghi di XML, però, si fondano su due tipi di elaborazione preliminare: la verifica che un documento sia ben formato e la sua validità rispetto ad una grammatica.

28 Camerino, 26/11/2005Dott. Romeo Pruno – Documenti dati e rappresentazioni I software che si occupano di queste elaborazioni sono detti parser e sono degli strumenti standard disponibili sulle diverse piattaforme. Possiamo suddividere i parser in due categorie (talvolta può essere lo stesso parser che assume due ruoli): 1.parser non validante è un parser che verifica soltanto se un documento è ben formato 2.parser validante è un parser che, oltre a verificare che un documento è ben formato, verifica se è corretto rispetto ad una data grammatica La maggior parte degli editor XML più recenti hanno un parser integrato o si appoggiano su parser esterni per effettuare la convalida dei documenti.

29 Camerino, 26/11/2005Dott. Romeo Pruno – Agenda Introduzione Storia ed applicazioni di XML Un po di storia Il mondo di XML: XHTML ed oltre Documenti dati e rappresentazioni Struttura dei documenti XML Documenti ben formati Documenti validi Definizione ed applicazione di grammatiche DTD XML Schema Namespace Modelli di presentazione di documenti XML XML & CSS XSL eXtendible Stylesheet Language XPath Fogli di stile XSLT

30 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Da un punto di vista cronologico, il primo approccio per la definizione di grammatiche per documenti XML è rappresentato dai Document Type Definition (DTD). Un DTD è un documento che descrive i tag utilizzabili in un documento XML, la loro reciproca relazione nei confronti della struttura del documento e altre informazioni sugli attributi di ciascun tag. La sintassi di un DTD si basa principalmente sulla presenza di due dichiarazioni: e. La prima definisce gli elementi utilizzabili nel documento e la struttura del documento stesso, la seconda definisce la lista di attributi per ciascun elemento. Ad esempio, la dichiarazione

31 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Il carattere '+', dopo il nome del sottoelemento, indica il relativo numero di occorrenze. Un insieme di caratteri speciali ha appunto lo scopo di indicare il numero di occorrenze di un elemento. In particolare: + indica che lelemento è presente una o più volte * indica che lelemento è presente zero o più volte ? indica che lelemento è presente zero o una sola volta Per esempio, la definizione indica che lelemento contiene la sequenza di elementi e. Lelemento può essere presente zero o più volte, mentre deve essere presente almeno una volta.

32 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Il seguente codice riporta il DTD completo per un documento che descrive un articolo analogo a quello visto negli esempi:

33 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Utilizzando i DTD, abbiamo un maggior controllo sulla struttura e sulluso dei tag in un documento XML, evitando che la libertà nella definizione dei tag possa far perdere il controllo sui contenuti. Tuttavia luso dei DTD per definire la grammatica di un linguaggio di markup non sempre è del tutto soddisfacente. A parte il fatto che la sintassi utilizzata per definire un DTD non segue le regole stesse di XML, i DTD non consentono di specificare un tipo di dato per il valore degli attributi, né di specificare il numero minimo o massimo di occorrenze di un tag in un documento o altre caratteristiche che in determinati contesti consentirebbero di ottenere un controllo ancora più accurato sulla validità di un documento XML. Queste limitazioni hanno spinto alla definizione di approcci alternativi per definire grammatiche per documenti XML. Tra questi approcci il più noto è XML Schema.

34 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche XML Schema introduce il concetto di tipo di dato semplice per definire gli elementi che non possono contenere altri elementi e non prevedono attributi. Si possono usare tipi di dato semplici predefiniti oppure è possibile personalizzarli. Sono previsti numerosi tipi di dato predefiniti, alcuni dei quali sono riportati nella seguente tabella: Tipo di datoDescrizione xs:stringStringa di caratteri xs:integerNumero intero xs:decimalNumero decimale xs:booleanValore booleano xs:dateData xs:timeOra xs:uriReferen ce URL

35 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Ad esempio, la seguente dichiarazione: permette lutilizzo dellelemento quantita in un documento XML consentendo soltanto un contenuto di tipo intero. In altre parole, sarà considerato valido lelemento 123 mentre non lo sarà lelemento uno. XML Schema prevede anche la possibilità di definire tipi di dato semplici personalizzati come derivazione di quelli predefiniti. Se, ad esempio, abbiamo bisogno di limitare il valore che può essere assegnato allelemento possiamo definirlo nel seguente modo: In altre parole, la dichiarazione indica che lelemento è di tipo semplice e prevede una restrizione sul tipo di dato intero predefinito accettando valori compresi tra 1 e 100.

36 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Se lelemento può contenere altri elementi possiamo definire la sequenza di elementi che possono stare al suo interno utilizzando uno dei costruttori di tipi complessi previsti: Consente di definire una sequenza ordinata di sottoelementi Consente di definire un elenco di sottoelementi alternativi Consente di definire una sequenza non ordinata di sottoelementi

37 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Per ciascuno di questi costruttori e per ciascun elemento è possibile definire il numero di occorrenze previste utilizzando gli attributi minOccurs e maxOccurs. Ad esempio, se lelemento testo può essere presente una o infinite volte allinterno di un paragrafo possiamo esprimere questa condizione nel seguente modo: In questo caso il valore unbounded indica che non è stablito un massimo numero di elementi testo che possono stare allinterno di un paragrafo.

38 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Per ciascuno di questi costruttori e per ciascun elemento è possibile definire il numero di occorrenze previste utilizzando gli attributi minOccurs e maxOccurs. Ad esempio, se lelemento testo può essere presente una o infinite volte allinterno di un paragrafo possiamo esprimere questa condizione nel seguente modo:

39 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche

40 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche XML – Intro 26/11/2005 Whats XML? Document well-formed e valid document Namespace XML XML InfoSet DTD e Xml Schema Definition XML Document Object Model (DOM) Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO XML: XQuery XML document – WellFormed ?

41 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche XML - Intro 03/08/2005 Whats XML? Document well-formed e valid document Namespace XML XML InfoSet DTD e Xml Schema Definition XML Document Object Model (DOM) Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO XML: XQuery XML document – WellFormed ?

42 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche XML - Intro 03/08/2005 Whats XML? Document well-formed andvalid document Namespace XML XML InfoSet DTD e Xml Schema Definition XML Document Object Model (DOM) Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO XML and XQuery XML document – WellFormed ?

43 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Namespace XML Ma se possiamo inventarci i nomi dei TAG a piacere e possiamo costruire i documenti XML secondo le nostre esigenze nel solo rispetto delle regole sintattiche (Well-Formed) come facciamo a capirci ? Cioè: come distinguo (Codice ISBN) PLRPLA75L03B157T (Codice Fiscale)

44 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Namespace XML Possiamo utilizzare nomi di TAG uguali con significati diversi È sufficiente indicare nel documento XML quale significato stiamo dando ai nomi degli elementi e degli attributi Questo si ottiene tramite i Namespace I Namespace definiscono grammatiche

45 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Definire i Namespace Per definire un Namespace in un documento XML dobbiamo usare la parola chiave xmlns. Se dobbiamo usare più Namespace nel nostro documento ne avremo uno di default e potremo indicarne di opzionali.

46 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Esempio Namespace PP2301 PP2301

47 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche XML Infoset Pensiamo al documento XML come ad una gerarchia di nodi (attributi, elementi, testo, ecc.) Pensiamo a trattare la gerarchia in memoria e non preoccupiamoci della sua natura fisica (file, stream, foglio di carta...) XML InfoSet 1.0 (e dal 4/2/2004 anche 1.1) è una Recommendation del W3C Per pensare ad XML come albero di nodi informativi E non più soltanto come file di testo con tag Possiamo creare dei nostri formati (compressi, criptati, ecc.) che in memoria siano InfoSet...

48 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche Ricapitolando…. E simile a HTML ? Sì Possiamo scrivere HTML come XML ? Sì anche se non è proprio HTML … HTML XML

49 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche DOM Document Object Model DOM (Document Object Model) modello ad oggetti definito dal W3C per navigare e creare contenuti XML è indipendente dalla piattaforma esistono diverse implementazioni del DOM (Microsoft, IBM, Oracle, ecc.)

50 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche DOM Document Object Model Livello 1 Raccomandazione W3C del 1-Oct-1998 Implementato da Microsoft, IBM e altri Livello 2 Raccomandazione W3C del 13-Nov-2000 Implementato da: MSXML 4.0 e.NET Framework Livello 3 Proposed Recommendation 05-Feb-2004 …

51 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche In-Memory tree lesson data agenda XML - Intro 03/08/2005 XML Schema argomento argomento

52 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche DOM Document Object Model... Attributo Documento Text Text Text Elemento Testo Legenda tipologie di Nodo Text documentElement E molti altri... tutti che ereditano dallinterfaccia Node.

53 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche XML DOM: Document Comment root ProcessingInstruction Document DocumentType Comment ProcessingInstruction Molti { Solo 1 { document.doctype document.documentElement Demo dom/…

54 Camerino, 26/11/2005Dott. Romeo Pruno – Definizione ed app. di grammatiche XML DOM: Node nodeType = Element nodeName = customer nodeValue = null hasChildNodes = true previousSibling nextSibling parentNode NamedNodeMap... attributes firstChild lastChild... NodeList childNodes

55 Camerino, 26/11/2005Dott. Romeo Pruno – Agenda Introduzione Storia ed applicazioni di XML Un po di storia Il mondo di XML: XHTML ed oltre Documenti dati e rappresentazioni Struttura dei documenti XML Documenti ben formati Documenti validi Definizione ed applicazione di grammatiche DTD XML Schema Namespace Modelli di presentazione di documenti XML XML & CSS XSL eXtendible Stylesheet Language XPath Fogli di stile XSLT

56 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc Caso pratico del blog La struttura tipo di un post per X-blog è molto semplice. Ciascuno di essi avrà: un titolo la data di invio un testo eventuali link nel testo blog.html News.xml

57 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc Presentare XML Il documento "news.xml" non contiene alcuna informazione su come verrà presentato. Non è una limitazione. E' così che deve essere. Per effettuare la formattazione di un documento XML in vista della sua presentazione si possono seguire due metodi. CSS XSL un linguaggio ben più potente dei semplici CSS in grado di trasformare qualunque documento XML in vari formati: testo semplice, HTML, XHTML, persino PDF.

58 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc DOM Document Object Model Livello 1 Raccomandazione W3C del 1-Oct-1998 Implementato da Microsoft, IBM e altri Livello 2 Raccomandazione W3C del 13-Nov-2000 Implementato da: MSXML 4.0 e.NET Framework Livello 3 Proposed Recommendation 05-Feb-2004 …

59 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc XSL XSL è certamente uno dei più importanti linguaggi standard del W3C. Esso risulta composto di tre parti, ciascuna delle quali rientra nella specifica XSL 1.0, pubblicata nell'ottobre 2001: XSLT: è un linguaggio che consente di trasformare documenti XML in altri formati Xpath: definisce espressioni e metodi per accedere ai nodi di un documento XML XSL FO (Formatting object): usato per formattare in maniera precisa un oggetto trasformato Per questa lezione si farà riferimento solo a XSLT e Xpath.

60 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc Cosa fa un foglio XSL? Un foglio di stile XSLT è un documento XML valido e ben formato. Fornisce un meccanismo per trasformare un documento XML in un altro. Dal punto di vista del web design e per la nostra applicazione la trasformazione che ci interessa è quella da XML in XHTML. XML XSL Documento finale

61 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc CSS e XSL Innanzitutto, XSL è di gran lunga più potente. Un foglio di stile CSS, infatti, può contenere principalmente le regole che definiscono lo stile dei vari elementi di una pagina. E anche possibile stabilire importanti caratteristiche del layout, come posizione e dimensioni, ma tutte le regole devono poggiare su una struttura definita altrove (in genere in un documento XHTML). aggiungere nuovi elementi alla struttura creare nuovi contenuti filtrare e ordinare dati generare documenti con diversi gradi di compatibilità usare complesse espressioni condizionali Si può intuire che si tratta di operazioni che sono tipiche più di linguaggi come ASP che di CSS.

62 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc Trasformazioni XML: XSL in opera il prologo l'elemento radice

63 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc Scegliere il metodo di output Prima della definizione delle regole di trasformazione è possibile specificare il formato del documento finale. Ciò avviene tramite la dichiarazione. All'interno di tale dichiarazione si possono specificare vari attributi. Il più importante è certamente method, con cui si può impostare il formato di output scegliendo tra xml, html e text:

64 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc Regole e templates l'elemento radice gli attributi e i loro valori i commenti gli elementi i namespace le istruzioni di elaborazione il testo contenuto in un nodo

65 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc Output Ora, in un foglio XSLT è necessario specificare delle regole per trasformare i singoli nodi. Ogni regola viene definita in un template. Quando si crea un template è come se si dicesse: caro processore XSL, quando incontri il nodo x esegui questa trasformazione. Esempio. Supponiamo di voler trasformare "news.xml" in XHTML e che l'elemento con il suo contenuto debba essere racchiuso in un paragrafo. In XSL creeremo questo template: Il processore percorrerà tutto l'albero del documento. Quando incontrerà l'elemento, verificherà che sia presente come elemento figlio, trasformerà il testo in un paragrafo.

66 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc Elementi principali xsl:apply-templates Applica le regole definite in un tamplate. xsl:attribute Crea un attributo per un elemento. xsl:comment Genera un commento nel documento finale xsl:element Crea un nuovo elemento xsl:for-each Stabilisce una struttura ciclica ripetendo un template tutte le volte che un dato nodo viene incontrato. xsl:if Usato per impostare semplici strutture condizionali. xsl:include Include un foglio XSL esterno xsl:sort Ordina un insieme di nodi in bse ai parametri forniti. xsl:stylesheet Elemento radice di un documento XSL xsl:template Genera un template. xsl:text Genera nuovo testo nel documento di output xsl:value-of Restituisce il valore di un elemento o di un attributo. xsl:when Usato per espressioni condizionali complesse news.xsl

67 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc Notate differenze tra blog.html e default.asp ?? demo

68 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc Analisi di news.xsl Dichiarazioni preliminari Output del documento Parte statica del documento

69 Camerino, 26/11/2005Dott. Romeo Pruno – Modelli di presentazione di XML doc Analisi di news.xsl Gestione dei post Gestione dei link

70 Camerino, 26/11/2005Dott. Romeo Pruno – Question and Answer


Scaricare ppt "CORSO ITP Informatica Gestionale Modulo – Rappresentazione dei dati Romeo Pruno University of Camerino"

Presentazioni simili


Annunci Google