← Prev in month ← Prev in thread
Next in thread → Next in month →

surprising xs:complexContent vs. xs:simpleContent

From
Webb Roberts <>
To
Date
2009-05-11T21:17:00Z
ID
<>
Thread
surprising xs:complexContent vs. xs:simpleContent
I was hoping to achieve some clarity what seems like a strange feature
of XML Schema 1.0.

It appears that XML Schema allows one to use xs:complexContent to
create complex types that have simple content, instead of having
complex content.  In the case below, the complex type "derivedType"
(which uses xs:complexContent) actually defines a complex type with
simple content (simple type "xs:integer").

It looks like the XML Schema specification uses a concept of
"effective content" that is defined without consideration of the use
of xs:simpleContent or xs:complexContent.

It certainly is not what I expected.  Does this look sensible to you?

This example validates under Xerces-J 2.9.1.

<complexType name="baseType">
  <simpleContent>
    <extension base="xsd:integer">
      <attribute name="baseAttribute" use="required"/>
    </extension>
  </simpleContent>
</complexType>

<complexType name="derivedType">
  <complexContent>
    <extension base="this:baseType">
      <sequence>
      </sequence>
      <attribute name="derivedAttribute" use="required"/>
    </extension>
  </complexContent>
</complexType>

<element name="derived" type="this:derivedType"/>

A valid instance of this schema:

<derived xmlns="http://ittl.gtri.gatech.edu/wr24/2009-05-11-1147"
      baseAttribute="hello"
      derivedAttribute="goodbye"
  >14</derived>
← Prev in month ← Prev in thread
Next in thread → Next in month →