Homepage Site Map


   
PROGRAMMAZIONE
   FARE WEB
   HTML
   CSS
   PHP
   MySQL
   XML - XSL
GRAFICA
   PAINT SHOP
   ANIMATION SHOP
   SWISH
   SWISHMAX
SCRIPT
   JAVASCRIPT
   PHP
   APPLET JAVA
   CSS GENERATOR
   WEB TOOLS
DOWNLOAD
   FONTS
   ICONE E AVATAR
   SMILES
   GIF ANIMATE
   CURSORI
   CALENDARI
   KAOANI
   BASI BANNER
   SCREENMATES
   MEEGOS
   GIOCHI
   VIDEO E PPS
ARTICOLI
   ARTICOLI
   GUADAGNA SITO
LINKS
   LINK TO ME
   VOTAMI
   SCAMBIO LINK
   SCAMBIO BANNER


zanox Partner promuovono Partner




 
  

Home -> Manuali e Tutorials -> Guida XSL -> XSLT  


Scarica il tutorial      |    Stampa il tutorial      |    Cerca nel sito      



XSLT



L'XSL si basa su un meccanismo di fogli di stile. I fogli di stile vengono generalmente usati per applicare in modo coerente stili o formattazione ai documenti. Il tipo di foglio di stile più utilizzato sul Web è basato sulla specifica dei fogli di stile CSS (Cascading Style Sheets). Questi permettono agli utenti di definire le classi di stile che possono essere applicate al documento HTML.

L'XSL offre lo stesso livello di formattazione e di flessibilità dei fogli di stile CSS e molte altre caratteristiche, ma utilizza metodi diversi. L'XSL si basa su modelli, che sono sotto alcuni aspetti analoghi alle regole dei fogli di stile e che offrono il meccanismo per l'applicazione di informazioni di formattazione ai dati che rispondono a un particolare pattern. Quindi un foglio di stile comprende uno o più modelli che a loro volta contengono dei pattern.

I modelli forniscono la struttura dei documenti generati dal codice. Gli elementi generati possono essere di qualsiasi tipo, poiché non è necessario che i modelli XSL contengano riferimenti ai dati XML. La reale potenzialità dei fogli di stile consiste nel generare dati XML in nuovi documenti. I modelli XSL fanno riferimento ai dati XML mediante i pattern.


Modelli

Un foglio di stile comprende uno o più modelli che a loro volta contengono dei pattern.

I modelli forniscono la struttura dei documenti generati dal codice.
Gli elementi generati possono essere di qualsiasi tipo, poiché non è necessario che i modelli XSL contengano riferimenti ai dati XML.

La reale potenzialità dei fogli di stile consiste nel generare dati XML in nuovi documenti.

I modelli XSL fanno riferimento ai dati XML mediante i pattern ed in genere coincide con il blocco di istruzioni compreso tra i tag <xsl:template> </ xsl:template >.
Ogni modello contiene poi uno o più pattern.


Pattern

Il linguaggio XSL utilizza i pattern per specificare gli elementi XML a cui viene applicato il modello XSL.
Questo metodo di corrispondenza dei pattern rende XSL un linguaggio di dichiarazioni in contrapposizione con i linguaggi basati sulle procedure.

I pattern definiscono il "livello" specifico della struttura del documento da far corrispondere identificandone la gerarchia della struttura. Cioè sono l'esatta alberatura dei tag xml.


In un documento XSL l'elemento radice è <xsl:stylesheet>. Esso deve contenere un attributo che definisca la versione del linguaggio e almeno una dichiarazione di namespace. Quest'ultima ha come valore: "http://www.w3.org/1999/XSL/Transform".

La struttura di base di un foglio XSLT ( XSL Transformation ) si presenta dunque così:


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...............
</xsl:stylesheet>


Tra il tag di apertura e quello di chiusura dell'elemento radice vanno definite tutte le regole di trasformazione.

