- From: Mark Birbeck <mark.birbeck@x-port.net>
- Date: Mon, 17 Oct 2005 20:00:10 +0100
- To: "'Flinton Adam'" <Adam.Flinton@cfh.nhs.uk>
- Cc: <www-forms@w3.org>
Hi Adam, First, on xf:copy--it is intended to behave in the same way that xf:value does in a xf:select. So in the same way that you can choose one item from a list and have the 'value' of the item you have chosen 'copied' to a node, so too, you can do the same with an element and its children. (I say this, because I don't really understand what you mean by having xf:copy on xf:repeat.) For example, if you had a selection control with some currencies as choices: USD EUR GBP If you had selected 'EUR' then some target node would be set to 'EUR'--as you would expect! Now, if we replace xf:value with xf:copy, we might have choices like this: <ccy name="USD" rate="..." /> <ccy name="EUR" rate="..." /> <ccy name="GBP" rate="..." /> In this situation, if you selected the second one, your target node would actually be the whole node plus any children. So xf:copy 'copies' a tree to the target, in the same way that xf:value 'copies' a string of text to the target. However, I'm not sure this is going to help you in what you are trying to do, since it only applies to xf:select and xf:select1. I'm assuming that you actually want to edit XHTML in a xf:textarea and have whatever the user types saved to the instance. This is not currently possible in *standard* XForms, although there is no reason why implementations shouldn't provide a control that allows trees to be edited. In some stuff we have done, we do it slightly differently and store the encoded data, such as: <mif:annotation> Hello, <em>world</em> </mif:annotation> This is what you get if you type '<' or '>' into the xf:textarea, although to make it easier we have a version of xf:textarea that allows you to do simple XHTML editing (bold, italics, that kind of thing), which is invoked by using @appearance. Regards, Mark Mark Birbeck CEO x-port.net Ltd. e: Mark.Birbeck@x-port.net t: +44 (0) 20 7689 9232 w: http://www.formsPlayer.com/ b: http://internet-apps.blogspot.com/ Download our XForms processor from http://www.formsPlayer.com/ > -----Original Message----- > From: www-forms-request@w3.org > [mailto:www-forms-request@w3.org] On Behalf Of Flinton Adam > Sent: 17 October 2005 18:29 > To: www-forms@w3.org > Subject: What is the best way to deep copy an element? > > > Dear All, > > I am trying to write an Xforms app which allows a user to add > & change annotations written in XHTML where the annotation is > contained within a textarea > > If I use a repeat e.g.: > > <xf:repeat id="r2" style="" nodeset="mif:class/mif:attribute"> > <tr> > <td> > > <xf:output ref="@name"> > </xf:output> > </td> > <td > style="width: 50%; text-align: left; vertical-align: top;"> > > <xf:textarea id="annotation" ref="mif:annotation/*" /> > </td> > </tr> > </xf:repeat> > > Then I just get the first bit of text etc but the moment it > rus into an xhtml element (e.g. <p> </p> then that's the end. > > I noticed that itemset contains a copy element: > > http://www.w3.org/TR/xforms/slice9.htm > > 9.3.4 The copy Element > > Which seems to do what I require (i.e. copy everything > between <annotation & </annotation> > > There is (at present) only one annotation & I am wondering if > within the repeat I can "auto-select" the single choice > > Just out of interest, why isn't there a copy element in a > repeat? I you are looking to display/edit chunks of XHTML > (e.g. as documentation) then it may be necessary. > > TIA > > Adam > > This e-mail is confidential and privileged. If you are not > the intended recipient please accept our apologies; please do > not disclose, copy or distribute information in this e-mail > or take any action in reliance on its contents: to do so is > strictly prohibited and may be unlawful. Please inform us > that this message has gone astray before deleting it. Thank > you for your co-operation. > > > >
Received on Monday, 17 October 2005 19:01:06 UTC