W3C home > Mailing lists > Public > public-xformsusers@w3.org > December 2017

Re: references and dependency

From: Erik Bruchez <ebruchez@orbeon.com>
Date: Tue, 12 Dec 2017 22:40:16 -0800
Message-ID: <CAAc0PEV+Ujsc5RF3LeoPuYnpn1R5MtCaR0TWT=CTCJb-NFKsHw@mail.gmail.com>
To: Steven Pemberton <steven.pemberton@cwi.nl>
Cc: XForms <public-xformsusers@w3.org>
All,

I finally wrote an example (see the second example):

    https://www.w3.org/community/xformsusers/wiki/XForms_2.0#Dependencies

Diff:

    https://www.w3.org/community/xformsusers/wiki/index.php?title=XForms_2.0&type=revision&diff=1775&oldid=1774

I used the same (plus one element) instance as the previous element
but followed the idea of a master-detail view.

-Erik

On Tue, Oct 3, 2017 at 10:16 PM, Erik Bruchez <ebruchez@orbeon.com> wrote:
> Looking at this action item, I reread the new section "7.3 References,
> Dependencies, and Dynamic Dependencies" [1]. Compared to XForms 1.1's
> version [2], I prefer the new version as it is less convoluted and
> higher-level.
>
> There is the following text in the note for the XForms 1.1 version, which
> got removed:
>
>> For example, if the above expression were in a calculate, and if the
>> attribute of either b element changes to the value X, the expression would
>> be recalculated but it still does not record a reference to any c elements
>> until the references are obtained in the next rebuild operation.
>
> That text kind of explained a dynamic dependency, but a little bit (or much)
> too vaguely.
>
> I think we could explain this using the updated example. For example,
> introducing a bind and an input control:
>
> ```
> <bind
>     id="capital-bind"
>     ref="continent[@name='Europe']/country[@name='France']/capital"/>
>
> <input
>     id="capital-input"
>     bind="capital-bind"
>     label="Capital"/>
> ```
>
> Initially, because there is no `country` element with a `name` attribute set
> to value `France`, the `capital-input` control binds to an empty sequence
> and therefore is disabled.
>
> Now let's consider the following action:
>
> ```
> <setvalue
>     ref="continent[@name = 'Europe']/country[@name = 'UK']/@name"
>     value="'France'"/>
> ```
>
> After this `<setvalue>`, the model does a `recalculate` and `revalidate` and
> a `refresh` is performed. But the `capital-input` control remains
> non-relevant if there is no explicit or implicit (for example via
> `<insert>`) `rebuild` that is performed.
>
> The following sequence of actions would properly make the `capital-input`
> control appear:
>
> ```
> <setvalue
>     ref="continent[@name = 'Europe']/country[@name = 'UK']/@name"
>     value="'France'"/>
> <rebuild/>
> ```
>
> I don't know if this or something along those lines would be worthwhile
> adding. I still think that it leaves some aspects in the dark.
>
> The key rule here is that *all binds keep pointing to the same node until a
> `rebuild` happens*.
>
> Interestingly enough, if things are done at the UI level, they are implied
> to work. For example:
>
> ```
> <input
>     id="capital-input"
>     ref="continent[@name='Europe']/country[@name='France']/capital"
>     label="Capital"/>
> ```
>
> would not require a `rebuild` since "All UI Expressions are re-evaluated as
> necessary".
>
> To discuss during the call.
>
> -Erik
>
> [1] https://www.w3.org/community/xformsusers/wiki/XForms_2.0#Dependencies
> [2] https://www.w3.org/TR/xforms/#expr-dependencies
>
>
> On Wed, Mar 22, 2017 at 12:43 AM, Steven Pemberton <steven.pemberton@cwi.nl>
> wrote:
>>
>> The reason I took it out was because it was not used anywhere. I replaced
>> it with an explanation of why sometimes a manual recalculate was necessary.
>>
>> Let's talk about it this afternoon.
>>
>> Steven
>>
>>
>>
>> On Wed, 22 Mar 2017 05:38:47 +0100, Erik Bruchez <ebruchez@orbeon.com>
>> wrote:
>>
>>> It should be enough to say that there are expressions with dynamic
>>> dependencies, provide examples, and indicate that manual rebuilds are needed
>>> in such cases.
>>>
>>> Do you think it is possible to create a canonical set of examples that
>>> show when manual rebuilds are needed?
>>
>>
>> I notice that after the rewrite, there is no more mention of "dynamic
>> dependencies". Should we still provide an example of dynamic dependency as
>> we did for XForms 1.1 with:
>>
>>     https://www.w3.org/TR/xforms/#expr-dependencies
>>
>> -Erik
>>
>>
>>
>>
>
Received on Wednesday, 13 December 2017 06:41:09 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 13 December 2017 06:41:11 UTC