xsl-list
[Top] [All Lists]

Re: top level xsl:param confusion

2004-09-30 15:29:41
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.)

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. 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.

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.

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
======================================================================