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 Saturday, 9 December 2006 16:18:33 UTC