Stylesheet
In un documento XML si possono individuare tre parti fondamentali che dovrebbero essere gestite separatamente:
- il contenuto (XML);
- le specifiche relative agli elementi: la struttura (DTD, Namespaces, etc...);
- le specifiche relative alla visualizzazione: lo stile (XSL, CSS, etc).
- trasformazione (opzionale) della struttura del documento di ingresso in un'altra struttura;
- descrizione di come devono essere visualizzati gli elementi della struttura (proprietà).
- generare del testo (costante);
- eliminare parte del contenuto;
- spostare parti di testo (es: scambiare l'ordine di nome e cognome);
- duplicare parti di testo (es: duplicare i titoli per creare un indice);
- ordinare alfabeticamente;
- eseguire operazioni più complesse;
- specifica del layout della schermata o della pagina;
- inserzione di parti della struttura in "contenitori" base (paragrafi, liste, ...);
- specifica delle proprietà di formattazione (spaziatura, margini, allineamento, font, ...) di ciascuno dei "contenitori".
Ad esempio:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl“ href="esempio.xsl"?>Il linguaggio XSL utilizza i pattern per specificare gli elementi XML a cui viene applicato un certo template. I pattern sono definiti mediante espressioni di XPath.
Un template definisce una regola in base a cui gli elementi che corrispondono a un certo pattern devono essere elaborati. Per definire un template si usa il seguente comando:
<xsl:template match="PATTERN">
REGOLE DI ELEBORAZIONE
</xsl:template>
L'attributo "match" è ovviamente obbligatorio, dato che contiene il pattern degli elementi a cui applicare il template in questione. Un'altro esempio:
<xsl:template match="/"> o <xsl:template match="DOCUMENTO">Il template (o modello) si applica al pattern definito con l'attributo "match"; il pattern consiste nella semplice espressione "/", che significa il root element del documento in questione (cioe` l'elemento “DOCUMENTO"); il resto è semplice markup di HTML.
Naturalmente, la cosa più importante è quella di estrarre informazione dal file XML per riportarla sulla pagina HTML. A questo fine, il comando più importante è "xsl:value-of", che si usa come segue:
<xsl:value-of select="PATTERN"/>
come anche:
<xsl:for-each select="PATTERN">
REGOLE DI ELABORAZIONE
</xsl:for-each>
Nell'eleborare l'output e` possibile anche riordinare gli elementi da presentare; attraverso il comando sort:
<xsl:sort select="PATTERN" order="descending">dove "descending" è uno dei due possibili valori dell'attributo "order" (l'altro, "ascending", è il valore di default). E' possibile anche combinare più ordinamenti (per esempio quello per anno e per nome dell'artista), basta usare più volte il comando "xsl:sort".
Per filtrare l'informazione da presentare, basta usare dei filtri nei pattern che vengono usati. Per esempio, per filtrare gli elementi che vengono selezionati con xsl:for-each, basta fare come segue:
<xsl:for-each select="PATTERN[FILTRO]">Gli operatori ammessi nel filtro sono:
= uguale;
!= diverso;
< minore di;
> maggiore di;
Bisogna fare particolare attenzione agli spazi che vengono avvertiti.
E` anche possibile introdurre un test condizionale sulle regole di elaborazione. Ciò si ottiene usando l'elemento xsl:if come segue:
<xsl:if test="./@tasse='noninregola'"> REGOLE DI ELABORAZIONE </xsl:if>
- << Lezione Precedente
- Indice Guida
- Lezione Successiva >>







