
Putting xsd:any inside xsd:choice is not desirable.. the following schema ( copied for reference from below) would validate any content under x. It is as good as defining element x of type xsd:any with maxOccurs='unbounded" <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="x"> <xsd:complexType> <xsd:choice maxOccurs='unbounded'> <!-- array of choice --> <xsd:element name="name"/> <xsd:element name="address"/> <xsd:any processContents="lax"/> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> If there are good practical uses case scenarios that we know for having xsd:any with maxOccurs > 1 inside sequence ( ordered or not) then we should allow it otherwise it just adds unnecessary complexity to the model, parsers, tools for a functionality that no one might require/use . . Suman Kalia IBM Toronto Lab WebSphere Business Integration Application Connectivity Tools Tel : 905-413-3923 T/L 969-3923 Fax : 905-413-4850 T/L 969-4850 Internet ID : kalia@ca.ibm.com Mike Beckerle <beckerle@us.ibm.com> Sent by: dfdl-wg-bounces@ogf.org 11/21/2007 01:44 PM To dfdl-wg@ogf.org cc Subject [DFDL-WG] DFDL wildcards with dimension I did some investigation. 1) xs:any wildcards are not allowed inside xs:all groups at all. 2) The schema below is valid, and admits the instance document following it: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="x"> <xsd:complexType> <xsd:sequence> <xsd:element name="name"/> <xsd:element name="address"/> <xsd:any processContents="lax" minOccurs='0' maxOccurs='unbounded'/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> Here's the instance: <?xml version="1.0"?> <x> <name/> <address/> <foo/> <bar/> <quux/> <frobboz/> </x> 3) Note however, the only way to create an XML Schema which will validate both the instance above and the one below where the order is all scrambled, is an array-of-choice schema: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="x"> <xsd:complexType> <xsd:choice maxOccurs='unbounded'> <!-- array of choice --> <xsd:element name="name"/> <xsd:element name="address"/> <xsd:any processContents="lax"/> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> This array-of-choice schema will accept this instance document also: <?xml version="1.0"?> <x> <foo/> <address/> <bar/> <name/> <quux/> <frobboz/> </x> The above array-of-choice schema obviously will also accept things where there are multiple name and address entries, which is undesirable, but the XPath expressions x/name and x/address will still work. <?xml version="1.0"?> <x> <address/> <address/> <foobar/> </x> Implications for DFDL: I suggest we should allow dimension on any wildcards because this unordered sequence DFDL fragment: <xsd:sequence dfdl:ordered="false"> <xsd:element name="name"/> <xsd:element name="address"/> <xsd:any id="unknown" processContents="lax" minOccurs='0' maxOccurs='unbounded'/> </xsd:sequence> describes something quite useful which otherwise requires an array of choice to model. Array-of-choice is generally undesirable as a model because it loses the cardinality information that says that name is required and address is required and there can be exactly 1 instance of each. ...mikeb Mike Beckerle STSM, Architect, Scalable Computing IBM Software Group Information Platform and Solutions Westborough, MA 01581 direct: voice and FAX 508-599-7148 assistant: Pam Riordan priordan@us.ibm.com 508-599-7046 -- dfdl-wg mailing list dfdl-wg@ogf.org http://www.ogf.org/mailman/listinfo/dfdl-wg