[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] modular customization layer with imports.
Hi, Your current setup outputs the <formatting:*> elements to the output, and your templates that match on formatting:* are looking for such elements from the input. The output stream is not automatically processed again by templates reading the input. You need to save your generated <formatting:*> elements into a variable, then use exslt:node-set() to turn it into a node set, and then apply templates to it. Something like this: <xsl:template match="programlisting"> <xsl:variable name="temp"> <formatting:INDENT> <formatting:TAG> etc. </xsl:variable> <xsl:apply-templates select="exslt:node-set($temp/*)"/> And you need to add the exslt namespace declaration to your customization layer. Bob Stayton Sagehill Enterprises bobs@sagehill.net ----- Original Message ----- From: "Mansour" <mansour77@yahoo.com> To: <docbook-apps@lists.oasis-open.org> Sent: Monday, January 28, 2008 2:27 PM Subject: [docbook-apps] modular customization layer with imports. >I am trying to override progrmalisting in docbook with a code that will >provide indentation for included XML code. I need to be able to generate >pdf and html. So I divided my xslt into 3 files. One off them has the >common templates, and the rest has the formating templates. > The one that has the common templates can be called "common.xsl". My > question will deal with the html version only and I will figre out the FO > version later. > > The common.xsl has a template that mathes programlisting. > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:formatting="http://indentation.for.the.source.code"> > <xsl:import href="/opt/docbook/xhtml/docbook.xsl" /> > <xsl:strip-space elements="*" /> > <xsl:template match="programlisting"> > <xsl:choose> > <xsl:when test="self::*"> > <formatting:INDENT> > <formatting:TAG> > <xsl:text><</xsl:text> > <formatting:TAGNAME> > <xsl:value-of select="name(.)" /> > </formatting:TAGNAME> > <xsl:for-each select="@*"> > <formatting:ATTRIBUTENAME> > <xsl:value-of > select="concat(' ',name(.))" /> > </formatting:ATTRIBUTENAME> > <xsl:text>=</xsl:text> > <formatting:ATTRIBUTEVALUE> > <xsl:value-of > select="concat('"',.,'"')" /> > </formatting:ATTRIBUTEVALUE> > </xsl:for-each> > <xsl:text>></xsl:text> > </formatting:TAG> > <xsl:apply-templates /> > <formatting:TAG> > <xsl:text></</xsl:text> > <formatting:TAGNAME> > <xsl:value-of select="name(.)" /> > </formatting:TAGNAME> > <xsl:text>></xsl:text> > </formatting:TAG> > </formatting:INDENT> > </xsl:when> > </xsl:choose> > </xsl:template> > </xsl:stylesheet> > > The html one formats the added tags: > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:formatting="http://indentation.for.the.source.code"> > <xsl:strip-space elements="*" /> > <xsl:template match="/"> > <xsl:apply-templates /> > </xsl:template> > <xsl:template match="formatting:INDENT" mode="phase-2"> > <div style="margin:0 0 0 15pt;color:green;"> > <xsl:apply-templates /> > </div> > </xsl:template> > <xsl:template match="formatting:TAGNAME"> > <span style="color:#00AA88;vertical-align:top;"> > <xsl:apply-templates /> > </span> > </xsl:template> > <xsl:template match="formatting:ATTRIBUTENAME"> > <span style="color:purple;"> > <xsl:apply-templates /> > </span> > </xsl:template> > <xsl:template match="formatting:ATTRIBUTEVALUE"> > <span style="color:blue; font-weight:900;margin:0px;"> > <xsl:apply-templates /> > </span> > </xsl:template> > <xsl:template match="formatting:TAG"> > <span style="color:gray;border-spacing:0;"> > <xsl:apply-templates /> > </span> > </xsl:template> > <xsl:template match="formatting:CONTENTS"> > <span style="background-color:red;padding:0px;"> > <xsl:apply-templates /> > </span> > </xsl:template> > </xsl:stylesheet> > > > I am not able to find anyway to combine these two and get the correct > output. I tried to use import in the html sheet and inport the common.xsl, > but that did not help. Can anyone suggest a solution ? > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org > For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org > > >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]