- From: Steven Pemberton <steven.pemberton@cwi.nl>
- Date: Tue, 05 Jun 2018 11:10:23 +0200
- To: public-xformsusers@w3.org, "Steven Pemberton" <steven.pemberton@cwi.nl>
OK, here is a strawman proposal for embedded XForms, presented as a piece of spec text. It works by passing values to initialise an instance, and the embedded form returns values using a submission with method="xforms-return". Steven ===== The control element This element embeds an XForm in the current form. Common Attributes: Control Common Special attributes: resource Required URL of a resource containing an XForm. This form will be embedded within the current form. initial Optional single node expression. The value of this node is used to initialise the textually first instance in the embedded form, in the same way as a <submit replace="instance"/> would work. If absent, no values are passed to the embedded form. ref (also bind) Optional single node binding that indicates the target node to receive submissions from the embedded form that use the method 'xforms-return'. It may be the same node as that used in the 'initial' attribute. If absent, no values are returned from the embedded form (even if it uses submissions using 'xforms-return' [which may cause an xforms error of some sort]). [For the submission element, there is a new method 'xforms-return' that returns the values] [There is an action <renew control="id"/> that causes the initial values reference to be copied to the embedded instance again] Examples <control resource="today.xhtml" label="Today's date:"/> --- today.xhtml: <output value="now()"/> ==== <instance id="values"> <data xmlns=""> <a>1</a> <b>2</b> <sum/> </data> </instance> ... <control ref="instance('values')" resource="add.xhtml" initial="instance('values')"/> <output ref="sum"/> --- In the subform <instance> <values xmlns=""/> </instance> <bind ref="sum" calculate="../a + ../b"/> <submission method="xforms-return"/> ==== <instance> <data xmlns=""> <testfile>test.xml</testfile> </data> </instance <instance id="results"/> ... <control ref="instance('results')" resource="{testfile}"/> --- In test.xml <instance> <data xmlns=""> <values>...</values> <results> <percent/> <success/> <failure/> </data> </instance ... <submission ref="results" method="xforms-return"/> === <instance> <testsuite xmlns=""> <test> <filename>boolean-from-string.xml</filename> <tests> <test res="" req="true">1</test> <test res="" req="false">0</test> </tests> <result/> </test> <test> ... </test> </testsuite> </instance> <repeat ref="testsuite/test"> <control resource="{filename}" initial="tests" ref="result"/> </repeat> --- in the subform <model> <instance> <tests xmlns=""/> </instance> <instance id="result"> <result xmlns=""> <percent/> </result> </instance> ... <submission ref="instance('result')" method="xforms-return"/> === <instance> <locations xmlns=""> <here x="3498234" y="8734503"/> <home x="" y=""/> <dest x="" y=""/> </locations> </instance> ... <control ref="home" resource="map.xf" initial="here" label="Please locate your home location"/> <control ref="dest" resource="map.xf" initial="here" label="Please locate your destination"/> === <select1 ref="game" label="select a game to play"> <item label="minesweeper">minesweeper.xml</item> <item label="slider">slider.xml</item> <item label="noughts and crosses">xox.xml</item> </select1> <control resource="{game}"/> ===
Received on Tuesday, 5 June 2018 09:33:47 UTC