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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] variable problem, Jay Bryant | Thread | [xsl] Unable to get text() of node, Liron |
Re: [xsl] variable problem, Jay Bryant | Date | [xsl] Unable to get text() of node, Liron |
Month |