Wg sequences12/10/2023 But yes, we now have a different rule forīecause in the first case the expression is not consuming. Usually inlining a variable will turn something that was non-streamable into something streamable. I think that’s already true with streaming to some extent. > 2) variable bindings can, under certain circumstances, *not* be (aggressively) inlined anymore The usual use cases for “last()” inside xsl:for-each and inside predicates still work. You’re allowed to ask how long the sequence is, but you have to be up-front about it: the system needs to know that you need to know, so that it can anticipate the question, typically by putting the whole sequence in memory. I think it’s a fairly intuitive message to explain: when you process a streamed sequence item by item, the system doesn't know how long the sequence is going to be. The only change is where you’re using some kind of iteration construct to iterate over the consuming sequence. > 1) grounded seqtors or constructs were "free havens", where any expression was allowed, now not anymore > Obviously, this puts some strains on implementations that we previously didn't have: (though the system might give you a warning about having to buffer the sequence in memory)Īnd then call last() in the invoked template rule.ĭealing specifically with Abel’s concerns: What this means is that you are allowed to call last() if your call on last() is statically visible. When last() is evaluated with such a focus, it throws XPDY0002. Then the focus that is established for the controlled operands has an absent context size. (b) there is no FunctionCall with the function name fn:last whose focus-setting container is C (a) the controlling operand of C is grounded and consuming, In any focus-changing construct C (§19.3), if the following conditions hold: Here’s a revised version of the proposal that attempts to deal with the issues raised by Abel: Re: last() with grounded consuming sequences Re: last() with grounded consuming sequences from Michael Kay on from October 2015)
0 Comments
Leave a Reply.AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |