RE: [xsl] Pipelining 2 stylesheets

Subject: RE: [xsl] Pipelining 2 stylesheets
From: Emmanuel Bégué <eb@xxxxxxxxxx>
Date: Thu, 27 Aug 2009 18:51:03 +0200

Using Saxon you can encapsulate the first stylesheet and
redirect the output to be processed by the second one; you
only need to write this stylesheet:

    <xsl:include href="opendoc2xhtml.xsl"/>
    <xsl:output saxon:next-in-chain="xhtml2epub.xsl"/>

and run your transformations against it, without any modification
to either opendoc2xhtml or xhtml2epub.


> -----Original Message-----
> From: Martynas Jusevicius [mailto:martynas.jusevicius@xxxxxxxxx]
> Sent: Thursday, August 27, 2009 5:48 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Pipelining 2 stylesheets
> Hey list,
> I want to pipeline 2 templates opendoc2xhtml.xsl (from OpenOffice) and
> xhtml2epub.xsl (my own) into a single opendoc2epub, that is, to pass
> the result of the first one into the second one.
> As I understand, the common technique is to get the first result into
> a variable, and then run the second transformation on it (assuming
> XSLT 2).
> But I have a problem with including the stylesheets. If i try to
> xsl:include both templates and define a template for the root node, I
> get a conflict, because opendoc2xhtml also has one. And I don't want
> to add modes or anything to it because it comes from an external
> source, but I still need to override it somehow to put the result into
> a variable in the first place.
> Is it where xsl:import is used? I tried importing opendoc2xhtml.xsl as
> well and calling xsl:apply-imports from the root template, but then
> only root children were processed.
> Martynas

Current Thread