<?xml version="1.0"?>
<!--

    Copyright (C) 2006 W3C (R) (MIT ERCIM Keio), All Rights Reserved.
    W3C liability, trademark and document use rules apply.

    http://www.w3.org/Consortium/Legal/ipr-notice
    http://www.w3.org/Consortium/Legal/copyright-documents

    $Header: /w3ccvs/WWW/2002/ws/databinding/examples/6/05/examples.xsd,v 1.17 2006/09/05 15:06:46 pdowney Exp $

-->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.w3.org/2002/ws/databinding/patterns/6/05/" xmlns:e="http://www.w3.org/2002/ws/databinding/examples/6/05/" xmlns:ex="http://www.w3.org/2002/ws/databinding/examples/6/05/" targetNamespace="http://www.w3.org/2002/ws/databinding/examples/6/05/" elementFormDefault="qualified" attributeFormDefault="unqualified">
   <xs:element name="anySimpleTypeElement" type="xs:anySimpleType"/>
   <xs:element name="anyTypeElement" type="xs:anyType"/>
   <xs:import namespace="http://www.w3.org/2001/XMLSchema"/>
   <xs:element name="importSchema" type="xs:string"/>
   <xs:annotation>
      <xs:documentation xml:lang="en">Schema Level Documentation</xs:documentation>
   </xs:annotation>
   <xs:element name="documentationElement" type="xs:string">
      <xs:annotation>
         <xs:documentation xml:lang="en">This is a string Element</xs:documentation>
      </xs:annotation>
   </xs:element>
   <xs:element name="stringElement" type="xs:string"/>
   <xs:attribute name="stringAttribute" type="xs:string"/>
   <xs:element name="booleanElement" type="xs:boolean"/>
   <xs:attribute name="booleanAttribute" type="xs:boolean"/>
   <xs:element name="decimalElement" type="xs:decimal"/>
   <xs:element name="floatElement" type="xs:float"/>
   <xs:element name="doubleElement" type="xs:double"/>
   <xs:element name="durationElement" type="xs:duration"/>
   <xs:element name="dateTimeElement" type="xs:dateTime"/>
   <xs:element name="timeElement" type="xs:time"/>
   <xs:element name="dateElement" type="xs:date"/>
   <xs:element name="gYearMonthElement" type="xs:gYearMonth"/>
   <xs:element name="gYearElement" type="xs:gYear"/>
   <xs:element name="gMonthDayElement" type="xs:gMonthDay"/>
   <xs:element name="gDayElement" type="xs:gDay"/>
   <xs:element name="gMonthElement" type="xs:gMonth"/>
   <xs:element name="hexBinaryElement" type="xs:hexBinary"/>
   <xs:element name="base64BinaryElement" type="xs:base64Binary"/>
   <xs:element name="anyURIElement" type="xs:anyURI"/>
   <xs:element name="QNameElement" type="xs:QName"/>
   <xs:element name="normalizedStringElement" type="xs:normalizedString"/>
   <xs:element name="tokenElement" type="xs:token"/>
   <xs:element name="languageElement" type="xs:language"/>
   <xs:element name="NMTOKENElement" type="xs:NMTOKEN"/>
   <xs:element name="NMTOKENSElement" type="xs:NMTOKENS"/>
   <xs:element name="NameElement" type="xs:Name"/>
   <xs:element name="NCNameElement" type="xs:NCName"/>
   <xs:element name="IDElement" type="xs:ID"/>
   <xs:element name="IDREFElement" type="xs:IDREF"/>
   <xs:element name="IDREFSElement" type="xs:IDREFS"/>
   <xs:element name="ENTITYElement" type="xs:ENTITY"/>
   <xs:element name="ENTITIESElement" type="xs:ENTITIES"/>
   <xs:element name="integerElement" type="xs:integer"/>
   <xs:element name="nonPositiveIntegerElement" type="xs:nonPositiveInteger"/>
   <xs:element name="negativeIntegerElement" type="xs:negativeInteger"/>
   <xs:element name="longElement" type="xs:long"/>
   <xs:element name="intElement" type="xs:int"/>
   <xs:attribute name="intAttribute" type="xs:int"/>
   <xs:element name="shortElement" type="xs:short"/>
   <xs:element name="byteElement" type="xs:byte"/>
   <xs:element name="nonNegativeIntegerElement" type="xs:nonNegativeInteger"/>
   <xs:element name="unsignedLongElement" type="xs:unsignedLong"/>
   <xs:element name="unsignedIntElement" type="xs:unsignedInt"/>
   <xs:element name="unsignedShortElement" type="xs:unsignedShort"/>
   <xs:element name="unsignedByteElement" type="xs:unsignedByte"/>
   <xs:element name="positiveIntegerElement" type="xs:positiveInteger"/>
   <xs:element name="beatle" type="ex:Beatle"/>
   <xs:simpleType name="Beatle">
      <xs:restriction base="xs:string">
         <xs:enumeration value="John"/>
         <xs:enumeration value="Paul"/>
         <xs:enumeration value="George"/>
         <xs:enumeration value="Stuart"/>
         <xs:enumeration value="Pete"/>
         <xs:enumeration value="Ringo"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="intEnumeration" type="ex:IntEnumeration"/>
   <xs:simpleType name="IntEnumeration">
      <xs:restriction base="xs:int">
         <xs:enumeration value="2"/>
         <xs:enumeration value="3"/>
         <xs:enumeration value="5"/>
         <xs:enumeration value="7"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="shortEnumeration" type="ex:ShortEnumeration"/>
   <xs:simpleType name="ShortEnumeration">
      <xs:restriction base="xs:short">
         <xs:enumeration value="7"/>
         <xs:enumeration value="11"/>
         <xs:enumeration value="13"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="longEnumeration" type="ex:LongEnumeration"/>
   <xs:simpleType name="LongEnumeration">
      <xs:restriction base="xs:long">
         <xs:enumeration value="9152052"/>
         <xs:enumeration value="7816230"/>
         <xs:enumeration value="7235733"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="doubleEnumeration" type="ex:DoubleEnumeration"/>
   <xs:simpleType name="DoubleEnumeration">
      <xs:restriction base="xs:double">
         <xs:enumeration value="1267.43233E12"/>
         <xs:enumeration value="7234.34541E12"/>
         <xs:enumeration value="5733.65565E12"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="integerEnumeration" type="ex:IntegerEnumeration"/>
   <xs:simpleType name="IntegerEnumeration">
      <xs:restriction base="xs:integer">
         <xs:enumeration value="4000000"/>
         <xs:enumeration value="5000000"/>
         <xs:enumeration value="6000000"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="decimalEnumeration" type="ex:DecimalEnumeration"/>
   <xs:simpleType name="DecimalEnumeration">
      <xs:restriction base="xs:decimal">
         <xs:enumeration value="+1000.0001"/>
         <xs:enumeration value="-1000.0001"/>
         <xs:enumeration value="1000.0002"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="floatEnumeration" type="ex:FloatEnumeration"/>
   <xs:simpleType name="FloatEnumeration">
      <xs:restriction base="xs:float">
         <xs:enumeration value="1267.43233E12"/>
         <xs:enumeration value="7234.34541E12"/>
         <xs:enumeration value="5733.65565E12"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="nonNegativeIntegerEnumeration" type="ex:NonNegativeIntegerEnumeration"/>
   <xs:simpleType name="NonNegativeIntegerEnumeration">
      <xs:restriction base="xs:nonNegativeInteger">
         <xs:enumeration value="12"/>
         <xs:enumeration value="24"/>
         <xs:enumeration value="33"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="positiveIntegerEnumeration" type="ex:PositiveIntegerEnumeration"/>
   <xs:simpleType name="PositiveIntegerEnumeration">
      <xs:restriction base="xs:positiveInteger">
         <xs:enumeration value="12"/>
         <xs:enumeration value="24"/>
         <xs:enumeration value="33"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="unsignedLongEnumeration" type="ex:UnsignedLongEnumeration"/>
   <xs:simpleType name="UnsignedLongEnumeration">
      <xs:restriction base="xs:unsignedLong">
         <xs:enumeration value="11111111111111"/>
         <xs:enumeration value="22222222222222"/>
         <xs:enumeration value="33333333333333"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="unsignedIntEnumeration" type="ex:UnsignedIntEnumeration"/>
   <xs:simpleType name="UnsignedIntEnumeration">
      <xs:restriction base="xs:unsignedInt">
         <xs:enumeration value="1111111111"/>
         <xs:enumeration value="2222222222"/>
         <xs:enumeration value="3333333333"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="unsignedShortEnumeration" type="ex:UnsignedShortEnumeration"/>
   <xs:simpleType name="UnsignedShortEnumeration">
      <xs:restriction base="xs:unsignedShort">
         <xs:enumeration value="1111"/>
         <xs:enumeration value="2222"/>
         <xs:enumeration value="3333"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="collection" type="ex:Collection"/>
   <xs:complexType name="Collection">
      <xs:sequence>
         <xs:element name="name" type="xs:string"/>
         <xs:element name="shade" type="xs:string"/>
         <xs:element name="length" type="xs:int"/>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string"/>
      <xs:attribute name="inStock" type="xs:int"/>
   </xs:complexType>
   <xs:element name="minOccurs1" type="ex:MinOccurs1"/>
   <xs:complexType name="MinOccurs1">
      <xs:sequence>
         <xs:element name="minOccurs1item" type="xs:string" minOccurs="1"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="itemColors2" type="ex:ItemColors2"/>
   <xs:complexType name="ItemColors2">
      <xs:sequence>
         <xs:element name="itemColor" type="xs:string" minOccurs="2" maxOccurs="2"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="itemColors" type="ex:ItemColors"/>
   <xs:complexType name="ItemColors">
      <xs:sequence>
         <xs:element name="itemColor" type="xs:string" minOccurs="2" maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="ageDetails" type="ex:AgeDetails"/>
   <xs:complexType name="AgeDetails">
      <xs:sequence>
         <xs:element name="age" type="xs:short" maxOccurs="1" minOccurs="1"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="publications" type="ex:Publications"/>
   <xs:complexType name="Publications">
      <xs:sequence>
         <xs:element name="pubDate" type="xs:date" maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="summer" type="ex:Summer"/>
   <xs:complexType name="Summer">
      <xs:sequence>
         <xs:element name="mnth" type="xs:string" maxOccurs="4"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="premium" type="ex:Premium"/>
   <xs:complexType name="Premium">
      <xs:sequence>
         <xs:element name="amount" type="xs:decimal"/>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string"/>
      <xs:attribute name="currency" type="xs:string" use="optional"/>
   </xs:complexType>
   <xs:element name="discount" type="ex:Discount"/>
   <xs:complexType name="Discount">
      <xs:sequence>
         <xs:element name="percentage" type="xs:int"/>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string"/>
      <xs:attribute name="seasonal" type="xs:boolean" use="required"/>
   </xs:complexType>
   <xs:element name="survey" type="ex:Survey"/>
   <xs:complexType name="Survey">
      <xs:sequence>
         <xs:element name="fee" type="xs:decimal"/>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string"/>
      <xs:attribute name="currency" type="xs:string" fixed="GBP"/>
   </xs:complexType>
   <xs:element name="unorderedCollection" type="ex:UnorderedCollection"/>
   <xs:complexType name="UnorderedCollection">
      <xs:all>
         <xs:element name="name" type="xs:string"/>
         <xs:element name="shade" type="xs:string"/>
         <xs:element name="length" type="xs:int"/>
      </xs:all>
      <xs:attribute name="id" type="xs:string"/>
      <xs:attribute name="inStock" type="xs:int"/>
   </xs:complexType>
   <xs:element name="optionalMiddleName" type="ex:OptionalMiddleName"/>
   <xs:complexType name="OptionalMiddleName">
      <xs:sequence>
         <xs:element name="firstName" type="xs:string"/>
         <xs:element name="middleName" type="xs:string" minOccurs="0"/>
         <xs:element name="lastName" type="xs:string"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="nillableMiddleName" type="ex:NillableMiddleName"/>
   <xs:complexType name="NillableMiddleName">
      <xs:sequence>
         <xs:element name="firstName" type="xs:string"/>
         <xs:element name="middleName" type="xs:string" nillable="true"/>
         <xs:element name="lastName" type="xs:string"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="nillableOptionalMiddleName" type="ex:NillableOptionalMiddleName"/>
   <xs:complexType name="NillableOptionalMiddleName">
      <xs:sequence>
         <xs:element name="firstName" type="xs:string"/>
         <xs:element name="middleName" type="xs:string" minOccurs="0" nillable="true"/>
         <xs:element name="lastName" type="xs:string"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="fruit" type="ex:Fruit"/>
   <xs:complexType name="Fruit">
      <xs:choice>
         <xs:element name="apple" type="xs:int"/>
         <xs:element name="orange" type="xs:string"/>
         <xs:element name="banana" type="xs:int"/>
      </xs:choice>
   </xs:complexType>
   <xs:element name="jeansSize">
      <xs:simpleType>
         <xs:union memberTypes="sizebyno sizebystring"/>
      </xs:simpleType>
   </xs:element>
   <xs:simpleType name="sizebyno">
      <xs:restriction base="xs:positiveInteger">
         <xs:maxInclusive value="46"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="sizebystring">
      <xs:restriction base="xs:string">
         <xs:enumeration value="small"/>
         <xs:enumeration value="medium"/>
         <xs:enumeration value="large"/>
         <xs:enumeration value="x-large"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="UnionDateString">
      <xs:union memberTypes="xs:date xs:string"/>
   </xs:simpleType>
   <xs:element name="unionDateString" type="ex:UnionDateString"/>
   <xs:simpleType name="UnionSimpleDateString">
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:date"/>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string"/>
         </xs:simpleType>
      </xs:union>
   </xs:simpleType>
   <xs:element name="unionSimpleDateString" type="ex:UnionSimpleDateString"/>
   <xs:element name="nullEnumeration" type="ex:NullEnumeration"/>
   <xs:simpleType name="NullEnumeration">
      <xs:restriction base="xs:string">
         <xs:enumeration value=""/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="emptyComplexType">
      <xs:complexType/>
   </xs:element>
   <xs:element name="emptySequence">
      <xs:complexType>
         <xs:sequence/>
      </xs:complexType>
   </xs:element>
   <xs:element name="itemList" type="ex:ItemList"/>
   <xs:complexType name="ItemList">
      <xs:sequence>
         <xs:element name="item" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="nestedItemList" type="ex:NestedItemList"/>
   <xs:complexType name="NestedItem">
      <xs:sequence>
         <xs:element name="item" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="NestedItemList">
      <xs:sequence>
         <xs:element name="nestedItem" minOccurs="0" maxOccurs="unbounded" type="ex:NestedItem"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="mixedContent" type="ex:MixedContent"/>
   <xs:complexType name="MixedContent" mixed="true">
      <xs:sequence>
         <xs:element name="elem1" type="xs:string"/>
         <xs:element name="elem2" type="xs:string"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="constrainedIntType" type="ex:ConstrainedIntType"/>
   <xs:simpleType name="ConstrainedIntType">
      <xs:restriction base="xs:int">
         <xs:pattern value="\d{3}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="constrainedIntegerType" type="ex:ConstrainedIntegerType"/>
   <xs:simpleType name="ConstrainedIntegerType">
      <xs:restriction base="xs:integer">
         <xs:pattern value="[+\-]?([1-9][0-9]*)|0"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="constrainedLongType" type="ex:ConstrainedLongType"/>
   <xs:simpleType name="ConstrainedLongType">
      <xs:restriction base="xs:long">
         <xs:pattern value="\d{3}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="constrainedDecimalType" type="ex:ConstrainedDecimalType"/>
   <xs:simpleType name="ConstrainedDecimalType">
      <xs:restriction base="xs:decimal">
         <xs:pattern value="\d{4}\.\d{2}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="constrainedFloatType" type="ex:ConstrainedFloatType"/>
   <xs:simpleType name="ConstrainedFloatType">
      <xs:restriction base="xs:float">
         <xs:pattern value="\d{3}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="constrainedDoubleType" type="ex:ConstrainedDoubleType"/>
   <xs:simpleType name="ConstrainedDoubleType">
      <xs:restriction base="xs:double">
         <xs:pattern value="\d{3}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="constrainedShortType" type="ex:ConstrainedShortType"/>
   <xs:simpleType name="ConstrainedShortType">
      <xs:restriction base="xs:short">
         <xs:pattern value="\d{3}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="constrainedNonNegativeIntegerType" type="ex:ConstrainedNonNegativeIntegerType"/>
   <xs:simpleType name="ConstrainedNonNegativeIntegerType">
      <xs:restriction base="xs:nonNegativeInteger">
         <xs:pattern value="\d{3}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="constrainedPositiveIntegerType" type="ex:ConstrainedPositiveIntegerType"/>
   <xs:simpleType name="ConstrainedPositiveIntegerType">
      <xs:restriction base="xs:positiveInteger">
         <xs:pattern value="\d{3}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="constrainedUnsignedLongType" type="ex:ConstrainedUnsignedLongType"/>
   <xs:simpleType name="ConstrainedUnsignedLongType">
      <xs:restriction base="xs:unsignedLong">
         <xs:pattern value="\d{3}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="constrainedUnsignedIntType" type="ex:ConstrainedUnsignedIntType"/>
   <xs:simpleType name="ConstrainedUnsignedIntType">
      <xs:restriction base="xs:unsignedInt">
         <xs:pattern value="\d{3}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="constrainedUnsignedShortType" type="ex:ConstrainedUnsignedShortType"/>
   <xs:simpleType name="ConstrainedUnsignedShortType">
      <xs:restriction base="xs:unsignedShort">
         <xs:pattern value="\d{3}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="anyAttribute" type="ex:AnyAttribute"/>
   <xs:complexType name="AnyAttribute">
      <xs:sequence>
         <xs:element name="firstName" type="xs:string"/>
         <xs:element name="lastName" type="xs:string"/>
      </xs:sequence>
      <xs:anyAttribute processContents="lax"/>
   </xs:complexType>
   <xs:element name="customerName" type="ex:CustomerName"/>
   <xs:element name="firstName" type="xs:string"/>
   <xs:element name="lastName" type="xs:string"/>
   <xs:complexType name="CustomerName">
      <xs:sequence>
         <xs:element ref="ex:firstName"/>
         <xs:element ref="ex:lastName"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="clientName" type="ex:ClientName"/>
   <xs:attribute name="phoneNumber" type="xs:string"/>
   <xs:complexType name="ClientName">
      <xs:sequence>
         <xs:element name="firstName" type="xs:string"/>
         <xs:element name="lastName" type="xs:string"/>
      </xs:sequence>
      <xs:attribute ref="ex:phoneNumber"/>
   </xs:complexType>
   <xs:element name="clientDetails" type="ex:ClientDetails"/>
   <xs:complexType name="ClientDetails">
      <xs:sequence>
         <xs:element name="forename" type="xs:string"/>
         <xs:element name="surname" type="xs:string"/>
         <xs:element name="title" type="xs:string"/>
      </xs:sequence>
      <xs:attribute name="phone" type="xs:long"/>
      <xs:attribute name="title" type="xs:boolean"/>
   </xs:complexType>
   <xs:element name="extendedCollectionStrict" type="ex:ExtendedCollectionStrict"/>
   <xs:complexType name="ExtendedCollectionStrict">
      <xs:sequence>
         <xs:element name="firstName" type="xs:string"/>
         <xs:element name="lastName" type="xs:string"/>
         <xs:element name="extension" type="ex:StrictExtension" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="title" type="xs:string"/>
   <xs:element name="middleName" type="xs:string"/>
   <xs:complexType name="StrictExtension">
      <xs:sequence>
         <xs:any processContents="strict" minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="extendedCollectionLax" type="ex:ExtendedCollectionLax"/>
   <xs:complexType name="ExtendedCollectionLax">
      <xs:sequence>
         <xs:element name="firstName" type="xs:string"/>
         <xs:element name="lastName" type="xs:string"/>
         <xs:element name="extension" type="ex:LaxExtension" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="LaxExtension">
      <xs:sequence>
         <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="extendedCollectionSkip" type="ex:ExtendedCollectionSkip"/>
   <xs:complexType name="ExtendedCollectionSkip">
      <xs:sequence>
         <xs:element name="firstName" type="xs:string"/>
         <xs:element name="lastName" type="xs:string"/>
         <xs:element name="extension" type="ex:SkipExtension" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="SkipExtension">
      <xs:sequence>
         <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element xmlns="http://www.w3.org/2001/XMLSchema" name="stringElementDefaultNamespace" type="string"/>
   <xs:element name="restrictedStringMinLength" type="ex:RestrictedStringMinLength"/>
   <xs:simpleType name="RestrictedStringMinLength">
      <xs:restriction base="xs:string">
         <xs:minLength value="1"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="restrictedStringMaxLength" type="ex:RestrictedStringMaxLength"/>
   <xs:simpleType name="RestrictedStringMaxLength">
      <xs:restriction base="xs:string">
         <xs:maxLength value="12"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="restrictedStringMinMaxLength" type="ex:RestrictedStringMinMaxLength"/>
   <xs:simpleType name="RestrictedStringMinMaxLength">
      <xs:restriction base="xs:string">
         <xs:minLength value="12"/>
         <xs:maxLength value="15"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:element name="bareVector" type="ex:BareVector"/>
   <xs:complexType name="BareVector">
      <xs:sequence>
         <xs:element name="item1" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
         <xs:element name="item2" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
         <xs:element name="item3" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="inherited" type="ex:Inherited"/>
   <xs:complexType name="InheritedBase">
      <xs:sequence>
         <xs:element name="name" type="xs:string"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Inherited">
      <xs:complexContent>
         <xs:extension base="ex:InheritedBase">
            <xs:sequence>
               <xs:element name="description" type="xs:string"/>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:element name="assembly" type="ex:Assembly"/>
   <xs:complexType name="Assembly">
      <xs:sequence>
         <xs:element name="part" minOccurs="0" maxOccurs="unbounded" type="ex:Part"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="part" type="ex:Part"/>
   <xs:complexType name="Part">
      <xs:sequence>
         <xs:element name="number" type="xs:string"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Part2">
      <xs:complexContent>
         <xs:extension base="ex:Part">
            <xs:sequence>
               <xs:element name="description" type="xs:string"/>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:include schemaLocation="../ItemList/ItemList.xsd"/>
   <xs:element name="shoppingBasket" type="ex:ShoppingBasket"/>
   <xs:complexType name="ShoppingBasket">
      <xs:sequence>
         <xs:element name="shopping" type="ex:ItemList"/>
         <xs:element name="cost" type="xs:decimal"/>
      </xs:sequence>
   </xs:complexType>
   <xs:include schemaLocation="http://www.w3.org/2002/ws/databinding/examples/6/05/ItemList/ItemList.xsd"/>
   <xs:element name="shoppingBasket" type="ex:ShoppingBasket"/>
   <xs:complexType name="ShoppingBasket">
      <xs:sequence>
         <xs:element name="shopping" type="ex:ItemList"/>
         <xs:element name="cost" type="xs:decimal"/>
      </xs:sequence>
   </xs:complexType>
   <xs:include schemaLocation="http://www.w3.org/2002/ws/databinding/examples/6/05/ItemList/ItemList.xsd"/>
   <xs:element name="shoppingBasket" type="ex:ShoppingBasket"/>
   <xs:complexType name="ShoppingBasket">
      <xs:sequence>
         <xs:element name="shopping" type="ex:ItemList"/>
         <xs:element name="cost" type="xs:decimal"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="simpleTypeAttributes">
      <xs:simpleContent>
         <xs:extension base="xs:string">
            <xs:attribute name="a1" type="xs:string"/>
            <xs:attribute name="a2" type="xs:string"/>
         </xs:extension>
      </xs:simpleContent>
   </xs:complexType>
</xs:schema>