Vediamo un esempio; di seguito è riportato il codice xml (e qui l'anteprima):


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="prova.xsl"?>
<catalogo>
     <pianta>
          <nome>zxcvx</nome>
          <crescita>nn lo so</crescita>
          <info>aboooooooo</info>
     </pianta>
</catalogo>


mentre il file XSL è il seguente (file prova.xsl):


<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template>

<BODY STYLE="font-family:Arial, helvetica, sans-serif; font-size:12px">
     <TABLE border="1" cellpadding="0" cellspacing="0" bgcolor="#99CCCC" width="50%">
     <TR>
          <TD><CENTER><B>Nome</B></CENTER></TD>
          <TD><CENTER><B>Crescita</B></CENTER></TD>
          <TD><CENTER><B>Info</B></CENTER></TD>
     </TR>
     <TR>
          <xsl:for-each select="catalogo/pianta">
          <TD><CENTER><xsl:value-of select="nome"/></CENTER></TD>
          <TD><CENTER><xsl:value-of select="crescita"/></CENTER></TD>
          <TD><CENTER><xsl:value-of select="info"/></CENTER></TD>
          </xsl:for-each>
     </TR>
     </TABLE>
</BODY>
</xsl:template>
</xsl:stylesheet>


Il file xsl inizia quindi con il tag <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> e termina con il tag </xsl:stylesheet> ; il primo tag dichiara inoltre un Namespaces xmlns .
Il codice incluso tra i due tag


<xsl:template>
..........
</xsl:template>


, rappresenta un unico modello, che coincide quindi con un blocco di codice html ed xsl ( o regole ), chiamato appunto template . Al suo interno ci sono poi i vari patterns, quelli che puntano tramite il select a diversi Elementi ( o Nodi ) xml e quelli che restituiscono il valore di un nodo.
L'elemento <xsl:for-each > consente di applicare ad ogni pattern ( specificato dal select ) un determinato stile; invece l'elemento <xsl:value-of > restituisce il valore dell'elemento specificato nel select.

Il foglio di stile viene richiamato nel file xml con il suo tag proprio xml-stylesheet .

Un foglio di stile può avere anche una struttura a più modelli, nella quale il foglio di stile contiene più modelli ( più tag xsl:template ) che possono essere applicati indipendentemente dagli altri.



----------------------------------------------------



Vediamo un altro esempio; il file xml è il seguente (anteprima senza fogli di stile XSL):


<?xml version="1.0" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="curric.xsl" ?>
<radice>
     <curriculum>
          <dati>
               <nome>Luca</nome>
               <cognome>Rossi</cognome>
               <sesso>Maschile</sesso>
               <indirizzo>
               <via>Via Degli Angeli 35</via>
               <cap>21057</cap>
               <city>Olgiate Olona</city>
               <provincia>VA</provincia>
               <nazione>Italia</nazione>
               </indirizzo>
               <telefono>03313434322</telefono>
               <posta>rossi@mail.com</posta>
          </dati>
          <studi>
               <maturita>
                    <titolo>Maturita' Scientifica</titolo>
                    <voto>48/60</voto>
               </maturita>
               <laurea>
                    <universita>Statale di Milano</universita>
                    <facolta>Informatica</facolta>
                    <votol>110</votol>
               </laurea>
          </studi>
          <esperienze>Da 3 anni responsabile tecnico "Inforscuola"</esperienze>
          <lingua>Inglese</lingua>
          </curriculum>
</radice>


mentre il foglio di stile XSL è il seguente (file "curric.xsl"):


<?xml version="1.0"?>
<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<BODY STYLE="font-family:Arial, helvetica, sans-serif; font-size:22pt">
<xsl:for-each select="radice/curriculum">
<DIV STYLE="background-color:teal; color:white; margin-bottom:0.5em">
<xsl:value-of select="dati/nome"/>
<xsl:value-of select="dati/cognome"/>
</DIV>
<DIV STYLE="margin-left:20px; margin-bottom:1em; font-size:18pt;font-style:italic">
Indirizzo: <xsl:value-of select="dati/indirizzo/via"/>
<DIV STYLE="margin-left:100px;font-style:italic;font-size:18pt">
<xsl:value-of select="dati/indirizzo/cap"/>
<SPAN>
<xsl:value-of select="dati/indirizzo/city"/>
</SPAN>
<SPAN>
<xsl:value-of select="dati/indirizzo/provincia"/>
</SPAN>
</DIV>
<DIV> Telefono:<xsl:value-of select="dati/telefono"/>
</DIV> E-mail :<xsl:value-of select="dati/posta"/>
</DIV>
<DIV STYLE=" font-size:24;font-style:verdana; color:black;background-color:#EEEEEE">
Studi</DIV>
<xsl:for-each select="studi/maturita">
<DIV STYLE="font-style:arial; color:black;font-size:18pt; margin-top:1em;margin-left:20px">
Media Superiore: <SPAN STYLE="color:teal">
<xsl:value-of select="titolo"/>
</SPAN> - Voto : <SPAN STYLE="color:teal">
<xsl:value-of select="voto"/>
</SPAN>
</DIV>
</xsl:for-each>
<xsl:for-each select="studi/laurea">
<DIV STYLE="font-style:arial; color:black; font-size:18pt; margin-left:20px">
Universita': <SPAN STYLE="color:teal">
<xsl:value-of select="universita"/>
</SPAN> - Corso di Laurea: <SPAN STYLE="color:teal">
<xsl:value-of select="facolta"/>
</SPAN> - Voto : <SPAN STYLE="color:teal">
<xsl:value-of select="votol"/>
</SPAN>
</DIV>
</xsl:for-each>
<DIV STYLE="background-color:#EEEEEE; color:black; margin-top:1em; font-size:24">
Esperienze Lavorative </DIV>
<DIV STYLE="font-style:italic; color:teal;font-size:18pt; margin-top:0.5em; margin-left:20px">
<xsl:value-of select="esperienze"/>
</DIV>
<DIV STYLE="background-color:#EEEEEE; color:black; margin-top:0.5em; font-size:24">
Lingua Straniera </DIV>
<DIV STYLE="font-style:italic; color:teal;font-size:18pt; margin-top:0.5em; margin-bottom:2em; margin-left:20px">
<xsl:value-of select="lingua"/>
</DIV>
</xsl:for-each>
</BODY>
</HTML>


L'anteprima di tale documento XSLT è visibile qui. Come potete vedere, i fogli di stile (cioè i vari Tag HTML) elencati nel file XSL vengono poi applicati ad ogni elemento "radice/curriculum" ed in particolare agli elementi "studi/maturita" e "studi/laurea".





Torna su      |    Indice Guida      |    Pagina << 3 >>    


Vai al W3C CSS Validator toolkit.
Realizzato con PHP. Vai al sito ufficiale del PHP.
Testato anche con Mozilla Firefox. Vai al sito ufficiale.

Home     Contacts     Forum     FAQ     Newsletter     Mappa     Cerca     Link to me

  Vedi gli RSS del sito.      

-->  [Il tuo link qui]