RetroZilla/extensions/schema-validation/tests/schema.xsd
2015-10-20 23:03:22 -04:00

1133 lines
29 KiB
XML

<?xml version="1.0" ?>
<schema targetNamespace="http://www.mozilla.org/schema/test"
xmlns:test="http://www.mozilla.org/schema/test"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
attributeFormDefault="qualified"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://www.mozilla.org/schema/test_imported" schemaLocation="schema_imported.xsd" />
<simpleType name="integer-test-1">
<restriction base='integer'>
<totalDigits value="3"/>
<maxExclusive value="101"/>
<minExclusive value="5"/>
</restriction>
</simpleType>
<simpleType name="integer-test-2">
<restriction base='integer'>
<totalDigits value="3"/>
<maxInclusive value="2"/>
<minInclusive value="-40"/>
</restriction>
</simpleType>
<simpleType name="nonPositiveInteger-test-1">
<restriction base='nonPositiveInteger'>
<totalDigits value="3"/>
</restriction>
</simpleType>
<simpleType name="nonNegativeInteger-test-1">
<restriction base='nonNegativeInteger'>
<totalDigits value="3" />
<maxInclusive value="500" />
</restriction>
</simpleType>
<simpleType name="positiveInteger-test-1">
<restriction base='positiveInteger'>
<totalDigits value="3"/>
</restriction>
</simpleType>
<simpleType name="negativeInteger-test-1">
<restriction base='negativeInteger'>
<totalDigits value="3"/>
</restriction>
</simpleType>
<simpleType name='long-test-1'>
<restriction base='long'>
</restriction>
</simpleType>
<simpleType name='int-test-1'>
<restriction base='int'>
</restriction>
</simpleType>
<simpleType name='short-test-1'>
<restriction base='short'>
</restriction>
</simpleType>
<simpleType name='unsignedLong-test-1'>
<restriction base='unsignedLong'>
</restriction>
</simpleType>
<simpleType name='unsignedInt-test-1'>
<restriction base='unsignedInt'>
</restriction>
</simpleType>
<simpleType name='unsignedShort-test-1'>
<restriction base='unsignedShort'>
</restriction>
</simpleType>
<simpleType name='unsignedByte-test-1'>
<restriction base='unsignedByte'>
</restriction>
</simpleType>
<simpleType name="byte-test-1">
<restriction base='byte'>
</restriction>
</simpleType>
<simpleType name="byte-test-2">
<restriction base='byte'>
<totalDigits value="2"/>
<maxExclusive value="40"/>
<minExclusive value="-40"/>
</restriction>
</simpleType>
<simpleType name="byte-test-3">
<restriction base='byte'>
<maxInclusive value="40"/>
<minInclusive value="-40"/>
</restriction>
</simpleType>
<simpleType name="float-test-1">
<restriction base='float'>
<maxExclusive value="3.34"/>
<minExclusive value="0.98"/>
</restriction>
</simpleType>
<simpleType name="float-test-2">
<restriction base='float'>
<maxInclusive value="3.34"/>
<minInclusive value="-1.98"/>
</restriction>
</simpleType>
<simpleType name="float-test-3">
<restriction base="float">
<maxExclusive value="INF" />
<minInclusive value="-INF" />
</restriction>
</simpleType>
<simpleType name="double-test-1">
<restriction base='double'>
<maxExclusive value="3.34"/>
<minExclusive value="0.98"/>
</restriction>
</simpleType>
<simpleType name="double-test-2">
<restriction base='double'>
<maxInclusive value="3.34E45"/>
<minInclusive value="1.98e-13"/>
</restriction>
</simpleType>
<simpleType name="double-test-3">
<restriction base="double">
</restriction>
</simpleType>
<simpleType name="double-test-4">
<restriction base="double">
<maxExclusive value="INF" />
<minInclusive value="-INF" />
</restriction>
</simpleType>
<simpleType name="decimal-test-1">
<restriction base='decimal'>
</restriction>
</simpleType>
<simpleType name="decimal-test-2">
<restriction base='decimal'>
<maxExclusive value="220.343435"/>
<minExclusive value="100.34"/>
</restriction>
</simpleType>
<simpleType name="decimal-test-3">
<restriction base='decimal'>
<maxInclusive value="220.343435"/>
<minInclusive value="100.34"/>
</restriction>
</simpleType>
<simpleType name="decimal-test-4">
<restriction base='decimal'>
<totalDigits value="3"/>
<fractionDigits value="2"/>
</restriction>
</simpleType>
<simpleType name="string-test-1">
<restriction base='string'>
<length value="5"/>
</restriction>
</simpleType>
<simpleType name="string-test-2">
<restriction base='string'>
<minLength value="4"/>
<maxLength value="17"/>
</restriction>
</simpleType>
<simpleType name="string-test-3">
<restriction base='string'>
<enumeration value="test"/>
<enumeration value="test2"/>
</restriction>
</simpleType>
<simpleType name="boolean-test-1">
<restriction base='boolean'>
</restriction>
</simpleType>
<simpleType name="gday-test-1">
<restriction base='gDay'>
</restriction>
</simpleType>
<simpleType name="gday-test-2">
<restriction base='gDay'>
<maxExclusive value="---21"/>
<minExclusive value="---05"/>
</restriction>
</simpleType>
<simpleType name="gday-test-3">
<restriction base='gDay'>
<maxInclusive value="---21Z"/>
<minInclusive value="---05"/>
</restriction>
</simpleType>
<simpleType name="gmonth-test-1">
<restriction base='gMonth'>
</restriction>
</simpleType>
<simpleType name="gmonth-test-2">
<restriction base='gMonth'>
<maxExclusive value="--11Z"/>
<minExclusive value="--05"/>
</restriction>
</simpleType>
<simpleType name="gmonth-test-3">
<restriction base='gMonth'>
<maxInclusive value="--11"/>
<minInclusive value="--05"/>
</restriction>
</simpleType>
<simpleType name="gyear-test-1">
<restriction base='gYear'>
</restriction>
</simpleType>
<simpleType name="gyear-test-2">
<restriction base='gYear'>
<maxInclusive value="10000"/>
<minInclusive value="1900"/>
</restriction>
</simpleType>
<simpleType name="gyear-test-3">
<restriction base='gYear'>
<maxExclusive value="10000"/>
<minExclusive value="1900"/>
</restriction>
</simpleType>
<simpleType name="gyearmonth-test-1">
<restriction base='gYearMonth'>
</restriction>
</simpleType>
<simpleType name="gyearmonth-test-2">
<restriction base='gYearMonth'>
<maxExclusive value="10000-11Z"/>
<minExclusive value="1990-01Z"/>
</restriction>
</simpleType>
<simpleType name="gyearmonth-test-3">
<restriction base='gYearMonth'>
<maxInclusive value="10000-11Z"/>
<minInclusive value="1990-02Z"/>
</restriction>
</simpleType>
<simpleType name="gmonthday-test-1">
<restriction base='gMonthDay'>
</restriction>
</simpleType>
<simpleType name="gmonthday-test-2">
<restriction base='gMonthDay'>
<maxExclusive value="--08-03Z"/>
<minExclusive value="--02-21Z"/>
</restriction>
</simpleType>
<simpleType name="gmonthday-test-3">
<restriction base='gMonthDay'>
<maxInclusive value="--08-03Z"/>
<minInclusive value="--02-21Z"/>
</restriction>
</simpleType>
<simpleType name="datetime-test-1">
<restriction base='dateTime'>
</restriction>
</simpleType>
<simpleType name="datetime-test-2">
<restriction base='dateTime'>
<maxExclusive value="2004-02-18T12:21:03Z"/>
<minExclusive value="2001-02-18T12:21:03Z"/>
</restriction>
</simpleType>
<simpleType name="datetime-test-3">
<restriction base='dateTime'>
<maxInclusive value="2004-02-18T12:21:03Z"/>
<minInclusive value="2001-02-18T12:21:03Z"/>
</restriction>
</simpleType>
<simpleType name="date-test-1">
<restriction base='date'>
</restriction>
</simpleType>
<simpleType name="date-test-2">
<restriction base='date'>
<maxExclusive value="2004-02-18"/>
<minExclusive value="2001-02-18"/>
</restriction>
</simpleType>
<simpleType name="date-test-3">
<restriction base='date'>
<maxInclusive value="2004-02-18"/>
<minInclusive value="2001-02-18"/>
</restriction>
</simpleType>
<simpleType name="time-test-1">
<restriction base='time'>
</restriction>
</simpleType>
<simpleType name="time-test-2">
<restriction base='time'>
<minExclusive value="12:30:45"/>
<maxExclusive value="22:30:45"/>
</restriction>
</simpleType>
<simpleType name="time-test-3">
<restriction base='time'>
<minInclusive value="12:30:45"/>
<maxInclusive value="22:30:45"/>
</restriction>
</simpleType>
<simpleType name="duration-test-1">
<restriction base='duration'>
</restriction>
</simpleType>
<simpleType name="duration-test-2">
<restriction base='duration'>
<maxExclusive value="P5M"/>
<minExclusive value="P1M"/>
</restriction>
</simpleType>
<simpleType name="duration-test-3">
<restriction base='duration'>
<maxInclusive value="P5M"/>
<minInclusive value="P1M"/>
</restriction>
</simpleType>
<simpleType name="anyuri-test-1">
<restriction base='anyURI'>
</restriction>
</simpleType>
<simpleType name="anyuri-test-2">
<restriction base='anyURI'>
<maxLength value="50"/>
<minLength value="17"/>
</restriction>
</simpleType>
<simpleType name="anyuri-test-3">
<restriction base='anyURI'>
<length value="17"/>
</restriction>
</simpleType>
<simpleType name="base64-test-1">
<restriction base='base64Binary'>
</restriction>
</simpleType>
<simpleType name="base64-test-2">
<restriction base='base64Binary'>
<length value="14"/>
</restriction>
</simpleType>
<simpleType name="base64-test-3">
<restriction base='base64Binary'>
<maxLength value="14"/>
<minLength value="3"/>
</restriction>
</simpleType>
<simpleType name="hexbinary-test-1">
<restriction base='hexBinary'>
</restriction>
</simpleType>
<simpleType name="qname-test-1">
<restriction base='QName'>
<maxLength value="13"/>
<minLength value="3"/>
</restriction>
</simpleType>
<simpleType name="name-test-1">
<restriction base='Name'>
<maxLength value="13"/>
<minLength value="3"/>
</restriction>
</simpleType>
<simpleType name="ncname-test-1">
<restriction base='NCName'>
<maxLength value="13"/>
<minLength value="3"/>
</restriction>
</simpleType>
<simpleType name="id-test-1">
<restriction base='ID'>
<maxLength value="13"/>
<minLength value="3"/>
</restriction>
</simpleType>
<simpleType name="idref-test-1">
<restriction base='IDREF'>
<maxLength value="13"/>
<minLength value="3"/>
</restriction>
</simpleType>
<simpleType name="idrefs-test-1">
<restriction base='IDREFS'>
<maxLength value="13"/>
<minLength value="3"/>
</restriction>
</simpleType>
<simpleType name="nmtoken-test-1">
<restriction base='NMTOKEN'>
<maxLength value="13"/>
<minLength value="3"/>
</restriction>
</simpleType>
<simpleType name="nmtokens-test-1">
<restriction base='NMTOKENS'>
<maxLength value="13"/>
<minLength value="3"/>
</restriction>
</simpleType>
<simpleType name='better-us-zipcode'>
<restriction base='string'>
<pattern value='[0-9]{5}(-[0-9]{4})?'/>
</restriction>
</simpleType>
<simpleType name="list-test-1">
<list itemType="boolean"/>
</simpleType>
<simpleType name="list-test-2">
<list>
<simpleType>
<restriction base="integer">
<enumeration value="100" />
<enumeration value="4" />
<enumeration value="33" />
</restriction>
</simpleType>
</list>
</simpleType>
<simpleType name="union-test-1">
<union>
<simpleType>
<restriction base="integer"/>
</simpleType>
<simpleType>
<restriction base="string">
<enumeration value="N/A"/>
</restriction>
</simpleType>
</union>
</simpleType>
<simpleType name="TypeCode">
<restriction base="test:UrType">
<enumeration value="Applicanter"/>
<enumeration value="Applicant"/>
<enumeration value="Third_Party"/>
<enumeration value="Trustee"/>
<maxLength value="50"/>
</restriction>
</simpleType>
<simpleType name="UrType">
<restriction base="string">
</restriction>
</simpleType>
<simpleType name="IndividualRole">
<restriction base="test:TypeCode">
<enumeration value="Applicant"/>
<enumeration value="Third_Party"/>
<enumeration value="Trustee"/>
</restriction>
</simpleType>
<simpleType name='IndividualRoleList'>
<list itemType='test:IndividualRole'/>
</simpleType>
<simpleType name='IndividualRoleListType'>
<restriction base='test:IndividualRoleList'>
<maxLength value='4'/>
</restriction>
</simpleType>
<simpleType name='IndividualRoleListType2'>
<restriction base='test:IndividualRoleList'>
<length value='4'/>
</restriction>
</simpleType>
<simpleType name='IndividualRoleListType3'>
<restriction base='test:IndividualRoleList'>
<minLength value='4'/>
</restriction>
</simpleType>
<simpleType name="RoleUnion">
<union>
<simpleType>
<restriction base="test:IndividualRoleListType"/>
</simpleType>
<simpleType>
<restriction base="string">
<enumeration value="N/A"/>
</restriction>
</simpleType>
<simpleType>
<restriction base="string">
<maxLength value="4"/>
</restriction>
</simpleType>
</union>
</simpleType>
<simpleType name='IndividualRoleListType5'>
<restriction base='test:IndividualRoleList'>
<enumeration value='Applicant Trustee'/>
</restriction>
</simpleType>
<!-- complex types -->
<element name="foo" type="test:duration-test-2"/>
<attributeGroup name="attrgroup-1">
<attribute name="id" type="string" form="unqualified"/>
</attributeGroup>
<element name="transaction">
<complexType>
<sequence minOccurs="0">
<element name="date" type="date"/>
<element name="desc" type="string"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal"/>
</sequence>
</complexType>
</element>
<element name="balance">
<complexType>
<sequence>
<element ref="test:transaction" />
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="balance2">
<complexType>
<sequence>
<element name="transaction">
<complexType>
<sequence>
<element name="date" type="date"/>
<element name="desc" type="string"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal" minOccurs="0"/>
</sequence>
</complexType>
</element>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="balance3">
<complexType>
<sequence>
<element name="transaction">
<complexType>
<sequence>
<element name="date" type="date"/>
<element name="desc" type="string" minOccurs="0"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal" minOccurs="0"/>
</sequence>
</complexType>
</element>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="balance4">
<complexType>
<sequence>
<element name="transaction">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element name="date" type="date"/>
<element name="desc" type="string" minOccurs="0"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal" minOccurs="0"/>
</sequence>
</complexType>
</element>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="balance5">
<complexType>
<sequence>
<element name="transaction">
<complexType>
<sequence minOccurs="2" maxOccurs="4">
<element name="date" type="date"/>
<element name="desc" type="string" minOccurs="0"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal" minOccurs="0"/>
</sequence>
</complexType>
</element>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="balance6">
<complexType>
<sequence>
<element name="transaction">
<complexType>
<sequence>
<element name="date" type="date"/>
<element name="amount" type="decimal" minOccurs="0"/>
<element name="desc" type="string" minOccurs="0" maxOccurs="3"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal" minOccurs="0"/>
</sequence>
</complexType>
</element>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<attribute name="testAttr3" type="boolean" />
<attribute name="testAttr4" type="boolean"/>
<element name="balance7">
<complexType>
<sequence>
<element name="transaction">
<complexType>
<sequence>
<element name="date" type="date"/>
<element name="desc" type="string" minOccurs="0"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal" minOccurs="0"/>
</sequence>
<attribute name="testAttr" type="boolean" use="required"/>
<attribute name="testAttr2" type="boolean" use="optional" form="unqualified"/>
<attribute ref="test:testAttr3" use="optional"/>
<attribute ref="test:testAttr4" use="required"/>
</complexType>
</element>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="balance8">
<complexType>
<sequence>
<element name="transaction">
<complexType>
<sequence>
<element name="date" type="date"/>
<element name="desc" type="string" minOccurs="0"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal" minOccurs="0"/>
</sequence>
</complexType>
</element>
<sequence minOccurs="0" maxOccurs="unbounded">
<element name="name" type="string"/>
<element name="lastname" type="string" minOccurs="0"/>
</sequence>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="balance9">
<complexType>
<sequence>
<element name="transaction">
<complexType>
<sequence>
<element name="date" type="date"/>
<element name="desc" type="string" minOccurs="0"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal" minOccurs="0"/>
</sequence>
</complexType>
</element>
<sequence minOccurs="0" maxOccurs="unbounded">
<element name="name" type="string"/>
<element name="lastname" type="string" minOccurs="0"/>
</sequence>
<sequence>
<element name="test" type="string"/>
<element name="test2" type="string" />
</sequence>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="balance10">
<complexType>
<sequence>
<element name="transaction">
<complexType>
<sequence>
<element name="date" type="date"/>
<element name="desc" type="string" minOccurs="0"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal" minOccurs="0"/>
</sequence>
</complexType>
</element>
<sequence minOccurs="0" maxOccurs="unbounded">
<element name="name" type="string"/>
<element name="lastname" type="string" minOccurs="0"/>
</sequence>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="balance11">
<complexType>
<sequence>
<element name="transaction">
<complexType>
<sequence>
<element name="date" type="date"/>
<element name="desc" type="string" minOccurs="0"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal" minOccurs="0"/>
<element name="foopy">
<complexType>
<sequence minOccurs="2" maxOccurs="4">
<element ref="test:balance9"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="balance12">
<complexType>
<sequence>
<element name="transaction">
<complexType>
<choice minOccurs="1" maxOccurs="3">
<element name="amount2" type="decimal"/>
<sequence>
<element name="date" type="date"/>
<element name="desc" type="string" minOccurs="0"/>
<element name="withdraw" type="boolean"/>
<element name="amount" type="decimal" minOccurs="0"/>
</sequence>
<element name="date2" type="date"/>
</choice>
</complexType>
</element>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="date" type="date"/>
<element name="balance13">
<complexType>
<sequence>
<element ref="test:date"/>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<!-- Chilled -->
<simpleType name="chilledDecimal">
<restriction base="decimal">
<totalDigits value="5"/>
<fractionDigits value="2"/>
<minInclusive value="0"/>
</restriction>
</simpleType>
<simpleType name="milk">
<restriction base="string">
<enumeration value="full-cream"/>
<enumeration value="semi-skimmed"/>
<enumeration value="skimmed"/>
</restriction>
</simpleType>
<simpleType name="milk2">
<restriction base="test:milk">
<enumeration value="full-cream"/>
</restriction>
</simpleType>
<simpleType name="butter">
<restriction base="string">
<enumeration value="salted"/>
<enumeration value="non-salted"/>
</restriction>
</simpleType>
<element name="volume">
<complexType>
<simpleContent>
<extension base="test:chilledDecimal">
<attribute name="uom" fixed="litres" type="string" form="unqualified"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="weight">
<complexType>
<simpleContent>
<extension base="test:chilledDecimal">
<attribute name="uom" fixed="kg" type="string" form="unqualified"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="fridge">
<complexType>
<sequence>
<element name="contents">
<complexType>
<sequence>
<element name="dairyProduce" type="test:dairy_Produce" minOccurs="0"/>
</sequence>
</complexType>
</element>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<complexType name="dairy_Produce">
<sequence>
<element name="milk" minOccurs="1" maxOccurs="unbounded">
<complexType>
<sequence>
<element ref="test:volume"/>
</sequence>
<attribute name="type" type="test:milk" form="unqualified"/>
<attribute name="type2" type="test:milk2" use="optional" form="unqualified"/>
</complexType>
</element>
<element name="butter" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element ref="test:weight"/>
</sequence>
<attribute name="type" type="test:butter" form="unqualified"/>
</complexType>
</element>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
<element name="dairy" type="test:dairy_Produce"/>
<!-- xsd:all checks -->
<element name="name" type="string"/>
<element name="born" type="date"/>
<element name="dead" type="date"/>
<element name="author">
<complexType>
<all>
<element ref="test:name"/>
<element ref="test:born"/>
<element ref="test:dead" minOccurs="0"/>
</all>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="author-2">
<complexType>
<sequence>
<element ref="test:author"/>
<element ref="test:transaction"/>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="author-3">
<complexType>
<sequence>
<element ref="test:author" minOccurs="0"/>
<element ref="test:transaction"/>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<element name="author-4">
<complexType>
<all minOccurs="0">
<element ref="test:name"/>
<element ref="test:born"/>
<element ref="test:dead" minOccurs="0"/>
</all>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<!-- attr group -->
<attributeGroup name="attrgroup-2">
<attributeGroup ref="test:attrgroup-1"/>
<attribute name="test" type="boolean" use="optional"/>
</attributeGroup>
<element name="balance-attrgroup-1">
<complexType>
<sequence>
<element ref="test:transaction" />
</sequence>
<attributeGroup ref="test:attrgroup-2"/>
</complexType>
</element>
<!-- group -->
<group name="group-1">
<sequence>
<element ref="test:name"/>
<element ref="test:born"/>
<element ref="test:dead" minOccurs="0"/>
</sequence>
</group>
<element name="balance-group-1">
<complexType>
<sequence>
<group ref="test:group-1" />
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
</element>
<!-- deriviation by extension -->
<complexType name="deriv-base">
<sequence>
<element ref="test:name"/>
<element ref="test:born"/>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
<complexType name="deriv-ext-type-1">
<complexContent>
<extension base="test:deriv-base">
<sequence>
<element ref="test:dead"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="deriv-ext-1" id="deriv-ext-1-1" type="test:deriv-ext-type-1"/>
<!-- deriviation by restriction-->
<complexType name="deriv-res-base">
<sequence>
<element ref="test:name"/>
<element ref="test:born"/>
<element ref="test:dead" minOccurs="0"/>
</sequence>
<attribute name="id" type="string" form="unqualified" use="required"/>
</complexType>
<element name="deriv-res-1">
<complexType>
<complexContent>
<restriction base="test:deriv-res-base">
<sequence>
<element ref="test:name"/>
<element ref="test:born"/>
</sequence>
</restriction>
</complexContent>
</complexType>
</element>
<element name="deriv-res-2">
<complexType>
<complexContent>
<restriction base="test:deriv-res-base">
<sequence>
<element ref="test:name"/>
<element ref="test:born"/>
<element ref="test:dead"/>
</sequence>
</restriction>
</complexContent>
</complexType>
</element>
<!-- DERIVATION_EXTENSION_COMPLEX -->
<complexType name="personName">
<sequence>
<element name="title" type="string" minOccurs="0"/>
<element name="forename" type="string" minOccurs="0" maxOccurs="unbounded"/>
<element name="surname" type="string"/>
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
</complexType>
<complexType name="extendedName">
<complexContent>
<extension base="test:personName">
<sequence>
<element name="generation" type="string" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="deriv-ext-complex-1" type="test:extendedName"/>
<!-- DERIVATION_RESTRICTION_COMPLEX -->
<complexType name="simpleName">
<complexContent>
<restriction base="test:personName">
<sequence>
<element name="forename" type="string" minOccurs="1" maxOccurs="1"/>
<element name="surname" type="string"/>
</sequence>
</restriction>
</complexContent>
</complexType>
<element name="deriv-ext-restriction-1" type="test:simpleName"/>
<!-- EMPTY_CONTENT_COMPLEX -->
<complexType name="emptyContent">
<attributeGroup ref="test:attrgroup-1"/>
<attribute name="att1" type="string"/>
</complexType>
<element name="empty-complex-1" type="test:emptyContent" />
<complexType name="emptyContent2">
<sequence>
<element name="e1" type="string" minOccurs="0" />
</sequence>
<attributeGroup ref="test:attrgroup-1"/>
<attribute name="att1" type="string"/>
</complexType>
<element name="empty-complex-2" type="test:emptyContent2" />
</schema>