blob: b199fb66fdf980ab23dea358233936729a983549 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' elementFormDefault="unqualified" xmlns:foo="http://anothernamespace.com" >
<xs:import namespace="http://www.secondSchema" schemaLocation="SecondSchema.xsd" />
<xs:element name="root" type="rootType" />
<xs:complexType name="rootType" >
<xs:sequence>
<xs:element name="attrTest" type="attrTestType" />
<xs:element name="eleTest" type="eleTestType" />
<xs:element name="simpleDerTest" type="simpleDerTestType" />
<xs:element name="complexTest" type="complexTestType" />
<xs:element name="complexDerTest" type="complexDerTestType" />
<xs:element name="unionTest" type="unionTest" />
<xs:element name="anonymousTest" >
<xs:complexType>
<xs:sequence>
<xs:element name="quantity">
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:maxExclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='size'>
<xs:simpleType>
<xs:union>
<xs:simpleType>
<xs:restriction base='xs:integer'/>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base='xs:string'/>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:element>
<xs:element ref="anonElement" />
</xs:sequence>
<xs:attribute name="partNum" >
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:maxExclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="xsiTypeTest" type="xsiTypeTestType" />
<xs:element name="anyTestPartial" type="anyTestPartialType" />
<xs:element name="anyTest" type="anyTestType" />
<xs:element name="anyTestAttr1" type="anyTestAttr1Type" />
<xs:element name="anyTestAttr2" type="anyTestAttr2Type" />
<xs:element name="anyTestMissing" type="anyTestType" />
<xs:element name="invalidTest" type="invalidTestType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="anyTestPartialType" >
<xs:sequence >
<xs:any namespace="http://www.w3.org/1999/xhtml" processContents="skip" />
<xs:any namespace="http://www.w3.org/1999/xhtml" processContents="lax" />
<xs:any namespace="http://www.secondSchema" processContents="lax" />
</xs:sequence>
<xs:anyAttribute namespace="http://www.w3.org/1999/xhtml" processContents="skip" />
</xs:complexType>
<xs:complexType name="anyTestType" >
<xs:sequence >
<xs:any namespace="http://www.secondSchema" processContents="lax"/>
<xs:any namespace="http://www.secondSchema" processContents="strict"/>
<xs:any namespace="http://www.secondSchema" processContents="strict"/>
</xs:sequence>
<xs:anyAttribute namespace="http://www.secondSchema" processContents="lax" />
</xs:complexType>
<xs:complexType name="anyTestAttr1Type" >
<xs:anyAttribute namespace="http://www.secondSchema" processContents="strict" />
</xs:complexType>
<xs:complexType name="anyTestAttr2Type" >
<xs:anyAttribute namespace="http://www.secondSchema" processContents="lax" />
</xs:complexType>
<xs:complexType name="invalidTestType" >
<xs:sequence >
<xs:element name="simple" type="stringDerivedType" />
<xs:element name="complex" type="baseComplex" />
<xs:element name="number" type="base" />
<xs:element name="complexXsi" type="baseComplex" />
<xs:element name="unionTest" type="uType" />
<xs:element name="invalidAttrTest" type="attrOnlyType" />
<xs:element name="missingAttrTest" type="attrOnlyType" />
<xs:element name="prohibitedAttrTest" type="prohibitedAttrType" />
</xs:sequence>
<xs:attribute name="simple" type="stringDerivedType" />
</xs:complexType>
<xs:complexType name="prohibitedAttrType" >
<xs:attribute name="attr" type="stringDerivedType" use="prohibited" />
</xs:complexType>
<xs:complexType name="attrOnlyType" >
<xs:attribute name="attr" type="stringDerivedType" use="required" />
</xs:complexType>
<xs:simpleType name="uType" >
<xs:union memberTypes="stringDerivedType" />
</xs:simpleType>
<xs:complexType name="xsiTypeTestType" >
<xs:sequence>
<xs:element name="number" type="base" maxOccurs="3"/>
<xs:element name="complexXsi" type="baseComplex" maxOccurs="3"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="baseComplex" >
<xs:sequence>
<xs:element name="a" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="level1Complex" >
<xs:complexContent >
<xs:extension base="baseComplex" >
<xs:sequence>
<xs:element name="b" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="level2Complex" >
<xs:complexContent >
<xs:extension base="level1Complex" >
<xs:sequence>
<xs:element name="c" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="base" >
<xs:restriction base="xs:decimal" >
<xs:maxExclusive value="100"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="level1" >
<xs:restriction base="base" >
<xs:maxExclusive value="75"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="level2" >
<xs:restriction base="level1" >
<xs:maxExclusive value="50"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="anonElement" >
<xs:simpleType >
<xs:restriction base="xs:decimal" >
<xs:maxExclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:complexType name="eleTestType" >
<xs:sequence >
<xs:element name="level1string" type="xs:string" />
<xs:element name="level1boolean" type="xs:boolean" />
<xs:element name="level1decimal" type="xs:decimal" />
<xs:element name="level1float" type="xs:float" />
<xs:element name="level1double" type="xs:double" />
<xs:element name="level1duration" type="xs:duration" />
<xs:element name="level1dateTime" type="xs:dateTime" />
<xs:element name="level1time" type="xs:time" />
<xs:element name="level1date" type="xs:date" />
<xs:element name="level1gYearMonth" type="xs:gYearMonth" />
<xs:element name="level1gYear" type="xs:gYear" />
<xs:element name="level1gMonthDay" type="xs:gMonthDay" />
<xs:element name="level1gDay" type="xs:gDay" />
<xs:element name="level1gMonth" type="xs:gMonth" />
<xs:element name="level1hexBinary" type="xs:hexBinary" />
<xs:element name="level1base64Binary" type="xs:base64Binary" />
<xs:element name="level1anyURI" type="xs:anyURI" />
<xs:element name="level1QName" type="xs:QName" />
<xs:element name="level1normalizedString" type="xs:normalizedString" />
<xs:element name="level1token" type="xs:token" />
<xs:element name="level1language" type="xs:language" />
<xs:element name="level1NMTOKEN" type="xs:NMTOKEN" />
<xs:element name="level1NMTOKENS" type="xs:NMTOKENS" />
<xs:element name="level1Name" type="xs:Name" />
<xs:element name="level1NCName" type="xs:NCName" />
<xs:element name="level1integer" type="xs:integer" />
<xs:element name="level1nonPositiveInteger" type="xs:nonPositiveInteger" />
<xs:element name="level1negativeInteger" type="xs:negativeInteger" />
<xs:element name="level1long" type="xs:long" />
<xs:element name="level1int" type="xs:int" />
<xs:element name="level1short" type="xs:short" />
<xs:element name="level1byte" type="xs:byte" />
<xs:element name="level1nonNegativeInteger" type="xs:nonNegativeInteger" />
<xs:element name="level1unsignedLong" type="xs:unsignedLong" />
<xs:element name="level1unsignedInt" type="xs:unsignedInt" />
<xs:element name="level1unsignedShort" type="xs:unsignedShort" />
<xs:element name="level1unsignedByte" type="xs:unsignedByte" />
<xs:element name="level1positiveInteger" type="xs:positiveInteger" />
<xs:element name="level1anyType" type="xs:anyType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="attrTestType" >
<xs:attribute name="anySimpleType" type="xs:anySimpleType" />
<xs:attribute name="string" type="xs:string" />
<xs:attribute name="boolean" type="xs:boolean" />
<xs:attribute name="decimal" type="xs:decimal" />
<xs:attribute name="float" type="xs:float" />
<xs:attribute name="double" type="xs:double" />
<xs:attribute name="duration" type="xs:duration" />
<xs:attribute name="dateTime" type="xs:dateTime" />
<xs:attribute name="time" type="xs:time" />
<xs:attribute name="date" type="xs:date" />
<xs:attribute name="gYearMonth" type="xs:gYearMonth" />
<xs:attribute name="gYear" type="xs:gYear" />
<xs:attribute name="gMonthDay" type="xs:gMonthDay" />
<xs:attribute name="gDay" type="xs:gDay" />
<xs:attribute name="gMonth" type="xs:gMonth" />
<xs:attribute name="hexBinary" type="xs:hexBinary" />
<xs:attribute name="base64Binary" type="xs:base64Binary" />
<xs:attribute name="anyURI" type="xs:anyURI" />
<xs:attribute name="QName" type="xs:QName" />
<xs:attribute name="normalizedString" type="xs:normalizedString" />
<xs:attribute name="token" type="xs:token" />
<xs:attribute name="language" type="xs:language" />
<xs:attribute name="NMTOKEN" type="xs:NMTOKEN" />
<xs:attribute name="NMTOKENS" type="xs:NMTOKENS" />
<xs:attribute name="Name" type="xs:Name" />
<xs:attribute name="NCName" type="xs:NCName" />
<xs:attribute name="ID" type="xs:ID" />
<xs:attribute name="IDREF" type="xs:IDREF" />
<xs:attribute name="IDREFS" type="xs:IDREFS" />
<xs:attribute name="integer" type="xs:integer" />
<xs:attribute name="nonPositiveInteger" type="xs:nonPositiveInteger" />
<xs:attribute name="negativeInteger" type="xs:negativeInteger" />
<xs:attribute name="long" type="xs:long" />
<xs:attribute name="int" type="xs:int" />
<xs:attribute name="short" type="xs:short" />
<xs:attribute name="byte" type="xs:byte" />
<xs:attribute name="nonNegativeInteger" type="xs:nonNegativeInteger" />
<xs:attribute name="unsignedLong" type="xs:unsignedLong" />
<xs:attribute name="unsignedInt" type="xs:unsignedInt" />
<xs:attribute name="unsignedShort" type="xs:unsignedShort" />
<xs:attribute name="unsignedByte" type="xs:unsignedByte" />
<xs:attribute name="positiveInteger" type="xs:positiveInteger" />
<xs:attribute name="defaultString" type="xs:string" default="hello" />
<xs:attribute name="defaultInt" type="xs:integer" default="12" />
</xs:complexType>
<xs:complexType name="simpleDerTestType" >
<xs:sequence>
<xs:element name="decimalDerived" type="decimalDerivedType" />
<xs:element name="stringDerived" type="stringDerivedType" />
</xs:sequence>
<xs:attribute name="decimalDerived" type="decimalDerivedType" />
<xs:attribute name="stringDerived" type="stringDerivedType" />
</xs:complexType>
<xs:simpleType name="stringDerivedType" >
<xs:restriction base="xs:string" >
<xs:pattern value="hello"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="decimalDerivedType" >
<xs:restriction base="xs:decimal" >
<xs:maxExclusive value="100"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="complexTestType" >
<xs:sequence>
<xs:element name="a" type="xs:string"/>
<xs:element name="b" type="stringDerivedType"/>
<xs:element name="c" type="decimalDerivedType"/>
</xs:sequence>
<xs:attribute name="a" type="xs:string" />
<xs:attribute name="b" type="stringDerivedType" />
<xs:attribute name="c" type="decimalDerivedType" />
</xs:complexType>
<xs:complexType name="complexDerTestType" >
<xs:complexContent >
<xs:extension base="complexTestType" >
<xs:sequence>
<xs:element name="d" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="unionTestType" >
<xs:union memberTypes="decimalDerivedType stringDerivedType xs:decimal xs:string" />
</xs:simpleType>
<xs:complexType name="unionTest" >
<xs:sequence >
<xs:element name="testEle" maxOccurs="4" type="unionTestType" />
<xs:element name="testEle2" maxOccurs="4" >
<xs:complexType >
<xs:attribute name="testAttr" type="unionTestType" />
<xs:attribute name="testAttr2" type="unionTestType" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="unionTest2" >
<xs:sequence >
<xs:element name="testEle" maxOccurs="4" >
<xs:complexType >
<xs:simpleContent >
<xs:extension base="unionTestType" >
<xs:attribute name="testAttr" type="unionTestType" />
</xs:extension >
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="testtype2" >
<xs:sequence>
<xs:element name="poo" type="xs:string"/>
</xs:sequence>
<xs:attribute name="a" type="xs:IDREF" />
<xs:attribute name="b" type="xs:ID" />
<xs:attribute name="c" type="xs:string" />
</xs:complexType>
</xs:schema>