La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML Elaborazione di Franco Grivet Chin.

Presentazioni simili


Presentazione sul tema: "1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML Elaborazione di Franco Grivet Chin."— Transcript della presentazione:

1 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML Elaborazione di Franco Grivet Chin

2 2 XML vs HTML Partiamo da qualcosa che già conosciamo: HTML HTML (HyperText Mark-up Language) nasce nel 1991, come applicazione del linguaggio SGML (Standard Generalized Mark-up Language), per strutturare documenti di carattere tecnico scientifico; Nasce come linguaggio di strutturazione/presentazione dei contenuti da trasmettere attraverso il protocollo HTTP (HyperText Transfer Protocol); HTML doveva servire per garantire la portabilità delle pagine web da un programma di navigazione allaltro; I comandi (tag e attributi) sono un insieme fisso e limitato; Non serviva una grande rigidità di utilizzo dei comandi (è stato un fattore positivo!) HTML non è case-sensitive; Non esiste una gerarchia tra i tag; Non è cruciale chiudere i tag;

3 3 XML vs HTML Con HTML non si può fare tutto…è ottimo per strutturare pagine web, ma il web ospita esigenze per le quali è necessario qualcosa in più. Servono: Linguaggi di mark-up personalizzati; Linguaggi e protocolli di descrizione dei dati che consentano la massima interoperabilità tra applicazioni; Comandi che non si limitino ad indicare ad un programma come rappresentare il testo, ma che aiutino a trasmettere il significato delle informazioni (meta-informazioni); Comandi che diano ai dati una rigorosa strutturazione; In sintesi: serve un insieme di regole condivise che diano sia libertà agli sviluppatori sia compatibilità tra applicazioni sia una forte integrazione ai dati;

