[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] XSLT 3.0: Question about the rules for handling duplicate declarations of static variables


Subject: Re: [xsl] XSLT 3.0: Question about the rules for handling duplicate declarations of static variables
From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 23 Nov 2014 17:45:58 -0000

> The intended meaning of the phrase is "The value of the variable must not be a sequence one of whose items is a function", or perhaps more formally, if $V is the value of the variable then the expression
>
> some $v in $V satisfies $v instance of function(*)
>
> must be false.
>
> This is because it is not possible to determine whether two functions are "the same"
>


Yes, makes perfect sense now.

And this limitation is only for the case of name conflict with another
static variable that precedes the current static variable in
stylesheet-tree order, otherwise, if there is no such conflict, the
value of a static variable/parameter is allowed to be a sequence
containing a function, is this correct?


Cheers,
Dimitre



On Sun, Nov 23, 2014 at 2:43 AM, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> Actually, it should say "functions" rather than "function items" since XDM 3.0 renamed function items as functions.
>
> The intended meaning of the phrase is "The value of the variable must not be a sequence one of whose items is a function", or perhaps more formally, if $V is the value of the variable then the expression
>
> some $v in $V satisfies $v instance of function(*)
>
> must be false.
>
> This is because it is not possible to determine whether two functions are "the same"
>
> Michael Kay
> Saxonica
> mike@xxxxxxxxxxxx
> +44 (0) 118 946 5893
>
>
>
>
> On 22 Nov 2014, at 22:04, Dimitre Novatchev dnovatchev@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
>> In section 9.6 "Static Variables and Parameters" of the 2nd Last Call
>> of the XSLT 3.0 specification,
>> (http://www.w3.org/TR/2014/WD-xslt-30-20141002/#static-params), the
>> second of the two additional constraints listed, says:
>>
>> "... and (b) if the variables are initialized (that is, if the
>> elements are xsl:variable elements, or if they are xsl:param elements
>> and no value for the parameter is externally supplied) then the values
>> of both variables must be identical, and must not contain function
>> items."
>>
>> It is not clear to me what is the exact meaning of the phrase "must
>> not contain function items". I see several possible meanings:
>>
>> 1. Must not contain references to functions. (This seems unlikely,
>> because a static expression can contain references to functions -- but
>> maybe just in the case of static variables conflict this is
>> forbidden?)
>>
>> 2. Must not contain references to any <xsl:function> (an xsl-function
>> only, not any function)
>>
>> 3. Must not contain a definition of an inline function-item.
>>
>> Could someone, please, specify which of these three possible meaning
>> is intended in the above phrase, or if none, then what is the intended
>> meaning of this phrase?
>>
>> --
>> Cheers,
>> Dimitre Novatchev


Current Thread
Keywords