RE: Re: [xsl] "castable as" explanation

Subject: RE: Re: [xsl] "castable as" explanation
From: cknell@xxxxxxxxxx
Date: Mon, 28 Aug 2006 14:51:36 -0400
Thanks to both of you for your replies. Your confirmation that I understood the functioning of "castable as" led me to look elsewhere for the problem. It was a problem with substring indexes in the section of code triggered by the "true" evaluation of the "castable as" test.

Although it occurred in proximity, the error was not functionally related to the "castable as" question. It's just that I was unfamiliar with "castable as", so my suspicion as to the locus of the problem fell there.
-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     Florent Georges <darkman_spam@xxxxxxxx>
Sent:     Mon, 28 Aug 2006 17:21:38 +0200 (CEST)
To:       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:  Re: [xsl] "castable as" explanation

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
xsl:otherwise?

> 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:transform
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
        xmlns:xs="http://www.w3.org/2001/XMLSchema";
        version="2.0">

      <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"/>
      </xsl:template>

    </xsl:transform>

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

  Regards,

--drkm






















	
 p5.vert.ukl.yahoo.com 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. 
http://fr.answers.yahoo.com 

Current Thread