Altova Mailing List Archives

Re: [xsl] "castable as" explanation

From: Florent Georges <darkman_spam@-------->
Date: 8/28/2006 3:22:00 PM
cknell@xxxxxxxxxx wrote:

> <xsl:variable name="is-date" select="if(DATE_PACKED_XSD
> castable as xs:date) then '1' else('0')" />

  Why not simply:

    <xsl:variable name="is-date" as="xs:boolean"
                  select="DATE_PACKED_XSD castable as xs:date"/>

> <xsl:choose>
>   <xsl:when test="$is-date = '1'">
>     ... some processing here  
>   </xsl:when>
>   <xsl:otherwise>
>     ... some different processing here   
>   </xsl:otherwise>
> </xsl:choose>

> What I expected to happen was that when the stylesheet
> processed a DATE_PACKED_XSD element that could not be cast
> as a date ($is-date = 0), processing would pass to the
> <xsl:otherwise> branch.

> What did happen was this:

> stylesheet.xslt:423: Fatal Error! Invalid date "208 2-01-1
> 2".  Non-numeric component

  Mmh. What is the actual content of your xsl:when and

> What am I misapprehending about "castable as"?

  Nothing IMHO.  Could you please show a little example that
reproduces the problem?

    ~> cat xslt/tests/castable-as.xsl

      <xsl:output method="text"/>

      <xsl:template name="main">
        <xsl:value-of select="
            for $d in ('2006-08-29', '208 2-01-1 2') return
              $d castable as xs:date"/>


    ~> saxon -it main xslt/tests/castable-as.xsl
    true false



 uncompressed/chunked Mon Aug 28 15:13:47 GMT 2006 
Dicouvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! 
Yahoo! Questions/Riponses pour partager vos connaissances, vos opinions et vos expiriences.


These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.