Re: [xsl] "castable as" explanation

Subject: Re: [xsl] "castable as" explanation
From: Florent Georges <darkman_spam@xxxxxxxx>
Date: Mon, 28 Aug 2006 17:21:38 +0200 (CEST)
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