Re: Question regarding TestCase 8.1.4.b and simpleContent binding restriction

Hi Steve,

Based on a resolution of and action item from the working group, I 
recently wrote an erratum (E36) that covers this issue.  The updated 
errata document should be public on Friday.  Meanwhile, member only access 
is available at 
http://www.w3.org/MarkUp/Forms/Group/Drafts/REC-xforms-10-ongoing/errata/REC-xforms-10-2ndEdition-errata-diff.html

Because it was not clear that a data binding restriction means that an 
xforms-binding-exception should occur if the binding restriction is 
violated, erratum E36 states that "If a form control violates its data 
binding restriction, an xforms-binding-exception must occur."  For further 
clarity, the statement about form controls that read simple content and 
bind to element ndoes was amended to add: "If element child nodes are 
present, then an xforms-binding-exception must occur." 

The bind restriction is interpreted as a restriction on the actual 
content, not what the content should be in order to be schema valid.  If 
an element *should* be simple content according to schema, but it actually 
contains complex content, then it is still a violation of the binding 
restriction.  Similarly, if there is no schema information, but the bound 
node contains complex content, it is still a violation of the restriction 
to simple content.  Finally, if the element content is simple, then a 
"simple content" form control should be able to bind to the element 
regardless of what the schema says is necessary for the node to become 
schema valid as we already have a mechanism for detecting and reporting 
schema violations, and a form control is allowed to be bound to a node 
that is schema invalid.

The rule about choosing the 'first text node' was meant to resolve the 
problem of having PI nodes or comment nodes infesting the simple content 
of an element.   The rationale appears to have been that the node is still 
simple content, so it is schema valid and hence we have to define *some* 
reasonable behavior.  However, that decision has caused quite a bit of 
trouble.  But hindsight is known for being remarkably clear, and the 
erratum at least helps to fix this latest problem that has arisen due to 
the 'first text node' rule. 

In any case, it is easy to understand that many implementations do not 
currently enforce the binding restriction as described by the erratum 
because it is a recent erratum based on a resolution in November, so it 
will take a bit of time to show up in implementations.  However, in the 
meantime, it is recommended to amend existing content that may rely on 
violation of the data binding restrictions as the content violates the 
restrictions whether or not the implementations currently enforce the 
restrictions.  This can be done by changing the UI bindings to refer to 
the actual first text node.  This is a useful change to make for 
consistency of truly processing mixed content anyway since it means the 
author identifies the text nodes of mixed content in all cases, rather 
than all cases except when the text node happens to be the first child of 
the element. 

Best regards,
John M. Boyer, Ph.D.
STSM: Workplace Forms Architect and Researcher
Co-Chair, W3C Forms Working Group
Workplace, Portal and Collaboration Software
IBM Victoria Software Lab
E-Mail: boyerj@ca.ibm.com  http://www.ibm.com/software/

Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer





Steve K Speicher <sspeiche@us.ibm.com> 
Sent by: www-forms-request@w3.org
12/05/2006 07:51 AM

To
www-forms@w3.org
cc

Subject
Question regarding TestCase 8.1.4.b and simpleContent binding restriction







In looking at test case 8.1.4.b [1] which deals with testing that 
<xforms:textarea> can not bind to non-simple content (aka complex content) 

[2],  I have some questions.

Say a sample data instance (with no associated schema) is:

  <message>Mixed content data BEFORE body_<body>
     <name>-Name-</name>
     <title />
  </body>_Mixed content data AFTER body</message>

With this textarea:
  <xf:textarea ref="/message" />

The above works in formsPlayer, X-Smiles and Mozilla XForms.  Though this 
is clearly not simpleContent. 

Some questions:
  1) Is the content model solely determined by the associated type 
information?  For example, the above sample doesn't have a schema and can 
be inferred to be complex, or more appropriately, mixed content.
  2) What should the failure indication be?  xforms-binding-exception 
dispatched, control disabled/hidden, ???
  3) Should the mixed content be allowed, without binding to specific text 

nodes (see example above)? As stated, this works in multiple 
implementations (they bind to the first text node)

My only concern, with enforcing this restriction, is that I know of quite 
a few deployed forms that rely on mixed content and the implicit binding 
to the first text node.
For the time being, I'm going to consider the test case 8.1.4.b [1] to be 
invalid until I hear otherwise.

Regards,
Steve Speicher

[1] 
http://www.w3.org/MarkUp/Forms/Test/XForms1.0/Edition2/Chapt8/8.1/8.1.4/8.1.4.b.xhtml

[2] http://www.w3.org/TR/xforms/slice8.html#ui-processing
[3] 
http://lxr.mozilla.org/seamonkey/source/extensions/xforms/nsXFormsUtils.cpp#762

[4] https://bugzilla.mozilla.org/show_bug.cgi?id=356190

Received on Wednesday, 6 December 2006 17:44:47 UTC