Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

XForms/Deep Copy with Insert Origin

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Motivation You want to add a new instance or element from a template. You want to do a deep copy of complex XML from one instance to another instance within a model. Method We will use the XForms xf:insert element with the origin attribute set to the source instance. We will use the nodeset attribute to indicate where the data should be copied to. Link to XForms Application Load XForms Application Source Code <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xf="http://www.w3.org/2002/xforms"> <head> <title>Using Origin to do a Deep Copy between instances</title> <style type="text/css"> @namespace xf url("http://www.w3.org/2002/xforms"); body {font-family:Helvetica, sans-serif} #source-repeat {border: blue solid 1px;} #destination-repeat {border: green solid 1px;} </style> <xf:model> <xf:instance xmlns="" id="source"> <data> <a>A1</a> <a>A2</a> <a>A3</a> </data> </xf:instance> <xf:instance xmlns="" id="destination"> <data/> </xf:instance> </xf:model> </head> <body> <h1>Example of deep copy using XForms insert origin</h1> <h3>Source:</h3> <xf:repeat id="source-repeat" nodeset="instance('source')/a"> <xf:output ref="."/> </xf:repeat> <h3>Destination:</h3> <xf:repeat id="destination-repeat" nodeset="instance('destination')/a"> <xf:output ref="."/> </xf:repeat> <xf:trigger> <xf:label>Copy data from source to destination</xf:label> <xf:action ev:event="DOMActivate"> <xf:insert origin="instance('source')" nodeset="instance('destination')"/> </xf:action> </xf:trigger> </body> </html> Discussion Incremental Model Loading Dynamic Selection Lists