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 GMT
This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 16 March 2009 11:13:37 GMT