RE: block="substitution"

I agree with your analysis. The declaration of F just doesn't become a
member of the substitution group of E; the declaration itself is valid
per spec. But you are right that this looks more like an issue which is
better detected at schema compilation time as no one will ever be able
to substitute E with F.

-----Original Message-----
From: xmlschema-dev-request@w3.org [mailto:xmlschema-dev-request@w3.org]
On Behalf Of Michael Kay
Sent: Saturday, December 09, 2006 8:18 AM
To: xmlschema-dev@w3.org
Subject: block="substitution"


As far as I can see the following schema is valid:

<xsd:element name="E" type="A" block="substitution" />

<xsd:element name="F" type="A" substitutionGroup="E" />

The effect of the "block" is not to make the declaration of F invalid:
instead, it effectively causes the attribute substitutionGroup="E" to be
ignored, so that an instance that attempts to use F in place of E will
be
invalid.

Is this analysis correct? On the surface, this seems to be detecting an
error at run time that would be better detected at compile time.

Can someone explain the rationale?


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

Received on Friday, 19 January 2007 21:59:26 UTC