W3C home > Mailing lists > Public > xmlschema-dev@w3.org > September 2006

RE: Type change during restriction

From: Michael Kay <mike@saxonica.com>
Date: Fri, 22 Sep 2006 09:31:22 +0100
To: "'Werner Guttmann'" <werner.guttmann@gmx.net>, <xmlschema-dev@w3.org>
Cc: 'Reinhard Pötz' <reinhard.poetz@gmx.net>
Message-ID: <003701c6de21$7c78dae0$6601a8c0@turtle>

> 
> when restricting a complex type, is it actually allowed (at 
> all) to change the type of an attribute defined at the 
> complex type to be restricted ?
> 

Yes, subject to the rules in
http://www.w3.org/TR/xmlschema-1/#derivation-ok-restriction

To paraphrase the rules:

2.1.1, 3 if there's an attribute that's required in the base type then it
must be present (and required) in the derived type

2.1.2 the type of the attribute in the derived type must be a restriction of
the type of the corresponding attribute in the base type

2.1.3 if the base type specifies a fixed value, then the derived type must
specify the same fixed value.

(Wouldn't it be nice if the spec were written like that, instead of saying
things like "what would have been the {name} and {target namespace} of the
{attribute declaration} of an attribute use in the set per clause 1 above
but for the ·actual value· of the use [attribute] of the relevant
<attribute> among the [children] of <restriction> being prohibited.")

Remember of course, that unlike child elements, attributes are automatically
inherited from the base type unless you explicitly exclude them (an
asymmetry I've always found very ugly).

Michael Kay
http://www.saxonica.com/
Received on Friday, 22 September 2006 08:31:43 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:55 GMT