This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: apply-imports
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] apply-imports
- From: "Michael Kay" <mhkay at iclway dot co dot uk>
- Date: Mon, 19 Feb 2001 21:51:38 -0000
- Reply-To: xsl-list at lists dot mulberrytech dot com
> I have a problem with 'apply-imports' in Cocoon. I don't know why I
> always get the templates of the importing one applied in the example
> below. Any suggestion?
Your xsl:apply-imports call will look for a template that matches the
current node (i.e. the root node) that has lower import precedence than the
current template; and there isn't one. xsl:apply-imports always processes
the current node, not its children.
The spec doesn't say explicitly what happens when you use
<xsl:apply-imports/> and there is no template rule of lower import
precedence that matches the current node. I thought this was fixed in the
errata but it appears not. The consensus, if I recall correctly, was that it
should invoke the built-in template rule. If that's happening here, the
built-in rule for the root would process the children of the root, using the
highest-precedence rule available.
Mike Kay
>
> Having this XML:
>
> ------------ ex.xml --------------
> <?xml version="1.0"?>
> <?xml-stylesheet type="text/xsl" href="ex.xsl"?>
> <?cocoon-process type="xslt"?>
>
> <book>
> ............
> </book>
> -----------------------------------
>
>
> ... and these XSL's:
>
> ------ ex.xsl ---------------
> <?xml version="1.0"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
> <xsl:import href="ex.print.xsl" />
> <xsl:param name="print">0</xsl:param>
>
> <xsl:template match="/">
> <xsl:choose>
> <xsl:when test="$print='1'">
> <xsl:apply-imports />
> </xsl:when>
> <xsl:otherwise>
> <xsl:apply-templates/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
> <xsl:template match="book">
> <html>
> ...........
> </html>
> </xsl:template>
>
> </xsl:stylesheet>
> ----------------------------------
>
> --------- ex.print.xsl ------------
> <?xml version="1.0"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
> <xsl:template match="book">
> ...........
> </xsl:template>
>
> </xsl:stylesheet>
> ----------------------------------
>
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list