Re: [xsl] use-when in the xsl:inlcude

Subject: Re: [xsl] use-when in the xsl:inlcude
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 30 Aug 2008 09:23:46 -0400
At 2008-08-30 15:58 +0300, Vladimir Nesterovsky wrote:
Ken,

<xsl:include href="..." use-when="document('configuration:data')/data/xs:boolean(@xxx)"/>

Except that it won't work. Your use-when= above relies on *some* document context in order to determine the argument values for the document() function...

As you might understand, I have some configuration defining xslt to run. E.g. Andrew has proposed to define all required compositions.

Sorry, I'm not sure what you mean by that. I was not following the earlier thread and I thought only to help when I saw inappropriate use of XSLT in your post.


I was thinking of conditional xsl:include.

Yes, I can see that because you are using:


<xsl:include href="" use-when=""/>

This has nothing in common with source input tree during transformation.

But in fact it does very much have something in common because the document() and doc() functions are responsible for building source node trees. As I said before, the stylesheet must be fully realized *before* any access to any source node tree.


This works (if I'm not wrong), as doc() function is available
in the context where values of @use-when are evaluated.
See http://www.w3.org/TR/xslt20/#conditional-inclusion.

Allow me to quote an important sentence from your citation of section 3.12:


  "However, there are severe constraints on the information provided in
   its evaluation context. These constraints are designed to ensure that
   the expression can be evaluated at the earliest possible stage of
   stylesheet processing, without any dependency on information contained
   in the stylesheet itself or in any source document."

I'm quite confident your proposal will not work as the doc() function is *not* available in the context where values of use-when= are evaluated.

Sorry, if I was not clear about the problem I was asking about.

I apologize if I do not understand some nuance you are trying to relate that is not refuted by my reading of the specification. I am trying to help you here.


And again I ask, have you tried this to see if it does in fact work for you?

. . . . . . . . . . . . . Ken

--
Upcoming XSLT/XSL-FO hands-on courses:      Wellington, NZ 2009-01
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Current Thread