- From: Gary Robertson <gazinyork@hotmail.com>
- Date: Wed, 21 Nov 2001 12:36:06 -0000
- To: "Henry S. Thompson" <ht@cogsci.ed.ac.uk>
- Cc: <xmlschema-dev@w3.org>
Hi Henry > > > <snip/> > > > > > > > What is really needed is for it to be legal to write something like: > > > > > > > > <xs:all> > > > > <A minoccurs=0 maxoccurs=unbounded> > > > > <B minoccurs=1 maxoccurs=unbounded> > > > > <C minoccurs=2 maxoccurs=5> > > > > </xs:all> > > > > > > > > Although xs:nosequence might be more descriptive than xs:all. > > > > > > _One_ (not the only) reason in the way of doing this is that the WG > > > has found that although some people ahve said something like the above > > > is what they want, they turn out to mean different things by it. > > > > > > On _your_ interpretation of the above, would the following be valid: > > > > > > <C/><B/><C/> > > > > > > ? > > > > > > ht > > > > Yes, my _requirement_ is that the elements are able to occur in any order. > > Only the number of incidences of each is significant (the cases of > > min=0, max=unbounded and min=1, max=unbounded are the ones my > > application requires in reality). > > That's actually an important observation -- it's in part the > interaction with numeric maxOccurs and >1 minOccurs that cause > implementation difficulties. If you want to talk about the implementation difficulties privately off list I would be happy to do so. I might even be able to help. > > I must be being thick again because I can't see any ambiguity in the > > above. Could you explain please? > > The stricter interpretation is that the same-named elements must occur > adjacent to one another, so the above would be invalid, but e.g. > > <C/><C/><B/> > or > <B/><C/><C/> > > would be OK. Ah I see now :-) In fact my previous suggestion of allowing xs:all to have child compositors might be interpreted as covering this stricter case. The looser (commoner?) case that I want would require the minOccurs and maxOccurs attributes to be specified on the child compositors rather than the child elements. Strict case: <xs:element name="Discordia"> <xs:complexType> <xs:all> <xs:sequence> <xs:element name="A" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:sequence> <xs:element name="B" maxOccurs="unbounded"/> </xs:sequence> <xs:sequence> <xs:element name="C" minOccurs="2" maxOccurs="5"/> </xs:sequence> </xs:all> </xs:complexType> </xs:element> Loose case: <xs:element name="Eris"> <xs:complexType> <xs:all> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="A"/> </xs:sequence> <xs:sequence maxOccurs="unbounded"> <xs:element name="B"/> </xs:sequence> <xs:sequence minOccurs="2" maxOccurs="5"> <xs:element name="C"/> </xs:sequence> </xs:all> </xs:complexType> </xs:element> cheers Gaz
Received on Wednesday, 21 November 2001 07:47:09 UTC