Einige meiner Stylesheets sind ein bisschen groß und einige ihrer Teile wiederholen sich. Ich würde gerne XInclude für sie verwenden - was es mir erlauben würde, sie vom ganzen Stylesheet zu trennen. Ich kann xsl:import
oder xsl:include
hier nicht verwenden, weil ich sie in den spezifischen Platz für das Erzeugen von Bookmarks und von aktiven Verbindungen (für XSL-FO) einspritzen muss.XInclude in XSLT Stylesheets (eXist-db)
Wenn ich benutze:
<xi:include href="/db/apps/tested-bunny/resources/xsl-fo/common/bookmark-tree.xml/>
... die .fo
Datei erzeugt wirklich das Teil enthält. Der Teil ist jedoch nicht übersetzt, was bedeutet, dass er da ist wie in der Quelle. Der XSL-FO-Prozessor ignoriert dies und das PDF-Ergebnis ist ohne Lesezeichen.
Wie für den abgetrennten Teil ich es als eine normale XML-Datei in dem Root-Elemente deklarierten mit zwei Namespaces gespeichert:
<fo:bookmark-tree xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:if test="$head-level ge '1'">
...
Wenn ich versuche, den gleichen Code-Schnipsel in einer Form von XSL-Stylesheet enthalten, es ist das gleiche - es wird dort richtig injiziert, aber es fügt seine Funktionalität nicht dem ganzen Stylesheet hinzu, es ist dort noch nicht übersetzt.
Gibt es eine bestimmte Praxis oder Einschränkung, die mir nicht bekannt ist? Wie man das richtig macht?