4 4 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML La prima versione di XML (1.0) raggiunge lo status di reccomendation nel 1998; La caratteristica fondamentale di XML è lindipendenza dei dati dalle applicazioni; Il W3C ha redatto un documento introduttivo al nuovo linguaggio: XML in ten points (http://www.w3.org/XML/1999/XML-in-10-points)http://www.w3.org/XML/1999/XML-in-10-points

5 5 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML 1.È un metodo per inserire dati strutturati in un file di testo; 2.Sembra HTML ma non lo è: Usa i tag per delimitare porzioni di testo; I tag non servono per formattare, ma per descrivere e dare significato allinformazione; Ha regole molto più rigorose; È estensibile;

6 6 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML 3.I documenti XML sono file di testo: I file contengono dati e meta-dati; Sono universali: qualsiasi applicazione può ricevere, aprire e interpretare file di testo; Per creare un file XML è sufficiente il blocco-note o qualsiasi altro editor di testo; Non si dipende da formati di compressione né da software di authoring proprietari; I file XML possono essere facilmente letti anche da un programmatore inesperto;

7 7 XML 4.XML è uno, nessuno, centomila… XML è un insieme di regole; XML non è un linguaggio preciso, ma uno strumento per generare nuovi linguaggi; In pochi anni si sono moltiplicati vocabolari XML specifici: linguaggi di mark-up costruiti con le regole di XML e pensati per ambiti di applicazione ben definiti; XML va inteso come una famiglia di linguaggi: XSL; XML Schema; SOAP / WSDL / UDDI; X-Link; Voice-XML; XHTML; WML; …

8 8 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML 5.XML è prolisso per scelta: In termini di efficienza non è la soluzione ideale: la compresenza di dati e meta-dati aumenta le dimensioni dei file; Un file XML è sempre più grande di un file binario; Tuttavia i costi delle memorie sono in netto calo e le tecnologie di archiviazione sono in continua evoluzione; Tuttavia i file possono essere compressi per la trasmissione (HTTP 1.1);

9 9 XML XML è un meta-linguaggio modulare: Seguendo le regole di XML posso generare nuovi tag (elementi) e attributi; Lo sviluppatore può creare i comandi che più gli sono congeniali: per nome, significato, gerarchia, occorrenza…; Si può prendere un vocabolario esistente (es. RSS) ed estenderlo con i comandi provenienti da un altro vocabolario (es. XHTML);

10 10 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XMTL XML trasforma HTML in XHTML Uno dei primi risultati di XML è stata lapplicazione delle regole di validità XML al linguaggio XHTML; XHTML è formalmente più rigoroso e strutturante; La presentazione del documento viene affidata ai fogli di stile, XHTML pensa a organizzare linformazione; Se XHTML è un linguaggio della famiglia XML allora gode di tutti i vantaggi portati da questa tecnologia; Dedicheremo una lezione a questo argomento.

11 XML Grazie ad XML sono nati linguaggi di: Strutturazione dei contenuti: XHTML; RSS; XLink; Trasporto dei dati: SOAP / WSDL / UDDI; Programmazione: XSL Voice-XML ; 11 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

12 XML Un documento XML si divide in due parti: 1.Un prologo: 1. Indicazione della versione; 2. Indicazione di una DTD: quali comandi e quali regole dovrà seguire il mio documento; 3. Informazioni sullo stile di presentazione; 2.Istanze, formate da: 1. Dati; 2. Mark-up; 12 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

13 XML Indicazione della versione: Un documento XML deve iniziare con listruzione => serve per indicare al programma che interpreterà il file quale set di regole XML il documento dovrà seguire; => se il documento segue senza errori queste regole, è detto well formed; => è presente anche lindicazione del set di caratteri che sarà utilizzato nel documento (attributo opzionale); 13 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

14 XML Un documento XML è well formed (sintatticamente conforme) se: 1.È presente un solo elemento radice; 2.Gli elementi hanno un tag di apertura e un tag di chiusura; 3.I tag sono appropriatamente annidati; 4.I valori degli attributi sono racchiusi da virgolette; 5.Nomi di tag e attributi sono costituiti da una sola parola; 6.Gli attributi hanno sempre un valore; Inoltre XML è case-sensitive: cè differenza tra lettere maiuscole e minuscole. => != != != … => un tag di chiusura deve essere scritto in modo identico a quello di apertura (ad eccezione dello slash iniziale); 14

15 XML Andrea Crevola Mario Rossi Carlo Bianchi Titolo Presentazione / Data / Confidenziale / Elaborazione di...

16 XML Potremmo fermarci qui… in realtà la forza di XML risiede nel rigore e nella struttura fornita da una serie di regole ulteriori; Queste regole sono contenute in una DTD (Document Type Definition); Nella DTD si dichiara quali elementi, quali attributi e quali entità saranno accettate nei documenti XML che si dichiareranno conformi ad essa; La DTD è essenziale per condividere dati tra applicazioni diverse, che devono avere uno un comune riferimento circa struttura e composizione dei documenti scambiati; 16

17 XML Le specifiche della DTD possono essere inserite direttamente nel prologo del documento (DTD interna):

18 XML Le specifiche della DTD possono essere collocate in un file esterno (es. rubrica.dtd); La DTD esterna viene richiamata con un comando presente nel prologo del documento XML; In questo modo tutti i file di cui si vuole verificare la validità possono riferirsi ad un unico insieme di regole; Se decido di modificare le regole, non dovrò riportare i cambiamenti su tutti i file su cui sto lavorando; I file sono decisamente più leggeri; Applicazioni diverse possono fare riferimento ad ununica DTD per valutare la validità dei file elaborati; 18

19 XML Definito il tipo di documento (conformità) e le regole di validità (DTD), manca un comando per dire alle applicazioni come rappresentare i dati. 19 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

20 XML Andrea Crevola Titolo Presentazione / Data / Confidenziale / Elaborazione di...

21 XML => la sequenza conta! => la parola chiave #PCDATA si usa per indicare che il tag può contenere direttamente i dati 21 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

22 XML 22 DTD: occorrenze degli elementi + * ? Lelemento può ripetersi più volte, ma deve essere utilizzato almeno una volta Lelemento facoltativo e che può ripetersi più volte Lelemento facoltativo ma, se utilizzato, può comparire una sola volta Esempio:

23 XML -DTD Non è detto che un elemento debba contenere altri elementi o dati; XML consente di creare elementi vuoti: Nel documento XML potrò usare due sintassi: (sintassi abbreviata) 23 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

24 XML -DTD XML consente di specificare se un elemento deve comparire in alternativa ad un altro: 24 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

25 XML -DTD Come in HTML, gli elementi XML possono contenere altri comandi, detti attributi, che possono specificare proprietà ulteriori degli elementi: Nella DTD scriverò: In generale 25 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

26 XML -DTD Esistono tre tipi di attributi: 1.CDATA: stringhe di testo (sono ammessi tutti i caratteri tranne,&, e); 2.Attributi di tipo token: lattributo ha valori limitati; 1. ID: nel documento non possono esistere due occorrenze dellattributo con valore identico; 2. IDREF: il valore dellattributo deve fare riferimento ad un valore di un attributo di tipo ID; 3. ENTITY: il valore è un entità esterna non soggetta al parsing; 4. ENTITIES: il valore dellattributo è costituito da più entità; 5. NMTOKEN: il valore è composto da lettere, cifre, punti, caratteri di sottolineatura, due punti e trattini; 6. NMTOKENS: come NMTOKEN, ma sono possibili più stringhe separate da uno spazio; 3.Attributi enumerati: 1. Si indicano tra parentesi i valori in alternativa e tra virgolette leventuale valore di default 26 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

27 27 Titolo Presentazione / Data / Confidenziale / Elaborazione di... DTD: occorrenza degli attributi #REQUIRED #IMPLIED #FIXED Lattributo è obbligatorio Lattributo è facoltativo, se non indicato acquisisce il valore deciso dallapplicazione che elabora il documento XML; Lattributo ha valore fisso, anche se non viene specificato nel documento XML

28 XML - XSLT LeXtensible Stylesheet Language (XSL) è un insieme di tre linguaggi che forniscono gli strumenti per lelaborazione e la presentazione di documenti XML in maniera molto flessibile. Possiamo individuare i seguenti meccanismi di base: - un meccanismo per lindividuazione dei dati da presentare - un meccanismo per il controllo dellelaborazione dei dati e di come la presentazione deve essere effettuata - un meccanismo per la definizione della formattazione da applicare ai dati per la presentazione vera e propria 28 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

29 XML - XSLT A ciascuno di questi tre meccanismi, XSL associa uno specifico linguaggio: XPath consente di individuare gli elementi e gli attributi di un documento XML sui quali verranno applicate le operazioni necessarie per la presentazione dei dati XSLT (XSL transformation) consente di controllare le operazioni che rendono i dati presentabili XSL-FO (XSL Formatting Objects) definisce un insieme di tag di formattazione 29 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

30 XML - XSLT Questa suddivisione dei compiti ne garantisce la flessibilità. Infatti, questi tre linguaggi non sono strettamente dipendenti luno dallaltro. Potremmo decidere di non utilizzare affatto XSL-FO per formattare i dati di un documento XML e produrre direttamente codice HTML, o meglio XHTML, cioè la versione di HTML basata su XML. La presentazione dei dati racchiusi in un documento XML è basata su due elementi: un documento che descrive come i dati devono essere elaborati per la presentazione, chiamato foglio di stile XSLT un componente software, chiamato processore XSLT, in grado di prendere in input un documento XML e un foglio di stile XSLT e di produrre in output i dati secondo il formato di presentazione prescelto (XSL-FO, XHTML, testo, ecc.) 30 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

31 XML - XSLT Individuare gli elementi di un documento XML rappresenta il primo passo di unelaborazione per la presentazione dei dati. Nei CSS questo ruolo è svolto dal selettore, cioè lelemento sintattico di una regola CSS che individua gli elementi da formattare. In XSL questo passo viene descritto tramite il linguaggio XPath. A differenza dei selettori CSS, però, XPath è molto più potente e flessibile. Questo linguaggio consente di creare espressioni dichiarative, chiamate espressioni XPath o pattern, che individuano i vari nodi dellalbero di rappresentazione di un documento XML. La sua sintassi è molto compatta e, per certi versi, ricorda un po le espressioni perindividuare il percorso di un file o una cartella su un file system. Il simbolo / rappresenta il root element di un documento XML. facendo riferimento al seguente documento XML, lespressione / rappresenta lelemento articolo: 31 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

32 XML - XSLT Blocco di testo del primo paragrafo Per individuare lelemento allinterno del nostro esempio di documento XML dobbiamo specificare un percorso di questo tipo: /articolo/paragrafo/testo Se siamo interessati allattributo titolo dellelemento possiamo specificarlo nel modo seguente: 32 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

33 XML - XSLT La trasformazione avviene in base alle informazioni contenute in un particolare tipo di documento e interpretate da un processore XSLT. Questo documento di trasformazione, chiamato foglio di stile XSLT, non è altro che un documento XML che fa uso di tag appartenenti alla grammatica di XSLT in grado di controllare il processo di trasformazione. In generale, un foglio di stile XSLT ha la seguente struttura: … template di trasformazione … Allinterno del root element vengono definite le istruzioni di trasformazione da applicare al documento XML origine 33 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

34 XML - XSLT Il processo di trasformazione controllato da XSLT si basa sulluso del linguaggio XPath per individuare gli elementi del documento origine, sui quali viene applicato un template (o modello) di trasformazione. Da un punto di vista sintattico, un template è un elemento del linguaggio XSLT che ha la seguente forma di base: … Definizione dellìoutput… Un primo esempio 34 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

35 XML - XSLT Per selezionare uno specifico elemento, ad esempio il paragrafo con titolo Titolo del secondo paragrafo, possiamo farlo con lespressione seguente: del secondo paragrafo] In pratica, allinterno delle parentesi quadre specifichiamo la condizione che deve essere soddisfatta dallelemento. Per selezionare un elemento specifico è possibile utilizzare anche alcune funzioni predefinite, come position(), che specifica la posizione di un elemento, e last(), che specifica lultima posizione di una sequenza di elementi. Ad esempio, le due espressioni seguenti specificano rispettivamente il secondo paragrafo e lultimo paragrafo dellarticolo: /articolo/paragrafo[position()=2] /articolo/paragrafo[position()=last()] 35 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

