[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: top level xsl:param confusion

Subject: Re: top level xsl:param confusion
From: Robert Koberg <rob@xxxxxxxxxx>
Date: Thu, 30 Sep 2004 15:51:39 -0700
transformer setparameter xsl
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@xxxxxxxxxxxxxxxx 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@xxxxxxxxxxxxxxxxxxxxxx> --+--

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.