[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] XSLT 3.0: Catching an error in the declaration/ initialization of a variable that is outside of
Re: [xsl] XSLT 3.0: Catching an error in the declaration/ initialization of a variable that is outside of
Subject: Re: [xsl] XSLT 3.0: Catching an error in the declaration/ initialization of a variable that is outside of <xsl:try> From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 22 Jan 2015 09:27:15 -0000 |
This looks like a bug in the Saxon implementation. Michael Kay Saxonica mike@xxxxxxxxxxxx +44 (0) 118 946 5893 On 22 Jan 2015, at 04:11, Dimitre Novatchev dnovatchev@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > In the 2nd Last Call of the W3C XSLT 3.0 specification, almost at the > end of section 8.3 "Try/Catch", > http://www.w3.org/TR/2014/WD-xslt-30-20141002/#try-catch, there is an > enumerated list of additional rules that apply to the catching of > errors. > > Of these, Rule 1 says: > > "All dynamic errors occurring during the evaluation of the xsl:try > sequence constructor or select expression are caught (provided they > match one of the xsl:catch elements). > > - This includes errors occurring in functions or templates invoked in > the course of this evaluation, unless already caught by a nested > xsl:try. > > - It also includes errors caused by calling the error function, or > the xsl:message instruction with terminate="yes", or the xsl:assert > instruction. > > - It does not include errors that occur while evaluating references to > variables whose declaration and initialization is outside the xsl:try" > > > I wrote a small transformation with the purpose of demonstrating the > last bullet: > > <xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:xs="http://www.w3.org/2001/XMLSchema"> > <xsl:output method="text"/> > > <xsl:param name="pAmount" select="t"/> > > <xsl:variable name="vAmount" as="xs:decimal" select="$pAmount"/> > > <xsl:template match="/"> > <xsl:try> > <xsl:sequence select="$vAmount"/> > <xsl:catch select="-99999999"/> > </xsl:try> > </xsl:template> > </xsl:stylesheet> > > > And I expected that, according to the quoted rule above, the error in > initializing the variable "vAmount" would not be caught, because this > variable's declaration and initialization is outside of the <xsl:try> > instruction. > > However, the result of the transformation, when run with SaxonEE 9.6.02 is: > > -99999999 > > > My question: > > Is this a Saxon bug, or is the specification incorrect, or am I not > understanding correctly the rule quoted above. > If the last of these is true, could someone, please, provide an > example, whose running would demonstrate the 3rd bullet of the rule > quoted above? > > > -- > Cheers, > Dimitre Novatchev
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSLT 3.0: Catching an error i, Dimitre Novatchev dn | Thread | [xsl] More free-form layouts - side, Kerry, Richard richa |
[xsl] XSLT 3.0: Catching an error i, Dimitre Novatchev dn | Date | [xsl] More free-form layouts - side, Kerry, Richard richa |
Month |
Keywords