- From: Radu Calinescu <Radu.Calinescu@comlab.ox.ac.uk>
- Date: Tue, 2 May 2006 16:59:53 +0100
- To: <www-forms@w3.org>
- Message-ID: <000601c66e01$73a4a330$357d01a3@comlab.ox.ac.uk>
Hi, I'm working on an XForms template for XML documents whose associated schemas contain xsd:choice declarations, e.g., <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:my="http://example.com" targetNamespace="http://example.com" elementFormDefault="qualified"> <xsd:element name="root"> <xsd:complexType> <xsd:choice> <xsd:element name="foo" type="xsd:string" /> <xsd:element name="bar" type="xsd:string" /> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> and finding it difficult to come up with an XForms model/UI combination that supports this use case. Although the XForms switch module (http://www.w3.org/TR/xforms/slice9.html#id148519) represents a suitable option for representing the choice in the UI, finding an appropriate model seems more difficult. Simply specifying a model such as: <xforms:model xmlns:my="http://example.com" xmlns:xforms="http://www.w3.org/2002/xforms" ...> <xforms:instance> <my:root> <my:foo /> <my:bar /> </my:root> </xforms:instance> ... </xforms:model> ensures that the UI can reference both my:foo and my:bar, but produces invalid XML documents that XForms-capable browsers rightfully reject. For instance, XSmiles (http://www.x-smiles.org/) reports "Invalid content starting with element 'my:bar'. No child element is expected at this point." when submission is attempted. Notice that the XForms examples provided with the XForms 1.0 recommendation dated 14 March 2006 (http://www.w3.org/TR/xforms/sliceG.html) work around this issue by allowing the xsd:choice element to appear for any number of times in the document, i.e., <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:choice> ... </xsd:choice> </xsd:sequence> which makes an instance document such as the one suggested above valid, but does not address my specific use case. IBM's XForms Generator (http://www.alphaworks.ibm.com/tech/xfg) comes with a number of "choice"-related samples that pair XML schemas with xsd:choice declarations and XML instance documents similar to the one presented above, and therefore suffer from the same limitation. I would be grateful for any comments that might clarify this issue. Radu
Received on Tuesday, 2 May 2006 18:54:33 UTC