Subject: Re: [xsl] stylesheet organisation From: Michael Kay <mike@xxxxxxxxxxxx> Date: Sat, 03 Sep 2011 15:59:17 +0100 |
On 03/09/2011 09:17, Jesper Tverskov wrote:Sorry, I was oversimplifying. There's more difference than this suggests. It's only true where template rules have the same priority. Given two template rules of different priority, for example <xsl:template match="*"> and <xsl:template match="x">, if you use xsl:include then the higher priority one will win (match="x"), while if you use xsl:import then the one that is first in the import tree will win.Mark asked:Wrong!
"Is there a significant difference between xsl:import and xsl:include worth learning?"
The only difference between xsl:import and xsl:include is that xsl:import must be the very first child of xsl:stylesheet.
This means that if the importing stylesheet has templates that matches with same priority as the templates in the imported stylesheet, the templates in the importing stylesheet are sure to win out because they are after the templates in the imported stylesheet.
That is you never really need to use xsl:import. If you make sure that an xsl:include is the very first child of xsl:stylesheet, it works exactly as if xsl:import had been used.
As far as template rules are concerned, it's an error to have two templates matching the same node, but processors are allowed to recover from the error by choosing the one that comes last in declaration order. For a processor that chooses the recovery strategy, xsl:import has the same effect as xsl:include.
Michael Kay Saxonica
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] stylesheet organisation, Michael Kay | Thread | Re: [xsl] stylesheet organisation, Jesper Tverskov |
Re: [xsl] stylesheet organisation, G. Ken Holman | Date | Re: [xsl] stylesheet organisation, Jesper Tverskov |
Month |