<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="ddl.xsl" type="text/xsl"?>
<xs:schema
       attributeFormDefault="unqualified"
       elementFormDefault="qualified"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:xf="http://www.w3.org/2002/xforms"
       targetNamespace="http://www.web21th.com/2009/dr/dbx"
       xmlns="http://www.web21th.com/2009/dr/dbx"
       xmlns:dbx="http://www.web21th.com/2009/dr/dbx">
 <xs:simpleType name="typeKey">
  <xs:restriction base="xs:decimal"/>
 </xs:simpleType>
 <xs:attribute name="keyID" type="dbx:typeKey"/>
 <xs:element name="dbx">
  <xs:complexType>
   <xs:sequence minOccurs="1" maxOccurs="1">
    <xs:element ref="clubs"/>
    <xs:element ref="persons"/>
   </xs:sequence>
  </xs:complexType>
  <xs:keyref name="pKeyRef" refer="dbx:personKey">
   <xs:selector xpath="*"/>
   <xs:field xpath="@refKeyID"/>
  </xs:keyref>
  <xs:key name="personKey">
   <xs:selector xpath="*/person"/>
   <xs:field xpath="@keyID"/>
  </xs:key>
 </xs:element>
 <xs:element name="person">
  <xs:complexType mixed="true">
   <xs:sequence>
    <xs:element name="firstName" type="xs:NMTOKEN"/>
    <xs:element name="lastName" type="xs:NMTOKEN"/>
   </xs:sequence>
   <xs:attribute ref="keyID" use="required"/>
  </xs:complexType>
 </xs:element>
 <xs:element name="member">
  <xs:complexType mixed="1">
   <xs:sequence maxOccurs="1">
    <xs:element name="date" type="xs:date" minOccurs="1"/>
    <xs:element name="role" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
    <xs:element name="contrib" type="xs:decimal" default="0" maxOccurs="1"/>
   </xs:sequence>
   <xs:attribute name="refKeyID" use="required" type="dbx:typeKey"/>
  </xs:complexType>
 </xs:element>
 <xs:element name="club">
  <xs:complexType>
   <xs:sequence maxOccurs="1">
    <xs:element name="clubName" type="xs:string"/>
    <xs:element name="about" type="xs:string"/>
    <xs:element name="members" minOccurs="1">
     <xs:complexType>
      <xs:sequence maxOccurs="unbounded">
       <xs:element ref="dbx:member"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
 <xs:element name="clubs">
  <xs:complexType>
   <xs:sequence maxOccurs="unbounded">
    <xs:element ref="club"/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
 <xs:element name="persons">
  <xs:complexType>
   <xs:sequence maxOccurs="unbounded">
    <xs:element ref="person"/>
   </xs:sequence>
  </xs:complexType>
  <xs:key name="keyID">
   <xs:selector xpath="*"/>
   <xs:field xpath="*"/>
  </xs:key>
 </xs:element>
 <xs:element name="a" >
  <xs:simpleType>
   <xs:restriction base="xs:string"/>
  </xs:simpleType>
 </xs:element>
 <xs:element name="b">
  <xs:complexType mixed="1">
   <xs:simpleContent>
    <xs:extension base="xs:string"/>
   </xs:simpleContent>
  </xs:complexType>
 </xs:element>
 <xs:element name="c">
  <xs:complexType mixed="1">
   <xs:choice maxOccurs="unbounded">
    <xs:element ref="a"/>
    <xs:element ref="b"/>
    <xs:element ref="c"/>
   </xs:choice>
  </xs:complexType>
 </xs:element>
 <xs:element name="d">
  <xs:simpleType>
   <xs:restriction base="xs:NMTOKEN"/>
  </xs:simpleType>
 </xs:element>
 <xs:element name="e">
  <xs:simpleType>
   <xs:union memberTypes="xs:NMTOKEN">
    <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN"/>
    </xs:simpleType>
   </xs:union>
  </xs:simpleType>
 </xs:element>
 <xs:element name="f" type="xs:string">
 </xs:element>
</xs:schema>