Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: [xsl] xsl:import

From: Bill French <french@---------.--->
To: "xsl-list@-----.------------.---" <--------@-----.------------.--->
Date: 9/4/2009 4:55:00 PM
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@C...
> 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@l...>
> --~--
> 
> 

--~------------------------------------------------------------------
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@l...>
--~--



transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent