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