[XSL-LIST Mailing List Archive Home]
[Reply To This Message]
Re: Saxon error: "If none of the conditions is satisfi
Subject: Re: Saxon error: "If none of the conditions is satisfied, an empty sequence..."|
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Tue, 24 May 2011 00:12:54 +0100
On 23/05/2011 23:47, tom a wrote:
When attempting to compile a stylesheet containing the following variable
<xsl:whentest="name() eq 'step1'">
<xsl:sequenceselect="count(preceding-sibling::step1) + 1"/>
<xsl:whentest="name() eq 'step2'">
<xsl:sequenceselect="count(preceding-sibling::step2) + 1"/>
<xsl:whentest="name() eq 'step3'">
<xsl:sequenceselect="count(preceding-sibling::step3) + 1"/>
<xsl:sequenceselect="99+1"/><!--trying to placate saxon->
I get the error:
"XTTE0570: Conditional expession: If none of the conditions is satisfied, an
will be returned, but this is not allowed as the value of variable
I haven't the foggiest idea why this would be. Any help would be most greatly
I assume you only get the error when the xsl:otherwise branch is absent,
and when the declared type really doesn't allow an empty sequence (for
example, as="xs:integer+" rather than as="xs:integer*"). The reason for
the error is that omitting the otherwise branch is equivalent to writing
and this would give a type error on the grounds that () is not a legal
value for the variable.
However, there have been a number of complaints about this
interpretation of the spec, and I'm going to change it in the next
release so you get a compile time warning, followed by a run-time error
if the otherwise branch is actually selected.
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format