W3C home > Mailing lists > Public > xmlschema-dev@w3.org > January 2003

Re: infinite loop

From: Jeni Tennison <jeni@jenitennison.com>
Date: Fri, 10 Jan 2003 14:33:43 +0000
Message-ID: <19618932813.20030110143343@jenitennison.com>
To: "Jeff Rafter" <jeffrafter@defined.net>
CC: xmlschema-dev@w3.org

Hi Jeff,

> I could be horribly confused (<confession type="admitting to being
> away from XML Schemas for a while"/>) but I thought by the following
> logic it was needed:
>
> Section 3.9 (http://www.w3.org/TR/xmlschema-1/#cParticles)
> specifies the details for Particles. Element declarations are
> Particles and do "contribute to the definition of content models".
> With that established (though I don't think it was in dispute : )) I
> jump down to 3.9.6 Constraints on Particle Schema Components
> (http://www.w3.org/TR/xmlschema-1/#coss-particle) where it says:
>
>     "All particles (see Particles (3.9)) must satisfy the following
> constraints"
>
> Then we get a list of Particle constraints that include Particle
> Correct, rules for extension and restriction (which reference other
> rules), Ocurrence Range OK, more derivation rules, and finally
> Particle Emptiable. I think that the rule is intended to apply to
> all particles not just derivations (though it is additionally
> referenced there). It functions similarly to the Occurence Range OK
> rule-- which is also sandwiched in a strange spot-- but is
> implemented by several XML Schema editors/validators. I think the
> rec is saying "All particles...(among other things)... must be
> emptiable".

I think that you've overlooked a little paragraph that appears between
the Particle Correct Schema Component Constraint (SCC) and the
Particle Valid (Extension) SCC. Between these two SCCs, it says:

  "The following constraints define relations appealed to elsewhere in
   this specification."

In other words, the only SCC that applies to all particles is the
Particle Correct SCC. The other SCCs in that section just act as
definitions that are used elsewhere in the spec. So, for example, when
a constraint wants to say "if the particle is emptiable then..." then
it can refer to the common definition of what it means for a particle
to be emptiable by pointing to the Particle Emptiable SCC.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/
Received on Friday, 10 January 2003 09:33:53 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:35 GMT