xsl-list
[Top] [All Lists]

Re: [xsl] stylesheet organisation

2011-09-03 09:59:30
On 03/09/2011 14:59, Michael Kay wrote:
On 03/09/2011 09:17, Jesper Tverskov wrote:
Mark asked:

"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.


Wrong!

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.
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.

Michael Kay
Saxonica


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>