complexContent extending complexType with simpleContent: why not?

I got handed a schema that contains (stripped down to the bare  
essentials) this:

<schema targetNamespace="http://example.com/myExample"  
xmlns:tns="http://example.com/myExample" xmlns="http://www.w3.org/ 
2001/XMLSchema" elementFormDefault="qualified"  
attributeFormDefault="unqualified">

	<complexType name="BaseType" abstract="true">
		<simpleContent>
			<extension base="string">
				<attribute name="myAttr" use="optional"/>
			</extension>
		</simpleContent>
	</complexType>

	<complexType name="DerivedType">
		<simpleContent>
			<extension base="tns:BaseType"/>
		</simpleContent>
	</complexType>

	<complexType name="ExtendedType">
		<complexContent>
			<extension base="tns:DerivedType">
				<attribute name="anotherAttr" type="boolean" use="optional"/>
			</extension>
		</complexContent>
	</complexType>

</schema>

XSV complains about ExtendedType, saying: attempt to derive a complex  
basetype from a simple base: DerivedType.

Now, it is certainly the case that ExtendedType's content is actually  
simple, not complex, so simpleContent would be more appropriate.  But  
I can't figure out where in the rec it actually says that this is not  
legal.

I found a discussion of what seems to be exactly this issue in the  
archives.  The last word in that discussion was <http://lists.w3.org/ 
Archives/Public/xmlschema-dev/2002Aug/0059.html>, which said "I think  
you're right that this is legal."

I looked at the complex type derivation constraints in the spec, and  
I couldn't find a violation.  So, this may be bad style, but why is  
it rejected?

Thanks.
joe

Received on Friday, 3 February 2006 03:42:39 UTC