RE: [xsl] Mixing imports and includes - specified behaviour?

Subject: RE: [xsl] Mixing imports and includes - specified behaviour?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sun, 29 Jan 2006 08:25:05 -0000
Yes, the result is well-defined. A stylesheet that you include has higher
precedence than one that you import (directly or indirectly).

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: mazerunner@xxxxxx [mailto:mazerunner@xxxxxx] 
> Sent: 29 January 2006 01:02
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Mixing imports and includes - specified behaviour?
> 
> Hi there,
> 
> in this example I found different result from different XSLT 
> processors,
> just call main.xsl with input '<one/>':
> 
> main.xsl :
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; >
> <xsl:include href="first.xsl"/>
> <xsl:include href="second.xsl"/>
> <xsl:template match="/">
>   <b>
>    <xsl:for-each select="one | two | three | four">
>   <xsl:apply-templates select="."/>
>   </xsl:for-each>
>   </b>
> </xsl:template>
> </xsl:stylesheet>
> 
> first.xsl :
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; >
> <xsl:template match="one">
>   <xsl:apply-imports/>
>   <xsl:text>1</xsl:text>
> </xsl:template>
> <xsl:template match="two">
>   <xsl:text>2</xsl:text>
> </xsl:template>
> </xsl:stylesheet>
> 
> second.xsl :
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; >
> <xsl:import href="third.xsl"/>
> <xsl:template match="three">
>   <xsl:text>3</xsl:text>
> </xsl:template>
> <xsl:template match="four">
>   <xsl:text>4</xsl:text>
> </xsl:template>
> </xsl:stylesheet>
> 
> third.xsl :
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; >
> <xsl:template match="one">
>   <xsl:text>this is also one</xsl:text>
> </xsl:template>
> </xsl:stylesheet>
> 
> And this is how it works: In main.xsl I include two 
> stylesheets. In one
> stylesheet I import a template that is activated in the other.
> 
> I have following question: Is the result defined in XSLT 1.0 
> and XSLT 2.0?
> 
> Thanks in advance 
> Tobias

Current Thread