W3C home > Mailing lists > Public > xmlschema-dev@w3.org > January 2007

RE: block="substitution"

From: Zafar Abbas <Zafar.Abbas@microsoft.com>
Date: Fri, 19 Jan 2007 13:58:27 -0800
Message-ID: <81BA5E955D6B4B4DB2F05075C345A5DE091F81FA@RED-MSG-42.redmond.corp.microsoft.com>
To: Michael Kay <mike@saxonica.com>, <xmlschema-dev@w3.org>

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

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
Received on Friday, 19 January 2007 21:59:26 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:56:11 UTC