- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 16 Nov 2001 11:30:31 +0000
- To: Eric van der Vlist <vdv@dyomedea.com>
- Cc: xmlschema-dev@w3.org
Eric van der Vlist <vdv@dyomedea.com> writes: > Henry S. Thompson wrote: > > > Eric van der Vlist <vdv@dyomedea.com> writes: > > > > >>Just wondering how a recursive group such as: > >> > >> <xs:group name="group"> > >> <xs:sequence> > >> <xs:element name="foo"> > >> <xs:complexType> > >> <xs:group ref="group" minOccurs="0"/> > >> </xs:complexType> > >> </xs:element> > >> <xs:element name="bar" type="xs:token"/> > >> </xs:sequence> > >> </xs:group> > >> > >>may be redefine without confusion between the <xs:group ref="group"/> meaning > >>"extension", the <xs:group ref="group" minOccurs="0"/> meaning "bogus > >>extension" the <xs:group ref="group" minOccurs="0"/> meaning "reference" ??? > >> > > I don't see the problem here. In the _redefinition_, the details of > > the original definition are irrelevant, and it's the redefinition with > > respect which the constraints are expressed. > > > Then probably I don't read "among its contents at some level" correctly in: > > "6.1 If it has a <group> among its contents at some level the ·actual value· > of whose ref [attribute] is the same as the ·actual value· of its own name > attribute plus target namespace, then all of the following must be true: The referent of 'it' and 'its' in "it has a <group> among its contents" is the <group> EII which is a child of <redefine>, i.e. the XML representation of the redefining form. We haven't gotten to components, or discharging references, yet. > If I want to restrict this type to add a constraint on the type of element > "bar", I will write: > <xs:redefine schemaLocation="whatever.xsd"> > <xs:group name="group"> > <xs:sequence> > <xs:element name="foo"> > <xs:complexType> > <xs:group ref="group" minOccurs="0"/> > </xs:complexType> > </xs:element> > <xs:element name="bar" type="xs:NMTOKEN"/> > </xs:sequence> > </xs:group> > </xs:redefine> > > It the <xs:group ref="group" minOccurs="0"/> is "among its contents at some > level" then there is a confusion betwee, a bogus extension and a restriction... Ah, _now_ I understand -- you're not trying to redefine by extending that group, you're trying to redefine by restricting it, but the form about is ambiguous wrt that goal. > From your answer, I realize that the rec might mean "among its contents at > some level but still with a parent equal to the current element" or something > like that. Well, you've clarified that it _should_ mean that, thank you! > If it's the case, I wonder if "direct" recursive group definitions might be > useful in some cases and if they are clearly forbiden. If they were allowed, > this definition could not be redefined <snip/> But 'direct' circular groups, even with min=0, are in fact disallowed [1]. So at least _this_ problem doesn't arise. ht [1] http://www.w3.org/TR/xmlschema-1/#mg-props-correct -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh W3C Fellow 1999--2001, part-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/
Received on Friday, 16 November 2001 06:29:36 UTC