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
<xsl:template match="ElemName">
DO THIS
</xsl:template>
and in stylesheet B.xsl I have
<xsl:template match="node()" priority="-1">
DO THAT
</xsl:template>
and then I run the stylesheet C.xsl which looks like
<xsl:import href="A.xsl"/>
<xsl:import href="B.xsl"/>
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:
http://www.dpawson.co.uk/xsl/sect2/N4738.html#d6607e353
"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:-)"
--Bill
G. Ken Holman wrote:
At 2009-09-03 15:42 -0700, Bill French wrote:
Hi all,
I'm using Saxon 9.1.0.7J for an application. I have stylesheets that
import other stylesheet modules using syntax like this:
<xsl:import href="inc/framework.xsl"/>
<xsl:import href="inc/application-tabs.xsl"/>
<xsl:import href="inc/search-fields.xsl"/>
<xsl:include href="../../override/xslt/customization.xsl"/>
Here's the weird thing: If I change the code to
<xsl:import href="inc/application-tabs.xsl"/>
<xsl:import href="inc/framework.xsl"/>
<xsl:import href="inc/search-fields.xsl"/>
<xsl:include href="../../override/xslt/customization.xsl"/>
(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
application-tabs.xsl.
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(_at_)CraneSoftwrights(_dot_)com
Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--