Re: Description of particles and terms in 2.2.3.2 confusing

On 23 Jul 2008, at 04:38 , Pete Cordell wrote:

>
> I'm reading through the latest XSD 1.1 draft and thought I'd send  
> in comments as I find them...

Thank you!

> In 2.2.3.2 I find the description of particles, terms and their  
> relationship confusing.  (I also wanted to remove the word "term"  
> that appears in "term in the grammar" because the section talks  
> about "term" later, and it seems best to avoid having the same word  
> mean different things in a similar context.)
>
> I'd therefore like to suggest the following re-wording:
>
> "A particle is either an element declaration, a wildcard or a model  
> group, plus occurrence constraints.  Particles describe element  
> content and contribute to .validation. as part of complex type  
> definition .validation., when they allow anywhere from zero to many  
> element information items or sequences thereof, depending on their  
> contents and occurrence constraints.
>
> [Definition:]  A Term is a property of a particle that represents  
> whether the particle is an element declaration, a wildcard or a  
> model group component.  Thus a particle consists of a Term together  
> with occurrence constraints.  All .Terms. are themselves .Annotated  
> Components.. [Definition:]  A basic term is an Element Declaration  
> or a Wildcard. [Definition:]  A basic particle is a Particle whose  
> {term} is a .basic term.."
>
> Is that still accurate?  If so I'll submit it to Bugzilla.

I think it's mostly still accurate; I am a bit nervous at the new
first sentence, which I fear some reader might misread as equating
particle and term, and I think the new definition of Term needs work,*
but this is a better start than some bug reports provide, so yes,
please feel free to add this to Bugzilla.

* Details, if it matters:  the spec tries to be consistent in speaking
about component-valued properties as if the one component were part
of the other.  There is prose somewhere that tries to make clear that
this is just for simplicity and the spec doesn't want to prescribe a
particular data representation for implementors, and for that matter
doesn't want to decide on the precise nature of the values of
component-valued properties even on the component abstraction layer  
which
the spec is defining, but for simplicity and consistency the story
we want to be telling is that the value of the {term} property
doesn't just indicate whether we are dealing with an element declaration
or a wildcard or a model group, but *is* that declaration, wildcard,
or group.  Also, we define the technical term "Term" so as to able
to say "the Term" instead of "the value of the {term} property"
or "the Element Declaration, Wildcard, or Model Group component (as
appropriate)", so strictly speaking the Term being defined needs to
be distinct from the property named {term}.

On the other hand, I don't mean to claim that the existing definition
is any better:  you are right that it needs to be replaced.

Thank you!

Michael Sperberg-McQueen

Received on Thursday, 24 July 2008 02:39:12 UTC