- From: Erik Bruchez <ebruchez@orbeon.com>
- Date: Wed, 6 Mar 2019 07:08:14 -0800
- To: Steven Pemberton <steven.pemberton@cwi.nl>
- Cc: XForms <public-xformsusers@w3.org>
- Message-ID: <CAAc0PEUuhPq+39Yd1evY1=ynSQam1cL0zD9H=Z91+u+k26pS7Q@mail.gmail.com>
In our implementation, we evaluate `if` and `while` in the "Element
evaluation context" as per the current spec.
I am not sure if that's good or bad but we have to pick.
`iterate` also comes into the mix:
"Iterate changes the evaluation context for if and while attributes,
and is evaluated before either of the two."
Speaking of which, I see a contradiction in "14.3.3 The iterate attribute":
- "It [iterate] contains an expression that is evaluated once using the
element evaluation context"
- "Since the iterate expression is evaluated once using the in-scope
evaluation context"
In general, this is confusing and the best practice should probably be to
avoid combining `ref`, `if`/`while`, and/or `iterate` on a same element.
It's just pretty much impossible to know the order in which things happen.
Looking at the example provided, for example:
<delete ref="." at="1" iterate="node[@selected='true']"/>
I have no idea what it does without looking up the spec or trying it.
-Erik
On Wed, Feb 27, 2019 at 8:02 AM Steven Pemberton <steven.pemberton@cwi.nl>
wrote:
> The text says to use the in-scope context, but the examples use the
> element context.
>
>
> https://www.w3.org/community/xformsusers/wiki/XForms_2.0#Conditional_and_Iterated_Execution_of_Actions
>
> I will change this to say the element evaluation context.
>
> Steven
>
>
Received on Wednesday, 6 March 2019 15:08:49 UTC