|
Base schemas
|
Container schemas
|
Sample application schemas
|
testsimpledc.xml | ||
| Parser | Result | Messages |
|---|---|---|
| XSV | Schema and instance accepted as valid | |
| Xerces | Schema and instance accepted as valid | |
| MSXML4 | Schema and instance accepted as valid | |
testqualifieddc.xml | ||
| XSV | Schema and instance accepted as valid | |
| Xerces | Schema dcterms.xsd rejected as invalid | [Error] dcterms.xsd:nnn:nn: src-ct.2: Complex Type Definition Representation Error for type 'xxxx'. When simpleContent is used, the base type must be a complexType whose content type is simple, or, only if extension is specified, a simple type. (where 'xxxx' is the name of a complexType corresponding to one of the encoding schemes.) |
| MSXML4 | Schema and instance accepted as valid | |
The schema dc.xsd defines a base complexType called SimpleLiteral:
<xs:complexType name="SimpleLiteral">
<xs:complexContent mixed="true">
<xs:restriction base="xs:anyType">
<xs:sequence>
<xs:any processContents="lax" minOccurs="0" maxOccurs="0"/>
</xs:sequence>
<xs:attribute ref="xml:lang" use="optional"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
Encoding schemes are represented as complexTypes derived from the SimpleLiteral complexType. For example, the complexType corresponding to the encoding scheme for "W3CDTF" is as follows:
<xs:complexType name="W3CDTF">
<xs:simpleContent>
<xs:restriction base="dc:SimpleLiteral">
<xs:simpleType>
<xs:union memberTypes="xs:gYear xs:gYearMonth xs:date xs:dateTime"/>
</xs:simpleType>
<xs:attribute ref="xml:lang" use="prohibited"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
This derivation of a complexType with simpleContent by restriction of a base complexType with complexContent is valid under section 3.4.6 of XML Schema Part 1: Structures, specifically item 5.1.2 of the section "Schema Component Constraint: Derivation Valid (Restriction, Complex)", because the base complexContent is mixed and emptiable.
This was confirmed by Henry Thompson, see e.g.
http://www.w3.org/2001/05/xmlschema-rec-comments#pfiSimpleContent
http://lists.w3.org/Archives/Public/xmlschema-dev/2002Oct/0005.html
http://lists.w3.org/Archives/Public/xmlschema-dev/2002Oct/0008.html
Conclusion: Xerces appears to be behaving incorrectly in rejecting this derivation.