W3C home > Mailing lists > Public > xproc-dev@w3.org > November 2009

Re: How to pass a boolean value true or false using with-param when the required param type is xs:boolean;

From: James Sulak <jsulak@gmail.com>
Date: Thu, 12 Nov 2009 13:18:39 -0600
Message-ID: <7cb78b3b0911121118n3b10a18crd7001dfb7f686f03@mail.gmail.com>
To: Alex Muir <alex.g.muir@gmail.com>
Cc: XProc Dev <xproc-dev@w3.org>
I'm afraid you'll probably have to do something like this in your
transform if you want to get a boolean:

<xsl:param name="preserve_newline" as="xs:boolean"/>
<xsl:variable name="preserve_newline_boolean"
select="upper-case($preserve_newline) = 'TRUE'" as="xs:boolean" />

And then use $preserve_newline_boolean where you were using $preserve_newline.

I think what it comes down to is that while XSL allows parameters of
any type, XProc limits parameters to being strings, and will pass them
as strings to an XSL. So the XSL will recieve a string when it is
expecting a boolean, and fail.  It's kind of an annoying limitation in
situations like this.

Hope this helps,

-James



On Thu, Nov 12, 2009 at 12:36 PM, Alex Muir <alex.g.muir@gmail.com> wrote:
> James,
>
> Well mixed results.  I removed the  as="xs:boolean" (although really it
> should work with it there right?) to then have in the style sheet
>
>  <xsl:param name="preserve_newline" />
>
> which removed the error message in the xproc.  I then tried various values
> to find that true() which was true, false() was also true, any quoted text
> was true and non quoted text was false.
>
>
>              <!-- true() = true-->
>              <!-- false() = true -->
>             <!--  false = false-->
>             <!--  true = false-->
>             <!--  junk = false-->
>             <!-- 'true' = true -->
>             <!-- 'false' = true -->
>
> <p:with-param name="preserve_newline" select="false()"/>
>
>                 is not working as I would expect it to.
>
>
> My style sheet is working correctly when I put select="true()" or false()
> into the parameter directly in the style sheet and remove the with-param
> statement from the xproc.
>
>
> Alex
>
> On Thu, Nov 12, 2009 at 5:35 PM, James Sulak <jsulak@gmail.com> wrote:
>>
>> My understanding is that parameters in XProc must be strings (or
>> xs:untypedAtomics), per section 2.11.  So even though the transform
>> declares the parameter as an "xs:boolean," XProc is passing the
>> parameter as a string.  If you remove the type from the XSL parameter
>> declaration, does it work?
>>
>> -James
>>
>> On Thu, Nov 12, 2009 at 11:17 AM, Alex Muir <alex.g.muir@gmail.com> wrote:
>> > Toman,
>> >
>> > I get the same error message with that statement.
>> >
>> > Description:  Required type is xs:boolean; supplied value has type
>> > xs:string
>> >
>> > Alex
>> >
>> > On Thu, Nov 12, 2009 at 5:00 PM, <Toman_Vojtech@emc.com> wrote:
>> >>
>> >> Alex,
>> >>
>> >> It seems to me that the problem is that there is no implicit readable
>> >> port
>> >> to which the p:with-param can connect to - and therefore you get a
>> >> static
>> >> error. Try this:
>> >>
>> >> <p:with-param name="preserve_newline" select="false()">
>> >>   <p:empty/>
>> >> </p:with-param>
>> >>
>> >> Regards,
>> >> Vojtech
>> >>
>> >> ________________________________
>> >> From: xproc-dev-request@w3.org [mailto:xproc-dev-request@w3.org] On
>> >> Behalf
>> >> Of Alex Muir
>> >> Sent: Thursday, November 12, 2009 5:43 PM
>> >> To: xproc-dev@w3.org
>> >> Subject: How to pass a boolean value true or false using with-param
>> >> when
>> >> the required param type is xs:boolean;
>> >>
>> >> Hi
>> >>
>> >> In the following xproc the <p:with-param name="preserve_newline"
>> >> select="false()"/> gives me an error message
>> >>
>> >>  "Description:  Required type is xs:boolean; supplied value has type
>> >> xs:string"
>> >>
>> >> because the style sheet is expecting
>> >>
>> >> <xsl:param name="preserve_newline" as="xs:boolean"/>.
>> >>
>> >> It's funny to be asking this question but how do I specify the boolean
>> >> value false in the xproc with-param ? I tried false, false() and 0 but
>> >> there
>> >> all treated as strings giving the same error message.
>> >>
>> >>    <p:xslt name="DoSomething">
>> >>       <p:input port="source"/>
>> >>       <p:input port="stylesheet">
>> >>         <p:document href="doSomething.xsl"/>
>> >>       </p:input>
>> >>
>> >>       <p:with-param name="preserve_newline" select="false()"/>
>> >>
>> >>       <p:input port="parameters">
>> >>         <p:empty/>
>> >>       </p:input>
>> >>     </p:xslt>
>> >>
>> >>
>> >> Thanks Much
>> >>
>> >> --
>> >>
>> >> Alex
>> >> https://sites.google.com/a/utg.edu.gm/alex
>> >>
>> >
>> >
>> >
>> > --
>> >
>> > Alex
>> > https://sites.google.com/a/utg.edu.gm/alex
>> >
>> >
>
>
>
> --
>
> Alex
> https://sites.google.com/a/utg.edu.gm/alex
>
>
Received on Thursday, 12 November 2009 19:19:32 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 12 November 2009 19:19:33 GMT