Es ist möglich, XSLT-Templates in verschiedene Dateien aufzuteilen und dann in der Hauptdatei einzubinden.
Ein gutes Beispiel ist die Definition der CSS-Regeln, welche in mehreren Transformationen genutzt, aber nur an einer Stelle definiert werden soll. Entsprechend könnte eine Datei CSS.xslt definiert werden:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="addCss">
<style>
<![CDATA[
body {
margin:0px;
padding:0px;
font-family: Arial, sans-serif;
font-size:10pt;
}
/* ... weitere Regeln ... */
]]>
</style>
</xsl:template>
</xsl:stylesheet>
Diese kann dann in der Haupt-Transformationsdatei über den Tag xsl:include eingebunden werden, welcher am Anfang des xsl:stylesheet angegeben werden muss:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" method="html" indent="yes"/>
<xsl:include href="TestCSS.xslt"/>
<!--Einstiegspunkt für die Abarbeitung: Rootelement-->
<xsl:template match="/">
<xsl:call-template name="MainTemplate" />
</xsl:template>
<!--Haupttemplate in dem das Ausgabedokument zusammengebaut wird-->
<xsl:template name="MainTemplate">
<html>
<!--CSS in eigenes Template ausgelagert wegen Übersichtlichkeit-->
<xsl:call-template name="addCss" />
<body>
...
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Das importierte Template kann dann an der entsprechende Stelle analog wie ein in der Datei definiertes Template aufgerufen werden.
Hinweis: Wenn statt xsl:include xsl:import verwendet wird, können die in der Importdatei definierten Templates in der importierenden Datei überschrieben werden (geht bei xsl:include nicht).
Hinweis zur Einbindung des CSS: Die Bibliothek HiQPDf erfordert für ein fehlerfreies Ergebnis-Dokument, dass die CSS-Regeln inline im Dokument definiert sind. Eine Aufteilung in eine extra XSLT-Datei ist also eine gute Variante (da das CSS schon bei der Transformation ins Dokument übernommen wird). Eine Referenz im HTML über 'link rel="stylesheet"' sollte vermieden werden.