- From: <bugzilla@jessica.w3.org>
- Date: Tue, 20 Jul 2010 13:12:10 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=10207 Michael Kay <mike@saxonica.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mike@saxonica.com --- Comment #1 from Michael Kay <mike@saxonica.com> 2010-07-20 13:12:10 --- I have some sympathy with this: if the declaration of E is abstract, then an element named E shouldn't be attributed to that element declaration, and if it meets all the stated conditions then it only does so by accident. However, I have some concern about compatibility: this is an accident that can and does happen, for example if someone writes <element name="x"/> in the schema when they intended <element ref="x"/>, thus creating confusion between local and global element declarations, and I'm not convinced it's enough of a bug to justify changing the rules. If we follow this logic further we would start having to look at the "block" and "final" attributes to determine whether the element can validly appear as a member of the substitution group. That's surprisingly complex logic and I would really rather avoid it. Note that technically I think we are talking about potential rather than actual membership of the substitution group: from XSD 1.0: <quote> Element declarations are potential members of the substitution group, if any, identified by {substitution group affiliation}. Potential membership is transitive but not symmetric; an element declaration is a potential member of any group of which its {substitution group affiliation} is a potential member. Actual membership may be blocked by the effects of {substitution group exclusions} or {disallowed substitutions}, see below. </quote> Two specific points about comment #0: (a) "In both cases if the name of an abstract element is matched then ET is not defined." I don't follow the logic. Just because an element declaration is abstract doesn't mean it has no declared type. (b) "The substituted element is not abstract": it's not the element that is abstract, but the element declaration. The same criticism applies to the "existing proposed" text "If the substituted element is not nillable". I suggest changing rule 1 to "The name of the candidate node matches the specified ElementName or matches the name of an element declaration that is a potential member of the substitution group headed by an element named ElementName. Call this element declaration ED." and then using ED accordingly, for example "ED is not nillable". (The term "substituted element" is in any case very confusing: if sugar substitutes for honey then properly, sugar is "substituting" and honey is "substituted", though many people might say "I substituted sugar"). -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Tuesday, 20 July 2010 13:12:12 UTC