xsl-list
[Top] [All Lists]

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

2006-08-28 11:51:51
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(_at_)onebox(_dot_)com - email



-----Original Message-----
From:     Florent Georges <darkman_spam(_at_)yahoo(_dot_)fr>
Sent:     Mon, 28 Aug 2006 17:21:38 +0200 (CEST)
To:       xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject:  Re: [xsl] "castable as" explanation

cknell(_at_)onebox(_dot_)com 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 
        
                
___________________________________________________________________________ 
Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet 
! 
Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos 
expériences. 
http://fr.answers.yahoo.com 


--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>