Re: [xsl] xsl:import and use-when

Subject: Re: [xsl] xsl:import and use-when
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 15 May 2014 22:40:48 -0000
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.rushforth@xxxxxxxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> 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

Current Thread