[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] function-available() test on stylesheet functions
Subject: Re: [xsl] function-available() test on stylesheet functions
From: "John McGowan" <john@xxxxxxxxxxxxx>
Date: Tue, 17 Jul 2007 16:27:02 -0500
|
Abel,
Thanks for thinking about this. What I'm trying to do here is make
parts of one of my more complicated stylesheets work like this.
<xsl:if test="function is available">
call function to do custom output
</xsl:if>
<xsl:if test="function is not available">
default output
</xsl:if>
What I really want is the ability to define a function, and the
existence of the function alone causes the function to be used instead
of the default behaviour.
The stylesheet has lots of "logic" in it that I wouldn't want to have
to duplicate if all I really wanted to do was re-arrange the output,
or skin it differently.
Right now, I think I may have to move all of my "default output" into
functions that are defined by a file referenced by an xsl:import.
Then I can successfully define an overriding function, when I want to
customize the output.
/John
On 7/17/07, Abel Braaksma <abel.online@xxxxxxxxx> wrote:
John McGowan wrote:
>
> When calling function-available() inside of a use-when attribute it
> will never return true for a user defined function. The specs pretty
> much say this exactly.
A new try, I had some coffee now ;)
I looked it up in my projects, because I remember I had a similar
problem. Actually, we included some helper functions for diagnosis when
in a debug environment. Instead of writing tedious xsl:if/when/otherwise
constructs, we defined several system properties, mainly to determine
the context (debug, analysis, test, production) the stylesheets were used.
Now we could write something like:
<xsl:value-of select="myfun:analyze-this(....)"
use-when="system-property('context') = 'debug'" />
Or, if you fancy that (not to everyone's taste), add it to you doctype
and do:
<xsl:value-of select="myfun:analyze-this(....)" use-when="&debug;" />
Not sure this (again) addresses your problem domain, but it could be
used to bring a (group of) stylesheet functions into the use-when and
can even be used on xsl:import etc.
Cheers,
-- Abel Braaksma
--
/John
| Current Thread |
|
Michael Kay - 18 Jul 2007 07:33:15 -0000
|
|