- From: Jérôme Nègre <jerome.negre@e-xmlmedia.fr>
- Date: Tue, 27 Aug 2002 14:37:29 +0200
- To: "www-forms-editor@w3.org" <www-forms-editor@w3.org>
Hi, I think that the behaviour of index() and nested repeats isn't well defined in the latest draft. Take the following <instance>: <bookmarks> <section> <bookmark name="Main page"/> <bookmark name="ecma"/> </section> <section> <bookmark name="images"/> </section> </bookmarks> And the following UI: <repeat nodeset="section" id="repeatSections"> <repeat nodeset="bookmark" id="repeatBookmarks"> <output ref="@name"/> </repeat> </repeat> <...> <trigger id="insertbutton"> <label>Insert bookmark</label> <insert nodeset="section[index('repeatSections')]/bookmark" at="index('repeatBookmarks')" position="after" event="xforms-activate"/> </trigger> <trigger id="insertsectionbutton"> <label>Insert section</label> <insert nodeset="section" at="index('repeatSections')" position="after" event="xforms-activate"/> </trigger> Those are taken (and adapted) from the example in chapter G.2. Step 1/ ------ At startup, all index values are 1: index('repeatSections') returns 1, index('repeatBookmarks') returns 1. Step 2/ ------ The user triggers 'Insert bookmark', the instance now look like this: <bookmarks> <section> <bookmark name="Main page"/> <bookmark name="images"/> <bookmark name="ecma"/> </section> <section> <bookmark name="images"/> </section> </bookmarks> index('repeatSections') still returns 1, index('repeatBookmarks') now returns 2 (chapter 9.3.5, point 3). Step 3/ ------ The user triggers 'Insert section', the instance now look like this: <bookmarks> <section> <bookmark name="Main page"/> <bookmark name="images"/> <bookmark name="ecma"/> </section> <section> <bookmark name="images"/> </section> <section> <bookmark name="images"/> </section> </bookmarks> index('repeatSections') now returns 2, index('repeatBookmarks') still returns 2. However, the Xpath expression section[index('repeatSections')]/bookmark[index('repeatBookmarks')] does not point to an existing element, so trying to use a <setvalue> on the new node would fail. Is this interpretation the correct one? If so, a note should be added to the draft that says that using index() on nested repeats may lead to strange (and unexpected) results. If this interpration is wrong, because index('repeatBookmarks') should return 1 in step 3 because the value of index('repeatSections') changed, it should also be specified. Regards, Jérôme
Received on Tuesday, 27 August 2002 08:39:08 UTC