This is the mail archive of the
docbook@lists.oasis-open.org
mailing list for the DocBook project.
chunker.xsl for EXSLT
- To: docbook at lists dot oasis-open dot org, list at exslt dot org
- Subject: DOCBOOK: chunker.xsl for EXSLT
- From: Uche Ogbuji <uche dot ogbuji at fourthought dot com>
- Date: Sun, 03 Jun 2001 20:14:25 -0600
- Organization: Fourthought, Inc.
Attached is an adaptation of html/chunker.xsl from the DB stylesheets
which provides support for processors that support EXSLT
(http://exslt.org). e.g. Saxon and 4XSLT.
--
Uche Ogbuji Principal Consultant
uche.ogbuji@fourthought.com +1 303 583 9900 x 101
Fourthought, Inc. http://Fourthought.com
4735 East Walnut St, Ste. C, Boulder, CO 80301-2537, USA
Software-engineering, knowledge-management, XML, CORBA, Linux, Python
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exslt="http://exslt.org/common"
xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
exclude-result-prefixes="doc"
extension-element-prefixes="exslt"
>
<!-- This stylesheet works with any processor that supports EXSLT, e.g. Saxon and 4XSLT -->
<!-- ==================================================================== -->
<xsl:template name="make-relative-filename">
<xsl:param name="base.dir" select="'./'"/>
<xsl:param name="base.name" select="''"/>
<xsl:value-of select="concat($base.dir,$base.name)"/>
</xsl:template>
<xsl:template name="write.chunk">
<xsl:param name="filename" select="''"/>
<xsl:param name="method" select="'html'"/>
<xsl:param name="encoding" select="$default.encoding"/>
<xsl:param name="indent" select="'no'"/>
<xsl:param name="content" select="''"/>
<xsl:message>
<xsl:text>Writing </xsl:text>
<xsl:value-of select="$filename"/>
<xsl:if test="name(.) != ''">
<xsl:text> for </xsl:text>
<xsl:value-of select="name(.)"/>
<xsl:if test="@id">
<xsl:text>(</xsl:text>
<xsl:value-of select="@id"/>
<xsl:text>)</xsl:text>
</xsl:if>
</xsl:if>
</xsl:message>
<exslt:document href="{$filename}"
method="{$method}"
encoding="{$encoding}"
indent="{$indent}"
>
<xsl:copy-of select="$content"/>
</exslt:document>
</xsl:template>
<xsl:template name="write.chunk.with.doctype">
<xsl:param name="filename" select="''"/>
<xsl:param name="method" select="'html'"/>
<xsl:param name="encoding" select="$default.encoding"/>
<xsl:param name="indent" select="'no'"/>
<xsl:param name="doctype-public" select="''"/>
<xsl:param name="doctype-system" select="''"/>
<xsl:param name="content" select="''"/>
<xsl:message>
<xsl:text>Writing </xsl:text>
<xsl:value-of select="$filename"/>
<xsl:if test="name(.) != ''">
<xsl:text> for </xsl:text>
<xsl:value-of select="name(.)"/>
</xsl:if>
</xsl:message>
<exslt:document href="{$filename}"
method="{$method}"
encoding="{$encoding}"
indent="{$indent}"
doctype-public="{$doctype-public}"
doctype-system="{$doctype-system}"
>
<xsl:copy-of select="$content"/>
</exslt:document>
</xsl:template>
</xsl:stylesheet>