W3C home > Mailing lists > Public > xmlschema-dev@w3.org > May 2009

"redefine" attribute allowed when deriving by extension?

From: Gert Driesen <gert.driesen@telenet.be>
Date: Thu, 21 May 2009 11:41:53 +0200
To: <xmlschema-dev@w3.org>
Message-ID: <000501c9d9f8$5f924cb0$1eb6e610$@driesen@telenet.be>

I'm sorry if this has been answered before (or if the answer should've been
obvious), but can someone tell me if the following XML Schema should be
considered valid:

<xs:schema xmlns="foo" xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="foo" id="foo">
	<xs:element name="Foo" type="FooType" />
	<xs:element name="Bar" type="BarType" />
	<xs:complexType name="FooType">
		<xs:attribute name="name" type="xs:string" use="optional"/>
	<xs:complexType name="BarType">
			<xs:extension base="FooType">
				<xs:attribute name="name" type="xs:string"

Is it allowed to override/redefine an attribute of a base type when deriving
by extension?

The reason I'm asking this is because I've noticed that several
implementations expose a different behavior here:

Altova XML Spy 2009:
Does not allow attribute to be "redefined" in the derived type.

Allows attribute to be "redefined" if its use and type match the attribute
the base type.

Microsoft .NET:
Allows attribute to be "redefined".

Oracle Service Bus:
Allows attribute to be "redefined".

Any feedback is appreciated.

Received on Friday, 22 May 2009 06:12:21 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:15:51 UTC