MODA-ML: • Esempi di XSL (Extensible Stylesheet Language
Transcript
MODA-ML: • Esempi di XSL (Extensible Stylesheet Language
MODA-ML: • Esempi di XSL (Extensible Stylesheet Language) • Vocabolario di supporto alla creazione di un set di Schemi di documenti XML Thomas Imolesi [email protected] [email protected] XML un linguaggio per co-operare Bologna, 11 aprile 2002 Esempi di XSL (Extensible Stylesheet Language) 11 aprile 2002 XSL: Extensible Stylesheet Language 2 Richieste del progetto MODA-ML • Presentazione dei dati in modo immediatamente comprensibile e adatto alla stampa; • riusabilità del codice prodotto. XSL: Extensible Stylesheet Language • Trasforma un documento XML in altro documento XML • Permette la creazione di modelli di trasformazione riusabili; • Se il trasformato ha la sintassi HTML, è immediatamente visualizzabile tramite il browser Internet Explorer 11 aprile 2002 XSL: Extensible Stylesheet Language 3 Introduzione al linguaggio XSL XSL Regole di trasformazione Dati XML 11 aprile 2002 Trasformatore msxml, xalan, … XSL: Extensible Stylesheet Language XML, HTML, testo… 4 Introduzione al linguaggio XSL Caratteristiche salienti di XSL : • • • • la capacità di accesso agli elementi di un documento XML; il supporto alla programmazione generica; il supporto alla modularità; la possibilità di visualizzare il risultato direttamente su browser 11 aprile 2002 XSL: Extensible Stylesheet Language 5 Introduzione al linguaggio XSL Il linguaggio XSL si compone di tre parti: • XSLT: linguaggio per la trasformazione di documenti XML; • XPath: sintassi utilizzata per accedere a parti del documento; • XSL-FO: un vocabolario per la formattazione, in via di sviluppo. 11 aprile 2002 XSL: Extensible Stylesheet Language 6 Introduzione al linguaggio XSL La riusabilità del codice è supportata dal meccanismo dei pattern e dei template. • il pattern definisce quale elemento del documento XML deve essere processato; • il template descrive il costrutto XML da generare quando uno o più elementi XML combaciano (match) con il pattern. Esistono anche i “template con nome” richiamabili direttamente dal codice. 11 aprile 2002 XSL: Extensible Stylesheet Language 7 XPath e accesso al documento XML Per esprimere i pattern si utilizzano la espressioni XPath. In generale un’espressione XPath può restituire: • • • • • un numero; una stringa; un valore booleano; un elemento del documento XML; un set di elementi del documento XML. 11 aprile 2002 XSL: Extensible Stylesheet Language 8 XPath e accesso al documento XML XPath ha un ottimo controllo sulla selezione degli elementi di un documento XSL; permette anche di filtrare i risultati: • <xsl:apply-templates select=“B”>; seleziona tutti gli elementi “B” che sono figli diretti dell’elemento corrente • <xsl:apply-templates select=“B[@att=0]”>; seleziona tutti gli elementi “B” figli dell’elemento corrente che hanno un attributo di nome “att” con valore uguale a 0 (zero) • <xsl:apply-templates select=“//D”>; seleziona tutti gli elementi “D” che si trovano sotto l’elemento corrente nell’albero del documento XML (figli, nipoti, ecc.) 11 aprile 2002 XSL: Extensible Stylesheet Language 9 XPath e accesso al documento XML 1. <xsl:apply-templates select=“B”>; 2. <xsl:apply-templates select=“B[@att=0]”>; 3. <xsl:apply-templates select=“//D”>; radice B D 11 aprile 2002 3 B att = “0” 1 D 3 2 1 C D XSL: Extensible Stylesheet Language 3 10 XPath e accesso al documento XML Con XPath non si è vincolati all’accesso sequenziale ai dati del file XML, ed è quindi possibile: • richiamare più volte lo stesso elemento, quindi: • formattare in modi diversi uno stesso elemento; • contare o raggruppare gli elementi selezionati. 11 aprile 2002 XSL: Extensible Stylesheet Language 11 Template con nome • Si possono richiamare quando occorre; • la chiamata permette l’invio di parametri al template; • si possono definire comportamenti differenziati in base ai parametri in ingresso • si possono costruire tabelle di codifica/decodifica 11 aprile 2002 XSL: Extensible Stylesheet Language 12 Programmazione con XSL La sintassi XSL supporta diverse istruzioni comuni a più linguaggi di programmazione: • • • • • operatori algebrici, logici, di confronto istruzione condizionale IF TEST istruzione di scelta multipla CHOOSE cicli FOR-EACH funzioni di manipolazione di stringhe 11 aprile 2002 XSL: Extensible Stylesheet Language 13 Strumenti di sviluppo e ambienti software Per la sperimentazione sono stati sufficienti: • un comune editor di testo (piuttosto che un’ambiente di sviluppo ad hoc, come XML-Spy); • il browser Internet Explorer (dalla versione 6.0 oppure con XML-parser versione 3.0). 11 aprile 2002 XSL: Extensible Stylesheet Language 14 Un bilancio provvisorio L’esperienza di uso di XSL ha consentito di: • dimostrarne l’usabilità e l’efficacia; • verificare la necessità di un training significativo prima di padroneggiarlo completamente; • verificare il notevole impegno richiesto nell’applicazione specifica ai documenti del progetto MODA-ML 11 aprile 2002 XSL: Extensible Stylesheet Language 15 Vocabolario di supporto alla creazione di un set di Schemi di documenti XML 11 aprile 2002 MODA-ML: vocabolario di supporto 16 Da quali esigenze nasce • • • • Numero crescente di elementi (tag); molti elementi sono comuni a più documenti; necessità di un pratico supporto multilingue; necessità di strumenti che consentano di definire le relazioni fra gli elementi. 11 aprile 2002 MODA-ML: vocabolario di supporto 17 Strumenti ed ambienti di sviluppo utilizzati Lato server: • Database MS Access; • Web server IIS 5.0; • Editor di testo per la programmazione ASP. Lato client: • Database MS Access (ODBC); • browser Internet Explorer. 11 aprile 2002 MODA-ML: vocabolario di supporto 18 Modellizzazione di Processi – Attività – Transazioni • Ogni processo può essere “padre” di più attività; • ogni attività può essere padre di più transazioni; • ogni transazione (documento) può avere una sola radice. • Le attività possono essere presenti in più processi; • le transazioni possono essere presenti in più attività. 11 aprile 2002 MODA-ML: vocabolario di supporto 19 Struttura della base dati: Processi – Attività – Transazioni 11 aprile 2002 MODA-ML: vocabolario di supporto 20 Struttura della base dati: Tipi – Istanze, elementi figli ed attributi 11 aprile 2002 MODA-ML: vocabolario di supporto 21 Struttura della base dati: Tabelle di enumerazione (decodifiche) 11 aprile 2002 MODA-ML: vocabolario di supporto 22 Riepilogo delle funzionalità • Supporto per le traduzioni • Semplicità di riutilizzo e di manutenzione dei dati • Generazione automatica di derivati quali Guide implementative e XML-Schema • Accesso e generazione dei documenti via web 11 aprile 2002 MODA-ML: vocabolario di supporto 23