This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: import/include and apply-imports
- To: xsl-list at lists dot mulberrytech dot com
- Subject: RE: [xsl] import/include and apply-imports
- From: Ronald <ronald at salience dot nl>
- Date: Thu, 10 May 2001 09:55:10 +0100
- References: <0105091919110K.05990@janning>
- Reply-To: xsl-list at lists dot mulberrytech dot com
There can be more templates on the same element, when for instance making
use of the xsl:import you can use apply-imports to make sure the template
in the imported stylesheet are 2 processed. Actually with the example
given saxon outputs something diffrent than msxml.
msxml actually outputs what I too would have expected namely the "AM I EVER
EVER MATCHED?"
string, where saxon does not.
If I replace the include second.xsl with the actual content of second.xsl,
than saxon too outputs that particular string.
It looks like saxon does not treat the include second.xsl the same as if it
were actually part of first.xsl.
Though I might be missing something else.
The code I used to play with:
xml:
<a><book>bbb</book></a>
first.xsl
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="third.xsl"/>
<xsl:include href="second.xsl"/>
</xsl:stylesheet>
second.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="book">
<b><xsl:apply-imports/></b>
</xsl:template>
</xsl:stylesheet>
third.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="book">
<xsl:apply-templates/>AM I EVER EVER MATCHED?
</xsl:template>
</xsl:stylesheet>
Ronald Heller
At 10:16 AM 5/10/01 +1000, you wrote:
>Janning
>
>As I understand it, there can be only one <template match="book"> in an xsl.
>
>If first.xsl has a <template match="book"> that will be used over the ones
>from the included xsl's, and otherwise if there are more than one then the
>last one is used (in Saxon - depends on the XSL Parser I think)
>
>As second.xsl is imported after third.xsl, only the template match in
>second.xsl is used.
>
>Otherwise, what would the processor do? Which should it use? It wouldn't
>make sense to have more than one template matching the same node.
>
>I'm pretty sure I read about this in Michael Kays XSLT book, but he may
>clarify your question.
>
>Tim :)
>-----Original Message-----
>From: Janning Vygen
>Sent: Thursday, 10 May 2001 3:19 AM
>Subject: [xsl] import/include and apply-imports
>
>first.xsl:
>------
><xsl:import href="third.xsl">
><xsl:include href="second.xsl">
>
>second.xsl
>--------
><template match="book">
> <xsl:apply-imports/>
></template>
>
>third.xsl
>------
><template match="book">
> AM I EVER EVER MATCHED?
></template>
>
>
>the template in the third.xsl is NEVER matched!!
>Why? I thought, that include means, the stylesheet is included like it was
>always in this file??
>
>Janning
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list