1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="ns" targetNamespace="ns">
<!-- Case 1: Legal complexContent extension (base complex content type is empty) -->
<xs:complexType name="word">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="external-word">
<xs:complexContent>
<xs:extension base="word">
<xs:attribute name="other-language" default="italian"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- Case 2: Illegal complexContent extension with different content type -->
<xs:complexType name="personType" mixed="true">
<xs:sequence>
<xs:element name="firstName" type="xs:string"/>
<xs:element name="lastName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="extPersonType">
<xs:complexContent>
<xs:extension base="personType">
<xs:sequence>
<xs:element name="birthDate" type="xs:date"/>
<xs:element name="age" type="xs:short"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- Case 3: admitted complexContent extension from a simpleContent base -->
<xs:complexType name="derivedComplexContentType">
<xs:complexContent>
<xs:extension base="complexBaseExpression">
<xs:attribute name="resetTypeRef" type="xs:Name"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="unsignedBitExpression">
<xs:simpleContent>
<xs:extension base="complexBaseExpression"/>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="complexBaseExpression">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="dummy" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
|