[XSL-LIST Mailing List Archive Home]
[Reply To This Message]
Subject: Re: xsl:import|
From: Bill French <french@xxxxxxxxxxxxx>
Date: Fri, 04 Sep 2009 09:54:59 -0700
Thanks for your reply, Ken. So an importing stylesheet doesn't respect
priorities assigned explicitly in imported stylesheets? I.e., if in
stylesheet A.xsl, I have
and in stylesheet B.xsl I have
<xsl:template match="node()" priority="-1">
and then I run the stylesheet C.xsl which looks like
any element called elemName (and any other, for that matter, if we stick
with just the XSL upstairs) is going to DO THAT instead of DOING THIS.
This seems to be what David Carlisle was explaining in his post archived
on David Pawson's XSLT FAQ:
"I think that the reason for xsl:import's existence is that you should
be able to take 10000000000 lines of Norm's docbook stylesheets,
xsl:import them and then define a couple of your own templates for
specific elements where you want your own processing. You can be sure
that your templates will win, even if you have not fully digested the
publicly available stylesheets that you were importing.
"If you had to know the priorities on the templates that you wanted to
override, you'd have to understand the stylesheets well enough to work
out which templates were being used, and with what priority, and then
specify a higher one. (well actually it would be easier just to keep
adding 0's to the end of the priority until you won:-)"
G. Ken Holman wrote:
At 2009-09-03 15:42 -0700, Bill French wrote:
I'm using Saxon 188.8.131.52J for an application. I have stylesheets that
import other stylesheet modules using syntax like this:
Here's the weird thing: If I change the code to
(note the change in order of the imports), the application-tabs.xsl
simply stops being recognized. No warnings. It's as if the line
containing the xsl:import instruction doesn't exist at all.
The transformation works as expected when using the built-in Saxon 8
processor in the Eclipse Oxygen plug-in.
Let me know if you'd like to see source code.
No, I'm guessing you have a match="*" or match="node()" in
framework.xsl, or some match pattern that is catching the nodes you
were expecting to catch in application-tabs.xsl. In the first list
of imports the matches in framework.xsl have the lowest
importance. In the second list of imports the matches in
framework.xsl have a higher importance than all of the matches in
Recall that importance trumps priority. And latter imports have
higher importance than earlier imports. If your earlier imports have
higher priority matches, these will still be ignored due to the
higher importance of matches declared in latter imports.
I hope this helps.
. . . . . . . . . . . . Ken
Interested in these classes? http://www.CraneSoftwrights.com/s/i/
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
Video lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
Video overview: http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format