[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] variable problem


Subject: RE: [xsl] variable problem
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 21 Jan 2006 09:34:40 -0000

The "as" attribute declares the type of the variable, it does not cause
conversion to that type (except for wha I call weak conversions: atomization
of nodes, conversion of untyped values to typed values, and numeric
promotion). To convert a double to an integer, use an explicit cast -
xs:integer(@end - @begin).

I'm a little surprised by the error message here, I would have expected it
to complain about the variable itself, not about its use as an operand of
"to", but it's right according to the spec to report a type error here. (I
would have personally preferred the spec to be a bit more tolerant, but
that's a different question)

Michael Kay
http://www.saxonica.com/
  

> -----Original Message-----
> From: Kent Seegmiller [mailto:hookjaw20@xxxxxxxxxxx] 
> Sent: 21 January 2006 04:48
> To: XSLT
> Subject: [xsl] variable problem
> 
> When I try to convert a variable to and integer i.e.
> <xsl:variable name="gap" as="xs:integer" select="@end - @begin"/>
> <xsl:for-each select="1 to $gap">
> ...
> </xsl:for-each>
> I get the error:
> XPTY0004: Required type of second operand of 'to' is 
> xs:integer; supplied 
> value has xs:double
> 
> Why do I get this error and how can it be resolved? 


Current Thread
Keywords