- From: Michael Kay <mike@saxonica.com>
- Date: Thu, 16 Dec 2004 15:29:42 -0000
- To: <noah_mendelsohn@us.ibm.com>, "'Morris Matsa'" <mmatsa@us.ibm.com>
- Cc: <xmlschema-dev@w3.org>
> 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