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(_at_)comcast(_dot_)net]
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?
--~------------------------------------------------------------------
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>
--~--