xsl-list
[Top] [All Lists]

Re: top level xsl:param confusion

2004-09-30 15:51:39
Hi,

Wendell Piez wrote:

Robert,

At 06:09 PM 9/30/2004, you wrote:

Hi and thanks,

I was hoping to get the benefit of a quick boolean test. Perhaps this is a JAXP thing? I would think setting a parameter to an empty string:

transformer.setParameter("permission", "");

would equate to (if the permission param was not sent):

<xsl:param name="permission" select="''"/>
(since that is what I am passing)


Yes, but if you then test="$permission", the test will fail, because the empty string tests as false. (This is what David and others have tried to tell you.)

I got that after after a few other posts (especially Wolgang's and Bertoni's).

fact of life...


Setting the parameter to default to "false()" is not the same as setting it to have no value: it has a value, precisely, of Boolean false.

Yes, I get that. If the parameter is not sent to the transformation then I want it to be false(). My thinking was that:

<xsl:if test="$myBool">

</

is more performant than:

<xsl:if test="not($myStr='')">

</


When an empty string is coerced to a Boolean, as it always is when it is tested directly, it also gets a value of false.

I realize it is in the spec (now...) and I have to live with it. I guess I was thinking along the lines that:

'' != false()

in any other languages I have dealt with,

Also, it appears to be inconsistent (I understand a @test is not a @select, ) that:

<xsl:value-of select="''"/>

does not output false. So if it can be selected and output then why should it evaluate to false?

just rambling... :)


To me, this seems like a bug for java processors (at least Saxon and Xalan)


No, it's the way the spec outlines the built-in casting of datatypes.

If it were my project, I'd set the default to the string ".", which would not test as false, and which conveniently means, in most directory-traversal syntaxes, the current working directory.

That is what I did :) (actually './')

thanks,
-Rob



Cheers,
Wendell


======================================================================
Wendell Piez                            
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


--+------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--