- From: Eric van der Vlist <vdv@dyomedea.com>
- Date: Tue, 13 Nov 2001 18:35:13 +0100
- To: Jeni Tennison <jeni@jenitennison.com>
- Cc: "K.Mroczek" <kmroczek@altkom.com.pl>, xmlschema-dev@w3.org
Jeni Tennison wrote: > Hi Krzysztof, > > >>What is the meaning (and syntax) of redefinitions <group> and >><attributeGroup>? Clauses 6.2 and 7.2 in "Schema Representation >>Constraint: Redefinition Constraints and Semantics" (4.2.2 >>structures) look like a method for redefinition by 'restriction'. >>But what is the interpretation of clauses 6.1 and 7.1? Is it >>describe a method for redefinition by 'extension'? >> > > Yes, 6.1 and 7.1 specify ways in which you can redefine groups and > attributeGroups by adding new particles/attributes to them (extending > them), and 6.2/7.2 are ways of redefining groups and attributeGroups > by restricting them. The text is very short and concise, for instance for groups: 6 Within the [children], for each <group> the appropriate case among the following must be true: 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: 6.1.1 It must have exactly one such group. 6.1.2 The ·actual value· of both that group's minOccurs and maxOccurs [attribute] must be 1 (or ·absent·). 6.2 If it has no such self-reference, then all of the following must be true: 6.2.1 The ·actual value· of its own name attribute plus target namespace must successfully ·resolve· to a model group definition in I. 6.2.2 The {model group} of the model group definition which corresponds to it per XML Representation of Model Group Definition Schema Components (§3.7.2) must be a ·valid restriction· of the {model group} of that model group definition in I, as defined in Particle Valid (Restriction) (§3.9.6). I wonder it it's sufficient to describe group extension. For instance: <xs:redefine schemaLocation="bar.xsd"> <xs:group name="foo"> <xs:sequence> <xs:group ref="foo" minOccurs="0"/> <xs:element ref="bar"/> </xs:sequence> </xs:group> </xs:redefine> is forbidden, but what about: <xs:redefine schemaLocation="bar.xsd"> <xs:group name="foo"> <xs:sequence> <xs:sequence minOccurs="0"> <xs:group ref="foo"/> </xs:sequence> <xs:element ref="bar"/> </xs:sequence> </xs:group> </xs:redefine> which is equivalent? And even your: > <xs:redefine schemaLocation="..."> > > <xs:group name="foo"> > <xs:choice> > <xs:element ref="C" minOccurs="0" /> > <xs:group ref="foo" /> > </xs:choice> > </xs:group> > > </xs:redefine> has the effect to allow a content where none of the content of "foo" is mandatory which seems contrary to (what I have understood of) the philosophy of the redefinition which is to avoid that the applications are "too much surprised" by the redefinition. Cheers, Eric -- Rendez-vous à Paris pour le Forum XML. http://www.technoforum.fr/Pages/forumXML01/index.html ------------------------------------------------------------------------ Eric van der Vlist http://xmlfr.org http://dyomedea.com http://xsltunit.org http://4xt.org http://examplotron.org ------------------------------------------------------------------------
Received on Tuesday, 13 November 2001 12:35:21 UTC