- From: <noah_mendelsohn@us.ibm.com>
- Date: Fri, 12 Mar 2004 17:24:45 -0500
- To: Hess Yvan <yvan.hess@imtf.ch>
- Cc: "'Mik Lernout'" <mik@futurestreet.org>, xmlschema-dev@w3.org
Hess Yvan writes: > In general manner, I would like to define a king of bag > element ("metadata") where the order of the elements is > not important, that contains predefined elements that > must occurs with a given occurrences (min and max) and > that also accepts any king of others elements (same or > others namespaces). Various things of this sort were considered during the design of XML schema. What you're coming pretty close to asking for is a specification that accepts almost anything at all, as long as it has at least a minimum number of certain elements. I can see use cases for that, and we certainly did consider raising maxOccurs in an all group. On the other hand, there's a case to be made that vocabularies that work like this tend not to be very strong uses of markup. What does it mean if I have: <x> <lastName>...</lastName> <firstName>...</firstName> <unknown/> <firstName>...</firstName> <firstName>...</firstName> <firstName>...</firstName> <lastName>...</lastName> <unknown/> <unknown/> <lastName>...</lastName> </x> which is the sort of content that would be validated by your bag with maxOccurs>1 for firstName and lastName. Do the various tags have anything to do with each other? Are there implied groupings that matter? You've basically got a soup full of tags with some interesting constraints on the total numbers of <firstNames>, etc., but in many such cases there are implied relationships that you could mark up better. Schema validation would enforce some constraints on this pile of tags if we had the <bag> feature, but it's not clear to me that it would make an 80/20 cut with respect to complexity. In many cases where bags of tags like this are used, nested markup would be better: <x> <name> <lastName>...</lastName> </name> <name> <firstName>...</firstName> <lastName>...</lastName> </name> <unknownXextension/> <name> <firstName>...</firstName> </name> <name> <firstName>...</firstName> <unknownNameExtension/> </name> <name> <firstName>...</firstName> </name> <unknownXextension/> <name> <lastName>...</lastName> </name> </x> Not a great example, but I hope you get the point. Marking up the relationships between the tags in the bag is often more robust, and then of course schema can do a better job of describing them. -------------------------------------- Noah Mendelsohn IBM Corporation One Rogers Street Cambridge, MA 02142 1-617-693-4036 --------------------------------------
Received on Friday, 12 March 2004 17:26:06 UTC