Paolo Pialorsi

SOA, Workflow Foundation (WF), Windows Communication Foundation (WCF) e le Architetture Distribuite

News

Archives

XSLT: importare e includere altri XSLT

Quando scriviamo trasformazioni XSLT possiamo utilizzare delle libreri di "trasformazioni" per non dover riscrivere N volte le stesse cose.

Abbiamo a disposizione due istruzioni:

  • xsl:import: importa un XSLT permettendoci di ridefinire parte del suo comportamento con dei template alternativi.
  • xsl:include: importa un XSLT applicando i template in esso definiti, sempre che non ve ne siano di altri successivi

Come funzionano? Possiamo includere XSLT che dovranno avere il tag root come tutti i normali documenti XSLT e che dovranno presentare una lista di template, variabili e parametri.
Sia import che include devono essere indicati come figli di stylesheet o di template (quindi figli del root del XSLT padre). Gli elementi import vanno riportati prima di qualsiasi altro figlio del root, compresi gli elementi include.
Quando eseguiamo una import possiamo ridefinire dei template altrimenti definiti nel XSLT importato e poi richiamare, dal loro interno, il template originale.

Per esempio se abbiamo:

<xsl:template match="nodo">
<!-- Fai qualcosa -->
</xsl:template>

nel XSLT importato e nel XSLT principale abbiamo:

<xsl:template match="nodo">
<b>
<xsl:apply-imports />
</b>
</xsl:template>

con il tag apply-imports andremo a richiamare il template originale, che però non sarà chiamato direttamente perché la sua versione "derivata" (se ragioniamo in termini di OOP) vincerà su di lui.

Posted: dic 21 2003, 01:32 by paolo
Filed under: