XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a...

18
XML e XSL

Transcript of XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a...

Page 1: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

XML e XSL

Page 2: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

XSL - eXtensible Stylesheet Language

• XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML in un'altra struttura. Lo scopo principale di questa trasformazione è certamente quello di "convertire" il documento XML in un formato adatto alla presentazione su diversi supporti (per esempio, la sua trasformazione in HTML).

Page 3: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

• <?xml version="1.0"?>

• <?xml-stylesheet type="text/xsl“ href="esempio9.xsl"?>

Page 4: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

Pattern

• 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

Page 5: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

I MODELLI - xsl:template

• 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.

Page 6: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

Esempio 9

• <?xml version="1.0"?>

• <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

Esempio9.xsl

Page 7: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

XSL:TEMPLATE

• <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.

Page 8: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

XSL:VALUE-OF

• 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"/>

Esempio10.xsl

Page 9: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

XSL:FOR-EACH

• <xsl:for-each select="PATTERN">

• REGOLE DI ELABORAZIONE

• </xsl:for-each>

Esempio11.xsl

Esempio12.xsl

Esempio13.xsl

Page 10: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

Valore degli attributi

• <!ELEMENT STUDENTE (DATI_PERSONALI,ESAMI?)>

• <!ATTLIST STUDENTE tasse (inregola|noninregola) "noninregola">

• @nomeAttributo

• <xsl:value-of select=“STUDENTE/@tasse"/>Esempio14.xsl

Page 11: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

Aggiungere attributi HTML

• <img>

• <xsl:attribute name="src">

• <xsl:value-of select=“./FOTO"/>

• </xsl:attribute>

• </img>

Esempio15.xsl

Page 12: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

Ri-ordinare il contenuto: xsl:sort

• Nell'eleborare l'output e` possibile anche riordinare gli elementi da presentare.

• <xsl:sort select="PATTERN" order="descending">

• dove "descending" è uno dei due possibili valori dell'attributo "order" (l'altro, "ascending", è il valore di default).

Page 13: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

• E` possibile anche combinare più ordinamenti (per esempio quello per anno e per nome dell'artista), basta usare più volte il comando "xsl:sort".

Esempio16.xsl

Page 14: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

Filtrare l'informazione

• 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) • &lt; minore di • &gt; maggiore di

Page 15: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

• Attenzione agli spazi…..

Esempio17.xsl

Page 16: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

Condizionali con xsl:if

• 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> Esempio18.xsl

Page 17: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

Scelta tra casi: xsl:choose, xsl:when, xsl:otherwise • se vale la condizione 1, allora fai X

• ....

• se vale la condizione n, allora fai Y

• altrimenti fai Z

Page 18: XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.

• <xsl:choose> • <xsl:when test="CONDITION">

– REGOLE DI ELABORAZIONE • </xsl:when> • ... ALTRE CONDIZIONI ... • <xsl:when test="CONDITION">

– REGOLE DI ELABORAZIONE • </xsl:when> • <xsl:otherwise>

– REGOLE DI ELABORAZIONE • </xsl:otherwise> • </xsl:choose>