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>
Hi,

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>
	<xs:complexType name="BarType">
		<xs:complexContent>
			<xs:extension base="FooType">
				<xs:attribute name="name" type="xs:string"
use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
</xs:schema>

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.

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

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

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

Any feedback is appreciated.

Gert
Received on Friday, 22 May 2009 06:12:21 GMT

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