[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Problem with iterating through a sequence of integers
Subject: RE: [xsl] Problem with iterating through a sequence of integers From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 29 Apr 2008 01:50:53 +0100 |
It's the same as doing <xsl:if test="false()"> <xsl:value-of select="2 + 'London'"/> </xsl:if> Specifically: if there's a type error in an expression that would cause it inevitably to fail if executed, then a static error can be reported regardless of the fact that the expression will in fact not be executed. Without this rule, you would get far fewer compile-time errors, which would not be a good thing. I presume this is actually generated code, since I can't imagine any intelligent human writing it (unless perhaps to test the behaviour of the processor). It's certainly true that type-checking rules make it harder to generate code that will get through the compiler, but I think that's a price worth paying. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Costello, Roger L. [mailto:costello@xxxxxxxxx] > Sent: 28 April 2008 21:21 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Problem with iterating through a sequence of integers > > Hi Folks, > > Consider this for-loop which iterates through a sequence. If > the sequence value is a node then apply-templates is called. > Otherwise, the value is output: > > <xsl:for-each select="(1, 2, 3)"> > <xsl:choose> > <xsl:when test=". instance of node()"> > <xsl:apply-templates select="." /> > </xsl:when> > <xsl:otherwise> > <xsl:value-of select="."/> > </xsl:otherwise> > </xsl:choose> > </xsl:for-each> > > When I run Saxon, I get this error message: > > > Error: Required item type of @select attribute of > xsl:apply-templates is node(); supplied value has item type > xs:integer Failed to compile stylesheet. 1 error detected. > > > If I comment out the apply-templates statement, the for-loop works > fine. > > It also works fine if I add a node to the for-loop's XPath expression, > e.g. > > <xsl:for-each select="(//Book/Author, 1, 2, 3)"> > > I'm baffled. Any ideas? > > /Roger
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Problem with iterating th, Dimitre Novatchev | Thread | Re: [xsl] Problem with iterating th, M. David Peterson |
Re: [xsl] for-each-group group-by e, Robert Koberg | Date | Re: [xsl] Problem with iterating th, M. David Peterson |
Month |
Keywords