RE: UPA violation or not?

> Is there a subtlety in the example that I am missing?  It's 
> true that the 
> two particles have the same value for {term}, but that 
> doesn't make them the same particle. 

I think this is indeed the subtlety: the Thompson/Tobin algorithm doesn't
report this as a UPA violation because it is treating two element particles
that refer to the same element declaration as equivalent.

There's some comfort for this interpretation in the spec: "A content model
must be formed such that during .validation. of an element information item
sequence, the particle component contained directly, indirectly or
.implicitly. therein with which to attempt to .validate. each item in the
sequence in turn can be uniquely determined".

(Who wrote this stuff?)

-- it's the element declaration that's used to validate the item in the
sequence, not the particle itself, so identifying an element declaration
uniquely is sufficient to achieve the stated purpose.

-- the term "implicitly contains" is hyperlinked to the definition "A list
of particles implicitly contains an element declaration if a member of the
list contains that element declaration in its .substitution group.", which
suggests that element declarations as well as particles play a role here.
Although it says we're looking for unique particles, the "implicitly
contains" definition only works if we're actually looking for unique element
declarations. Normally this is a stronger constraint, because each element
particle refers to a set of element declarations (the substitution group);
but in this case it is a weaker constraint, because two particles refer to
the same declaration.

-- Appendix H confuses things even further by referring to "element
declaration particles".

Michael Kay
http://www.saxonica.com/

Received on Thursday, 16 December 2004 15:29:49 UTC