36 XML - XSLT Per fare un altro esempio, facendo riferimento al documento XML che descrive un articolo, il seguente template restituisce in output il titolo del secondo paragrafo: 36 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

37 XML - XSLT La doppia barra // consente di individuare tutti i discendenti di un particolare elemento. Ad esempio, lespressione /articolo/paragrafo//immagine individua tutti gli elementi contenuti nellelemento, a qualsiasi livello. Per individuare tutti i sottoelementi di un certo elemento possiamo utilizzare lasterisco (*). Ad esempio, per selezionare tutti gli elementi del secondo paragrafo possiamo scrivere la seguente espressione XPath: /articolo/paragrafo[position()=2]/ 37 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

38 XML - XSLT XSLT è un linguaggio potente e flessibile con costrutti analoghi a quelli dei linguaggi di programmazione. Per ottenere questo risultato possiamo utilizzare lelemento di XSLT il cui comportamento è analogo allistruzione if dei linguaggi di programmazione tradizionali. Possiamo quindi sfruttare questo elemento come nel seguente codice: Bibliografia Lattributo test dellelemento specifica la condizione da valutare e può essere una condizione booleana o unespressione XPath che individua un insieme di nodi. In questultimo caso la condizione viene considerata vera se linsieme dei nodi individuati non è vuoto. 38 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

39 XML - XSLT Se vogliamo in qualche modo analizzare il contenuto dei diversi nodi allinterno di un template possiamo fare ricorso allelemento, il cui funzionamento è analogo alle istruzioni for dei linguaggi di programmazione tradizionali. Vediamo come sfruttare lelemento nel nostro caso. Immaginiamo di voler produrre in output nel documento XHTML risultante un sommario iniziale in cui vengono elencati i titoli dei paragrafi dellarticolo. Possiamo scrivere il template di elaborazione dellelemento nel seguente modo: Sommario 39 Titolo Presentazione / Data / Confidenziale / Elaborazione di...

40 40 Titolo Presentazione / Data / Confidenziale / Elaborazione di...


Scaricare ppt "1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML Elaborazione di Franco Grivet Chin."

Presentazioni simili


Annunci Google