|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
Wrong XPath expression in Iterate example of XForms 1.1 CRAll, Can it be that the 'if' XPath expression of the 3th setvalue in the 'Summing Selected Results' sample [1] is missing an explicit reference to the default instance? <trigger> <label>Get Sum</label> <action ev:event="DOMActivate"> <setvalue ref="instance('temps')/counter" value="1"/> <setvalue ref="instance('temps')/accumulator" value="0"/> <action while="instance('temps')/counter <= count(/some/nodes)"> <setvalue ref="instance('temps')/accumulator" value=". + instance('default')/some/nodes[number(instance('temps')/counter)]" if="boolean-from-string(/some/nodes[number(instance('temps')/counter)]/@selected)"/> <setvalue ref="instance('temps')/counter" value=". + 1"/> </action> </action> </trigger> The ref of the 3th setvalue changes the instance of the in-scope evaluation context to instance 'temps'. But the '/some/nodes' are in the 'default' instance (see value of the setvalue). -> we should change 'boolean-from-string(/some/nodes' to 'boolean-from-string(instance('default')/some/nodes' Regards, Nick Van den Bleeken - Research & Development Manager Inventive Designers Phone: +32 - 3 - 8210170 Fax: +32 - 3 - 8210171 Email: Nick_Van_den_Bleeken@... 1: http://www.w3.org/TR/xforms11/#action-iterated Inventive Designers' Email Disclaimer: |
||||||||||
|
|
Re: Wrong XPath expression in Iterate example of XForms 1.1 CRHi Nick, The 'if' and 'while' attributes use the in-scope evaluation context before the action is executed, so they are not subject to the result of a ref or nodeset on the action. This is the same context used to evaluate the context attribute on insert/delete. For this reason, the 'if' expression in the example you cited is actually correct. In fact, the example is written this way exactly to highlight the difference. The context coming into the setvalue is the 'default' instance. The bulk of the action script does work in a 'temp' instance. In the setvalue you cited, the one which adds to the accumulator, the 'value' attribute must directly reference the default instance because its evaluation context comes from the ref attribute, which refers to a node in the temp instance. But the 'if' attribute is evaluated before the 'ref' so it uses the in-scope evaluation context, which is the default instance in this example. Cheers, John M. Boyer, Ph.D. Senior Technical Staff Member Lotus Forms Architect and Researcher Chair, W3C Forms Working Group Workplace, Portal and Collaboration Software IBM Victoria Software Lab E-Mail: boyerj@... Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer Blog RSS feed: http://www.ibm.com/developerworks/blogs/rss/JohnBoyer?flavor=rssdw
All, Can it be that the 'if' XPath expression of the 3th setvalue in the 'Summing Selected Results' sample [1] is missing an explicit reference to the default instance? <trigger> <label>Get Sum</label> <action ev:event="DOMActivate"> <setvalue ref="instance('temps')/counter" value="1"/> <setvalue ref="instance('temps')/accumulator" value="0"/> <action while="instance('temps')/counter <= count(/some/nodes)"> <setvalue ref="instance('temps')/accumulator" value=". + instance('default')/some/nodes[number(instance('temps')/counter)]" if="boolean-from-string(/some/nodes[number(instance('temps')/counter)]/@selected)"/> <setvalue ref="instance('temps')/counter" value=". + 1"/> </action> </action> </trigger> The ref of the 3th setvalue changes the instance of the in-scope evaluation context to instance 'temps'. But the '/some/nodes' are in the 'default' instance (see value of the setvalue). -> we should change 'boolean-from-string(/some/nodes' to 'boolean-from-string(instance('default')/some/nodes' Regards, Nick Van den Bleeken - Research & Development Manager Inventive Designers Phone: +32 - 3 - 8210170 Fax: +32 - 3 - 8210171 Email: Nick_Van_den_Bleeken@... 1: http://www.w3.org/TR/xforms11/#action-iterated Inventive Designers' Email Disclaimer:http://www.inventivedesigners.com/email-disclaimer
|
| Free embeddable forum powered by Nabble | Forum Help |