- From: Eric van der Vlist <vdv@dyomedea.com>
- Date: Wed, 06 Feb 2002 09:52:19 +0100
- To: "Henry S. Thompson" <ht@cogsci.ed.ac.uk>, xmlschema-dev@w3.org
Hi Henry,
As mentioned by Jeni and Noah in their answers, it would be nice to get
a definitive answer and you are probably the only one who can give it :) !
Untill we get such an answer, my position is that since the result of
this restriction relies on something (the order of elements in a
substitution group) which is undefined, restriction of substitution
groups are themselves undefined and should be avoided as source of
potential interroperability issues.
Thanks
Eric
PS:IMO, the clean way to to fix the issue would be to suppress the
constraint about the order of the particles during restrictions of
xs:choice.
Eric van der Vlist wrote:
> Sorry to insist ;=) ... is the question that stupid or a FAQ?
>
> Eric
>
> Eric van der Vlist wrote:
>
>
>>Given that a substitution group is kind of equivalent to xs:choice:
>>
>>http://www.w3.org/TR/xmlschema-1/#cos-particle-restrict
>>
>>
>>2.1 Any top-level element declaration particle (in R or B) which is the
>>{substitution group affiliation} of one or more other element
>>declarations is treated as if it were a choice group whose {min occurs}
>>and {max occurs} are those of the particle, and whose {particles}
>>consists of one particle with {min occurs} and {max occurs} of 1 for the
>>top-level element declaration and for each of the declarations in its
>>·substitution group·.
>>
>>Does that mean that we can restrict substitution groups?
>>
>>If for instance I have:
>>
>><xs:element name="head"/>
>><xs:element name="a" substitutionGroup="head"/>
>><xs:element name="b" substitutionGroup="head"/>
>><xs:element name="c" substitutionGroup="head"/>
>>
>>and:
>>
>><xs:complexType name="base">
>> <xs:sequence>
>> <xs:element ref="head"/>
>> </xs:sequence>
>></xs:complexType>
>>
>>is
>>
>><xs:complexType name="derived">
>> <xs:complexContent>
>> <xs:restriction base="base">
>> <xs:sequence>
>> <xs:choice>
>> <xs:element ref="a"/>
>> <xs:element ref="b"/>
>> </xs:choice>
>> </xs:sequence>
>> </xs:restriction>
>> </xs:complexContent>
>></xs:complexType>
>>
>>a valid restriction?
>>
>>I guess not since it doesn't seem to match the condition for restricting
>>choices:
>>
>>Schema Component Constraint: Particle Derivation OK (Choice:Choice --
>>RecurseLax)
>>For a choice group particle to be a ·valid restriction· of another
>>choice group particle all of the following must be true:
>>1 R's occurrence range is a valid restriction of B's occurrence range as
>>defined by Occurrence Range OK (§3.9.6);
>>2 There is a complete ·order-preserving· functional mapping from the
>>particles in the {particles} of R to the particles in the {particles} of
>>B such that each particle in the {particles} of R is a ·valid
>>restriction· of the particle in the {particles} of B it maps to as
>>defined by Particle Valid (Restriction) (§3.9.6).
>>NOTE: Although the ·validation· semantics of a choice group does not
>>depend on the order of its particles, derived choice groups are required
>>to match the order of their base in order to simplify checking that the
>>derivation is OK.
>>
>>The question should then probably be which is the order of the elements
>>of a substitution group when they are mapped to a xs:choice during
>>validation (and how can this be used to restrict a substitution group) ?
>>
>>Thanks
>>
>>Eric
>>
>>
>
>
>
--
Rendez-vous a Paris pour mes formations XML/XSLT.
http://dyomedea.com/formation/
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
http://xsltunit.org http://4xt.org http://examplotron.org
------------------------------------------------------------------------
Received on Wednesday, 6 February 2002 03:52:52 UTC