[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Priority and import precedence


Subject: RE: [xsl] Priority and import precedence
From: "Andrew Welch" <ajwelch@xxxxxxxxxxxxxxx>
Date: Mon, 31 Jan 2005 17:06:48 -0000

> > It just seems really strange that the ordering of the import
> > statements should be more important that the priority attribute.
>
> 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:-)

The scenario is slightly different here - if I'm importing norm's
docbook stylesheets then any templates I write will override his.
However, if I import norm's stylesheets and some of my own, my own
imported templates could be overidden by norms if I import his
stylesheets after my own.

Now, this makes perfect sense because as the importer I have control
over the order of imports and so I can swap them around and everyone's
happy.  But it's made me think what if you don't have control of the
'importer' stylesheet?  On larger projets you could get some really
subtle bugs that go unnoticed because of import precedence.  What do you
think about being able to make a template final (to use java
terminology) such that it would be a compiler error if another
stylesheet contained a conflicting template with a higher priority?  It
other words: "if you use my stylesheet, you have to use this template as
I designed it".

cheers
andrew


Current Thread
Keywords