- From: Priscilla Walmsley <priscilla@walmsley.com>
- Date: Fri, 10 Oct 2003 13:35:58 -0400
- To: "'Henry S. Thompson'" <ht@cogsci.ed.ac.uk>, "'Dare Obasanjo'" <dareo@microsoft.com>
- Cc: "'Hugh Wallis'" <hugh_wallis@hyperion.com>, <xmlschema-dev@w3.org>, "'Rob Blake'" <robblake@microsoft.com>
Hmmm.... I'm not sure that 2.2.2.1 is true. The sequence _itself_ has min/maxOccurs of 1, but the rule says: "The particle within which this <sequence> appears has {max occurs} and {min occurs} of 1." The sequence in question is not within any particle, is it? If not, I don't see how the above sentence could be true. Thanks, Priscilla > -----Original Message----- > From: Henry S. Thompson [mailto:ht@cogsci.ed.ac.uk] > Sent: Friday, October 10, 2003 1:18 PM > To: Dare Obasanjo > Cc: Hugh Wallis; Priscilla Walmsley; xmlschema-dev@w3.org; Rob Blake > Subject: Re: Problem with .NET - Invalid particle derivation > by restriction > > > The more I thought about this, the less I thought I was right to let > .NET off the hook on this one, even though it's a subject that's been > discussed in great detail. Maybe it's just late on Friday and I'm not > too acute. . . > > Anyway, here goes -- Dare, why doesn't the argument go like this: > > Base particle (call it *B*, per Schema Component Constraint: Particle > Valid (Restriction) [1]): > > Particle[ > min: 1 > max: 1 > term: Model Group[compositor: sequence > particles: < Particle[min: 0 > max: unbounded > term: Wildcard[...] ] > ] > > Restricting particle (call it *R*, ditto): > > Particle[ > min: 1 > max: 1 > term: Model Group[compositor: sequence > particles: < Particle[min: 1 > max: 1 > term: ElementDecl[...] ], > Particle[min: 0 > max: 1 > term: ElementDecl[...] ] > ] > > > So lets work through Schema Component Constraint: Particle Valid > (Restriction) clause by clause: > > 1) They're not the same particle, so > 2.1) No substitution groups involved; > 2.2) Ignore pointless occurences > Aha! The top Particle of *B* is pointless: > 2.2.2.1 is True (its min and max are 1) > 2.2.2.2 is true, because 2.2.2.2.1 is true. > > So now we proceed to the table, with the *B* which results from > ignoring the top Particle of the old *B*, i.e. > > Particle[min: 0 > max: unbounded > term: Wildcard[...] ] > > So we take the box, which leads us to Schema Component Constraint: > Particle Derivation OK (All/Choice/Sequence:Any -- > NSRecurseCheckCardinality) [2], which is clearly going to work. > > So I claim you schema is actually OK, and .NET is wrong -- Dare? > > ht > > [1] http://www.w3.org/TR/xmlschema-1/#cos-particle-restrict > [2] http://www.w3.org/TR/xmlschema-1/#rcase-NSRecurseCheckCardinality > -- > Henry S. Thompson, HCRC Language Technology Group, > University of Edinburgh > Half-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/ > [mail really from me _always_ has this .sig -- mail without > it is forged spam] >
Received on Friday, 10 October 2003 13:37:44 UTC