Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAdolfo Viola Modificato 11 anni fa
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 011-555-1234 andrea.crevola@3juice.com Mario Rossi 011-555-5678 mario.rossi@libero.it Carlo Bianchi 011-555-2468 carlo.bianchi@tin.it 15 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): <!DOCTYPE rubrica [ ] (vedremo il significato di questi comandi…) La DTD interna vale solo per il documento a cui appartiene e non per altri file… questo significa che la dovrei riscrivere ogni volta… a meno che non la sposti al di fuori del file e la condivida tra tutti i documenti XML che ne hanno necessità. 17 Titolo Presentazione / Data / Confidenziale / Elaborazione di...
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 011-555-1234 andrea.crevola@3juice.com 20 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: 1. 2. (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: /articolo/paragrafo/@titolo 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: /articolo/paragrafo/[@titolo=Titolo 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
XML – XML SCHEMA Uno XML Schema è un documento XML che utilizza un insieme di tag speciali per definire la struttura di un documento XML Il vincolo da rispettarsi nella creazione di uno schema è luso dei tag definiti dallXML Schema Language definito dal W3C nei documenti www.w3.org/TR/xmlschema-0, www.w3.org/TR/xmlschema-1 e www.w3.org/TR/xmlschema-2www.w3.org/TR/xmlschema-0 www.w3.org/TR/xmlschema-1www.w3.org/TR/xmlschema-2 Uno XML Schema ha la seguente struttura generale: Lelemento root del documento è rappresentato dal tag, il quale specifica tramite lattributo xmlns che in questo documento saranno utilizzati dei tag definiti da uno specifico standard del W3C. 40 Titolo Presentazione / Data / Confidenziale / Elaborazione di...
41
XML – XML SCHEMA Tipi di Dato Una delle principali differenze che intercorrono tra XML Schema e DTD è la possibilità non solo di definire il tipo di dato di un elemento, ma anche di poter personalizzare un tipo di dato. Esistono due categorie di tipi di dato: semplici e complessi. I tipi di dato semplici sono relativi a quegli elementi che non possono contenere altri elementi e non prevedono attributi. Sono previsti numerosi tipi di dato predefiniti; a titolo desempio, possiamo imporre il vincolo che un elemento contenga informazioni di tipo stringa, intero, booleano, data, ecc. È possibile definire tipi semplici personalizzati derivandoli da quelli predefiniti. Ad esempio, possiamo definire un tipo di dato come restrizione del tipo stringa, vincolando i valori ad uno specifico insieme di stringhe o ad un pattern individuato da unespressione regolare. I tipi di dato complessi si riferiscono alla definizione degli elementi con attributi e che possono contenere altri elementi. La definizione del tipo complesso consiste generalmente nella definizione della struttura prevista dallelemento. Se lelemento può contenere altri elementi possiamo definire linsieme degli elementi che possono stare al suo interno come sequenza, come insieme di valori alternativi o come gruppo. 41 Titolo Presentazione / Data / Confidenziale / Elaborazione di...
42
XML – XML SCHEMA XML Schema prevede il tag per la definizione degli elementi utilizzabili in un documento XML, specificando nellattributo name il nome del relativo tag. Allinterno di ciascun tag possiamo indicare il tipo di dato dellelemento e possiamo definire gli eventuali attributi. Ad esempio, la seguente definizione specifica lelemento testo che può contenere soltanto stringhe: Mentre la seguente specifica lelemento quantita che può contenere soltanto numeri interi 42 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Tipi di dato semplici personalizzati: derivazione dei tipi semplici predefiniti Es: 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
43
XML – XML SCHEMA 43 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Tipi di dato complessi personalizzati: possono contenere altri elementi e definire attributi. Lo schema generale per la definizione di un elemento di tipo complesso è il seguente: 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 Per ciascuno di questi costruttori e per ciascun elemento è possibile definire il numero di occorrenze previste utilizzando gli attributi minOccurs e maxOccurs.
44
XML – XML SCHEMA 44 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Esempio di xml schema che include tipi complessi:
45
XML – XML SCHEMA 45 Titolo Presentazione / Data / Confidenziale / Elaborazione di... La definizione degli attributi è basata sulluso del tag, come nel seguente esempio: Lattributo use consente di specificare alcune caratteristiche come la presenza obbligatoria (required) o un valore predefinito (default) in combinazione con lattributo value. Ad esempio, la seguente definizione indica un attributo il cui valore di predefinito è test: Se non si specifica esplicitamente lobbligatorietà dellattributo, esso è considerato opzionale. Es. di xml schema che include attributi di tipi complessi:
46
XML – XML SCHEMA Dichiarazione di tipi XML Schema prevede la possibilità di rendere modulare la definizione della struttura di un documento XML tramite la dichiarazione di tipi e di elementi. Nel corso della creazione di uno schema XML possiamo analizzare ciascun sottoelemento significativamente complesso e fornire una definizione separata come elemento o come tipo di dato. Questo contribuisce a fornire una struttura modulare allo schema, più ordinata, più comprensibile e semplice da modificare. Sfruttando la struttura modulare delle dichiarazioni, il contenuto di uno XML Schema diventa una sequenza di dichiarazioni di tipi ed elementi. Possiamo definire un tipo complesso in base al seguente schema: 46 Titolo Presentazione / Data / Confidenziale / Elaborazione di...
47
XML – XML SCHEMA Dichiarazione di tipi Il riferimento ad una dichiarazione di tipo viene fatta come se fosse un tipo predefinito, come mostrato nel seguente esempio: La possibilità di dichiarare elementi e tipi di dato implica lesistenza di un ambito di visibilità o contesto dei componenti dichiarati. I componenti di uno schema dichiarati al livello massimo, cioè come sottoelementi diretti dellelemento root, sono considerati dichiarati a livello globale e possono essere utilizzati nel resto dello schema. Nella dichiarazione di un tipo complesso è possibile fare riferimento ad elementi già esistenti dichiarati a livello globale oppure si possono definire nuovi elementi. La definizione di nuovi elementi allinterno di una definizione di tipo o di elemento costituisce una dichiarazione a livello locale. Ciò vuol dire che lutilizzo di questi elementi è limitato alla definizione del tipo complesso in cui sono dichiarati e non possono essere utilizzati in altri punti dello schema. I nomi degli elementi devono essere univoci nel contesto in cui compaiono. Questo significa, però, che in contesti diversi possiamo avere elementi con lo stesso nome ma con struttura diversa senza rischio di conflitti. 47 Titolo Presentazione / Data / Confidenziale / Elaborazione di...
48
XML – XML SCHEMA 48 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Esempio di xml schema che include la definizione di tipi complessi con visibilità globale:
49
XML – XML SCHEMA Integrazione di grammatiche e namespaces A partire da una grammatica definita tramite uno XML Schema, è possibile sfruttare un parser XML validante per verificare la validità di un documento XML. Il parser avrà bisogno, quindi, sia del documento XML da validare, sia dello schema XML rispetto a cui effettuare la validazione. Ci sono diversi modi per fornire al parser informazioni sullo schema da utilizzare per la validazione. Uno di questi modi consiste nellinserire nel documento XML un riferimento allo schema da utilizzare. Questo riferimento viene associato allelemento root come nel seguente esempio: Oltre allattributo titolo sono stati aggiunti due attributi predefiniti. Lattributo xmlns:xsi indica un URL che specifica la modalità con cui si indicherà il riferimento allo schema XML. Lattributo xsi:noNamespaceSchemaLocation indica il nome e leventuale percorso del file contenente lo schema XML di riferimento. 49 Titolo Presentazione / Data / Confidenziale / Elaborazione di...
50
XML – XML SCHEMA Integrazione di grammatiche e namespaces Una delle caratteristiche auspicabili nella creazione di un nuovo linguaggio è la possibilità di integrare elementi derivanti da grammatiche diverse. Questa caratteristica consente di riutilizzare parti di grammatiche già definite evitando di dover rifare parte di lavoro già fatto in altri ambiti. In questo modo, ad esempio, sarebbe possibile integrare un linguaggio per la descrizione di articoli tecnici con un linguaggio pre-esistente per la descrizione di bibliografie, ottenendo un nuovo linguaggio composto. Tuttavia la composizione di linguaggi pone almeno due tipi di problemi: un documento che utilizza due grammatiche presenta il problema della validazione: a quale schema si deve fare riferimento per validare un documento XML ibrido? due linguaggi potrebbero avere tag ed attributi con lo stesso nome, anche se utilizzabili in contesti diversi: come fare a risolvere questo tipo di ambiguità? La soluzione a questi problemi deriva dai namespaces. Un namespace è un insieme di nomi di elementi e nomi di attributi identificati univocamente da un identificatore. 50 Titolo Presentazione / Data / Confidenziale / Elaborazione di...
51
XML – XML SCHEMA Integrazione di grammatiche e namespaces Lidentificatore univoco individua linsieme dei nomi distinguendoli da eventuali omonimie in altri namespace. Per fare un esempio, se nellambito di una grammatica per descrivere dei dati anagrafici è stato definito un elemento indirizzo, questo nome potrebbe essere confuso con lelemento indirizzo definito nellambito di una grammatica che descrive messaggi di posta elettronica. Lidentificatore del relativo namespace consente di distinguere i due elementi omonimi. Un XML Schema definisce implicitamente un namespace degli elementi e degli attributi che possono essere usati in un documento XML. Se in un documento XML si utilizzano elementi definiti in schemi diversi abbiamo bisogno di un meccanismo che permetta di identificare ciascun namespace e il relativo XML Schema che lo definisce. 51 Titolo Presentazione / Data / Confidenziale / Elaborazione di...
52
XML – XML SCHEMA Integrazione di grammatiche e namespaces In un documento XML si fa riferimento ad un namespace utilizzando un attributo speciale (xmlns) associato al root element, come nel seguente esempio: Questo indica che lelemento articolo ed i suoi sottoelementi utilizzano i nomi definiti nel namespace identificato dallidentificatore http://www.dominio.it/xml/articolo. Lidentificatore di un namespace può essere rappresentato da una qualsiasi stringa, purché sia univoca. Proprio per garantirne lunivocità, è prassi ormai consolidata utilizzare un URI (Uniform Resource Identifier) come identificatore. È bene evidenziare che non è necessario che lindirizzo specificato come identificatore di namespace corrisponda ad un file pubblicato sul Web. Esso è utilizzato semplicemente come identificatore ed il parser non accederà al Web per verificare lesistenza dellURL. E possibile combinare più namespace facendo in modo che ciascun elemento utilizzato faccia riferimento al proprio namespace. Occorre tener presente che quando si fa riferimento ad un namespace, questo riferimento vale per lelemento corrente e per tutti gli elementi contenuti, a meno che non venga specificato un diverso namespace. 52 Titolo Presentazione / Data / Confidenziale / Elaborazione di...
53
XML – XML SCHEMA 53 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Prefissi Nellesempio soprastante il documento xml dichiara a livello di root element che relativamente ai tags con prefisso xr e prefisso xb, si farà riferimento rispettivamente al namespace http://www.html.it/XMLRicette ed al namespace http://www.altrodominio.it/XMLBiblio. I due namespaces sono dichiarati nei files XMLRicette.xsd e XMLBiblio.xsd come illustrato nellesempio sottostante:http://www.html.it/XMLRicette http://www.altrodominio.it/XMLBiblio
54
54 Titolo Presentazione / Data / Confidenziale / Elaborazione di...
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.