- From: <bugzilla@wiggum.w3.org>
- Date: Fri, 08 Feb 2008 01:38:16 +0000
- To: www-xml-schema-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=3892
------- Comment #1 from cmsmcq@w3.org 2008-02-08 01:38 -------
Thank you very much; good catch. We will try to fix this problem.
The editors have thus far developed two proposed changes to the
paragraph in question; the originator of the issue (Daniel Barclay) or
others may have views on which to take, which would be helpful.
One relatively simple fix is to delete two phrases and insert two
others, so that instead of reading
{prohibited substitutions} determine whether an element
declaration appearing in a content model is prevented from
additionally validating element items with an xsi:type (§2.6.1)
attribute that identifies a complex type definition derived by
extension or restriction from this definition, or element items in
a ·substitution group· whose type definition is similarly derived:
If {prohibited substitutions} is empty, then all such
substitutions are allowed, otherwise, the derivation method(s) it
names are disallowed.
it reads
{prohibited substitutions} determine whether an element
declaration ED having this complex type definition as its {type
definition} is prevented from additionally validating element
items with an xsi:type (§2.6.1) attribute that identifies a
complex type definition derived by extension or restriction from
this definition, or element items whose ·governing element
declaration· is in ED's ·substitution group· with a {type
definition} similarly derived: If {prohibited substitutions} is
empty, then all such substitutions are allowed, otherwise, the
derivation method(s) it names are disallowed.
A second fix restructures the paragraph and eliminates the suggestion
that valid substitutability of types is used only in the two cases
mentioned (since that is no longer true).
The {prohibited substitutions} property of a complex type
definition T determines whether type definitions derived from T
are or are not ·validly substitutable· for T. Examples include
(but are not limited to) the substitution of another type
definition:
- as the ·governing type definition· of an element instance E,
when T is the ·selected type definition· of E (often, the
declared {type definition} of E's ·governing element
declaration·); this can occur when E specifies a type
definition using the xsi:type attribute; see xsi:type (§2.6.1);
- as the ·selected type definition· of an element instance E,
when T is the declared {type definition} of E's ·governing
element declaration·; this can occur when conditional type
assignment is used; see Type Alternatives (§3.12);
- as the ·governing type definition· of element instances
whose ·governing element declaration· is included in a
model group only ·implicitly·, by virtue of being included
in the ·substitution group· of some element declaration
included directly or indirectly in the model group,
whose declared {type definition} is T.
If {prohibited substitutions} is empty, then all such
substitutions are allowed; if it contains the keyword restriction,
then no type definition is ·validly substitutable· for T if
its derivation from T involves any restriction steps; if {prohibited
substitutions} contains the keyword extension, then no type definition
is ·validly substitutable· for T if its derivation from T involves
any extension steps.
Unfortunately, the second change makes the text longer. But at the
moment, at least, I don't see errors in it.
Received on Friday, 8 February 2008 01:43:58 UTC