- From: <bugzilla@jessica.w3.org>
- Date: Fri, 27 Apr 2012 15:02:52 +0000
- To: www-xml-schema-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16874 Summary: Change in meaning of final="#all" on elements between 1.0 and 1.1 Product: XML Schema Version: 1.1 only Platform: PC OS/Version: Windows NT Status: NEW Severity: normal Priority: P2 Component: Structures: XSD Part 1 AssignedTo: David_E3@VERIFONE.com ReportedBy: pwalmsley@datypic.com QAContact: www-xml-schema-comments@w3.org CC: cmsmcq@blackmesatech.com In version 1.0, there was the following paragraph (in section 3.3.1): "An empty {substitution group exclusions} allows a declaration to be nominated as the {substitution group affiliation} of other element declarations having the same {type definition} or types derived therefrom. The explicit values of {substitution group exclusions} rule out element declarations having types which are extensions or restrictions respectively of {type definition}. If both values are specified, then the declaration may not be nominated as the {substitution group affiliation} of any other declaration." The last sentence of this paragraph says that if final="#all", or final="restriction extension", then the declaration may not be the head of a substitution group, period. In version 1.1, the equivalent paragraph is: "An empty {substitution group exclusions} allows a declaration to be named in the {substitution group affiliations} of other element declarations having the same declared {type definition} or some type ·derived· therefrom. The explicit values of {substitution group exclusions}, extension or restriction, rule out element declarations having types whose derivation from {type definition} involves any extension steps, or restriction steps, respectively. " The last sentence has been removed, so it seems to mean that if final="#all" or final="restriction extension", the members cannot have types that are derived by restriction or extension from the head, but it is perfectly OK to have members that have the exact same type as the head. I can see why such a change would be made; it doesn't make sense to have "restriction extension" mean anything more than just the union of what "restriction" and "extension" would mean individually. But this change is backward-incompatible and doesn't appear to be listed in Appendix G, so I wanted to confirm that it was intentional. If so, it should be added to Appendix G. Also, I am surprised to not find a more formal definition of what the "final" attribute means for elements. Section 3.3.6.1 says "subject to the blocking keywords in M.{substitution group exclusions}" but I don't see where it describes exactly what those keywords mean, except in the paragraph quoted above, which is somewhat informal. By contrast, for example, {disallowed substitutions} has a paragraph informally describing it, but also has a clause in section 3.3.6.3 formally saying what it means if it contains the keyword "substitution". -- Configure bugmail: https://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 Friday, 27 April 2012 15:03:00 UTC