- From: Erik Bruchez <ebruchez@orbeon.com>
- Date: Mon, 04 Jun 2007 18:23:36 -0700
- To: public-forms@w3.org
- CC: www-forms-editor@w3.org
All, I am sending this following an interesting comment about schema types from a user. XForms 1.1 specifies that: "The type model item property associates a datatype (as defined in [XML Schema part 2]) with the string-value (as defined in [XPath 1.0]) of an instance node. The datatype being associated can be obtained from a simpleType definition or a simpleContent definition from a complexType. If the datatype cannot be obtained as just described, then the Default Value of xsd:string is used." Now, I assume that this means I can write something like this: <xs:element name="state-element"> <xs:complexType> <xs:simpleContent> <xs:extension base="test:state-type"> <xs:attribute name="code" type="xs:integer"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> use it as follows: <xforms:bind nodeset="state" type="test:state-element"/> and I should expect the validator to validate the content of my <state> instance element using the datatype part of my xs:element definition. First, is this correct? Second, what if my type is as follows instead: <xs:element name="state-element" nillable="true"> <xs:complexType> <xs:simpleContent> <xs:extension base="test:state-type"> <xs:attribute name="code" type="xs:integer"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> and my instance element: <state xsi:nil="true">CA</state> Is XForms supposed to honor xsi:nil in this case, and accept an empty content for <state>? My guess is that it is not in fact part of the dataype. XML Schema says: "If {nillable} is true, then an element may also be ·valid· if it carries the namespace qualified attribute with [local name] nil from namespace http://www.w3.org/2001/XMLSchema-instance and value true (see xsi:nil (§2.6.2)) even if it has no text or element content despite a {content type} which would otherwise require content." So the nil thing seems to apply to the validity of the element, not of its datatype part. However, after all the form author is binding a nillable element type to an XForms instance element, and it is not very intuitive that xsi:nil won't work in this case. Whatever the answer, I think that it would be very valuable to clarify this in the spec. -Erik -- Orbeon Forms - Web Forms for the Enterprise Done the Right Way http://www.orbeon.com/
Received on Tuesday, 5 June 2007 01:23:37 UTC