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, pu bblicata nell'ottobre 2001:
- XSLT: è un linguaggio che consente di trasformare documenti XML in altri formati (vedi la Guida a XSLT di HTML.it)
- 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 il nostro tutorial si farà riferimento solo a XSLT e Xpath.
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.
Una trasformazione può essere così schematizzata:
Dato un documento XML d'origine e un foglio XSLT ad esso associato, un processore XSL produrrà un terzo documento. In quest'ultimo, i contenuti saranno presi dal primo documento, la struttura e le regole di presentazione dal secondo.
CSS e XSL
La parola "stylesheet" contenuta nel nome XSL può far pensare a una parentela con i CSS. In realtà questi due linguaggi sono molto diversi. Ciò che va però spiegato è che essi non sono da considerare alternativi, ma complementari. E come tali li useremo in X-blog. Vediamo comunque le principali differenze.
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. Come abbiamo visto, è 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).
XSL va molto oltre. Può generare esso stesso lo stile di presentazione, ma può anche:
- aggiungere nuovi elementi alla struttura
- creare nuovi contenuti
- filtrare e ordinare dati
- generare documenti con diversi gradi di compatibilità
- usare complesse espressioni condizionali
Insomma, si può intuire che si tratta di operazioni che sono tipiche più di linguaggi come ASP che di CSS.
Applicare un foglio XSL
Affrontiamo ora una questione cruciale. L'applicazione di un foglio XSL a un documento XML è in realtà molto semplice. La sintassi è simile a quella vista nella lezione precedente per i CSS:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="news.xsl"?>
La cosa complicata è il supporto dei browser. Diciamolo subito: l'unico che garantisce un supporto ottimale è Explorer 6 . Questo grazie alla presenza del parser MSXML 3.0, che ha notevolmente migliorato il già discreto supporto della precedente versione 2.6. Il mancato supporto dei browser fa sì che l'applicazione di fogli XSL nel modo visto in precedenza (con elaborazione sul lato client) sia oggi quasi impraticabile. Non mancano comunque esempi di siti interamente realizzati con XML+XSL. Se avete Explorer 6 potrete farvi un'idea precisa visitando l'eccellente XML/XSL Portal. Provate a visitarlo con qualunque altro browser per apprezzare le differenze.
Riferimenti
Questa è una guida a XHTML, pertanto non è qui possibile fornire approfondimenti su XSL. I riferimenti proposti sono ottimi punti di partenza per iniziare ad orientarsi tra le principali regole del linguaggio.
XSL sul W3C: da qui potete accedere a tutte le risorse del Consortium sul linguaggio, comprese le specifiche ufficiali.
XSL School: dal sito W3Schools un eccellente tutorial introduttivo.
XSL e CSS: ottimo tutorial sulla formattazione di documenti XML con fogli di stile CSS o XSL.
XSLT.com: portale su XSL con tutorial e link a risorse sul web.
XSL Info: altro portale ricco di risorse e informazioni sul linguaggio, compresa una sezione su parser e tool di sviluppo.