The 2.0 spec says that in the dynamic context for evaluating use-when
expressions, the set of available documents is empty.
The 3.0 spec changes this to say it is implementation-defined.
Michael Kay
Saxonica
On 15 May 2014, at 21:21, Rushforth, Peter
peter(_dot_)rushforth(_at_)nrcan-rncan(_dot_)gc(_dot_)ca
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
Hi,
I have been experimenting with xsl:import@use-when to override templates
imported by the main stylesheet module with
an import@href value (partially) generated by a filtered maven variable.
Because the file so referenced may or may not exist, I've tried
to apply the @use-when attribute as follows:
<xsl:import href="feedOrEntry2json-default.xsl"/>
<xsl:import href="feedOrEntry2json-api.xsl"
use-when="doc-available('feedOrEntry2json-api.xsl')"/>
The string 'api' is generated by the filtered maven variable, and the file
does exist in the same directory as the importing stylesheet
(when I execute the doc-available('feedOrEntry2json-api.xsl') call in the
xpath tester in oxygen, I get 'true' as a result).
However, when I execute the stylesheet, the templates in the first import are
(incorrectly) not overridden.
If I remove the @use-when, they are (correctly) overridden, but of course I
can't do that in general because sometimes the file won't
exist and in that case I don't want the compilation to fail, hence the
@use-when.
Any advice appreciated, with thanks.
Peter Rushforth
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--