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

Re: references and dependency

From: Steven Pemberton <steven.pemberton@cwi.nl>
Date: Wed, 13 Dec 2017 11:41:27 +0100
To: public-xformsusers@w3.org
Message-ID: <op.za6lbdkksmjzpq@steven-xps>
Excellent!

Thanks.

Steven

On Wed, 13 Dec 2017 07:40:16 +0100, Erik Bruchez <ebruchez@orbeon.com>  
wrote:

> 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 10:41:53 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 13 December 2017 10:41:54 UTC