- From: Sandy Gao <sandygao@ca.ibm.com>
- Date: Fri, 3 Feb 2006 09:53:03 -0500
- To: Joe Pallas <pallas@cs.stanford.edu>
- Cc: xmlschema-dev@w3.org
- Message-ID: <OF5E955881.4C1D9142-ON8525710A.00511916-8525710A.0051C6DB@ca.ibm.com>
> Now, it is certainly the case that ExtendedType's content is actually
> simple, not complex, ...
If you look at the mapping rules for complex types [1] ({content type} for
<complexContent> with <extension>), it's clear that the {content type} of
"ExtendedType" is element-only and a particle (clause 3.2.3).
> I looked at the complex type derivation constraints in the spec, and
> I couldn't find a violation.
Look at constraint "Derivation Valid (Extension)" [2], clause 1.4. This
clearly rules out the case where the base's {content type} is a simple
type definition (in your case "string") and the derived (extended) type
has {content type} element-only.
[1] http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#declare-type
[2] http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#cos-ct-extends
Thanks,
Sandy Gao
XML Parser Development, IBM Canada
(1-905) 413-3255
sandygao@ca.ibm.com
xmlschema-dev-request@w3.org wrote on 02/02/2006 04:35:39 PM:
>
> 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 14:53:07 UTC