- From: Richard Zschech <richard.zschech@cqrdata.com>
- Date: Wed, 21 Jul 2004 15:50:06 +0100
- To: www-forms@w3.org
I would like to propose an enhancement to xforms to allow for optional field
values, for example having the ability to have a date value which is
optional.
An optional date field would be described in XML Schema by using the
"nillable"
schema property as follows:
<xs:element name="date" nillable="true" type="xs:date"/>
This would be edited in xforms with a input control as follows:
<xfm:input ref="date"/>
This could be rendered as described in "8.1.2 The input Element" by an
appropriately formatted text field, to allow the user to type the date,
with a
popup calendar to aid the selection.
I would like the user to be able to unset the date field by removing all the
text from the control. This would then remove all the children nodes
from the
date element in the instance data and set the xsi:nil attribute to true.
I propose changing section "10.1.9 The setvalue Element" to allow for
this, by
changing the "Element nodes" bullet point from:
"All strings are inserted into the instance data as follows:"
"If the element has any child text nodes, the first text node is
replaced with
one corresponding to the new value. If no child text nodes are
present, a text
node is created, corresponding to the new value, and appended as the
first child
node."
to:
"All strings are inserted into the instance data as follows:"
"If the element has the schema property "nillable" set to true and
the new value
is the empty string (""):
all child nodes are removed and the attribute "xsi:nil" is set
to "true".
Otherwise
If the element has any child text nodes, the first text node is
replaced
with one corresponding to the new value. If no child text nodes are
present, a text node is created, corresponding to the new
value, and
appended as the first child node. (as previously)
If the element has the schema property "nillable" set to true
then the
attribute "xsi:nil" is set to "false"
"
Received on Wednesday, 21 July 2004 10:57:15 UTC