- From: Dare Obasanjo <dareo@microsoft.com>
- Date: Mon, 22 Jul 2002 11:35:02 -0700
- To: "Jeni Tennison" <jeni@jenitennison.com>
- Cc: <xmlschema-dev@w3.org>
For some reason I thought there was ambiguity over whether the minOccurs of b1 was 0 since that of its parent sequence is 0 but I realize that is incorrect. :) -----Original Message----- From: Jeni Tennison [mailto:jeni@jenitennison.com] Sent: Mon 7/22/2002 11:12 AM To: Dare Obasanjo Cc: xmlschema-dev@w3.org Subject: Re: Is this valid? Hi Dare, > I thought that but would like to know if the REC allows it given the > rules in > > http://www.w3.org/TR/xmlschema-1/#rcase-RecurseAsIfGroup > and > http://www.w3.org/TR/xmlschema-1/#rcase-Recurse > > Specifically can > > <xs:sequence minOccurs="0"> > <xs:element name="a1"/> > <xs:element name="b1"/> > </xs:sequence> > > be restricted to > > <xs:element name="b1"/> > > given the wording [not intentions] of the REC? When you do a restriction from a sequence to an element particle, you treat the element particle as if it were a sequence, so you then have to look at the "Recurse" rule for mapping sequences to sequences: For an all or sequence group particle to be a ·valid restriction· of another group particle with the same {compositor} 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 all of the following must be true: 2.1 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). 2.2 All particles in the {particles} of B which are not mapped to by any particle in the {particles} of R are ·emptiable· as defined by Particle Emptiable (§3.9.6). The crux is #2. You're asking whether, given: (a1, b1)? -> (b1) there's a complete order-preserving functional mapping from a1 and b1 to b1. The answer is that there isn't. There are various possible mappings, all of which fall foul of #2. The best map is: a1 -> nothing b1 -> b1 and #2.2 says that if a particle in the base doesn't map on to anything (as a1 doesn't) then it must be emptiable. Emptiable means: [Definition:] For a particle to be emptiable one of the following must be true: 1 Its {min occurs} is 0. 2 Its {term} is a group and the minimum part of the effective total range of that group, as defined by Effective Total Range (all and sequence) (§3.8.6) (if the group is all or sequence) or Effective Total Range (choice) (§3.8.6) (if it is choice), is 0. http://www.w3.org/TR/xmlschema-1/#cos-group-emptiable and neither of those cases is true (the min occurs for the particle a1 is 1, and it isn't a group, it's an element particle). Do you read it differently? Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
Received on Monday, 22 July 2002 14:35:35 UTC