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

RE: Problem with .NET - Invalid particle derivation by restriction

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>
Message-ID: <001901c38f54$f7b64bd0$ef2efea9@WALMSLEYPH>

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 GMT

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