<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="alliance" type="alliance"/>

  <xs:element name="alliancemember" type="alliancemember"/>

  <xs:element name="athlete" type="athlete"/>

  <xs:element name="club" type="club"/>

  <xs:element name="structuredata" type="structuredata"/>

  <xs:complexType name="structuredata">
    <xs:sequence>
      <xs:element name="clubs" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="club" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="alliances" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="alliance" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="athletes" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="athlete" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="country" type="xs:string" use="required"/>
    <xs:attribute name="region" type="xs:string"/>
    <xs:attribute name="year" type="xs:int" use="required"/>
  </xs:complexType>

  <xs:complexType name="club">
    <xs:sequence/>
    <xs:attribute name="id" type="xs:ID" use="required"/>
    <xs:attribute name="number" type="xs:int" use="required"/>
    <xs:attribute name="guid" type="xs:string"/>
    <xs:attribute name="type" type="clubType" use="required"/>
    <xs:attribute name="name" type="xs:string" use="required"/>
    <xs:attribute name="shortname" type="xs:string" use="required"/>
    <xs:attribute name="country" type="xs:string" use="required"/>
    <xs:attribute name="region" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="alliance">
    <xs:sequence>
      <xs:element ref="alliancemember" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:ID" use="required"/>
    <xs:attribute name="alliance" type="xs:IDREF" use="required"/>
  </xs:complexType>

  <xs:complexType name="alliancemember">
    <xs:sequence/>
    <xs:attribute name="id" type="xs:ID" use="required"/>
    <xs:attribute name="member" type="xs:IDREF" use="required"/>
    <xs:attribute name="membershiplist" use="required">
      <xs:simpleType>
        <xs:list itemType="allianceMembershipType"/>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="athlete">
    <xs:sequence/>
    <xs:attribute name="id" type="xs:ID" use="required"/>
    <xs:attribute name="number" type="xs:int"/>
    <xs:attribute name="guid" type="xs:string"/>
    <xs:attribute name="forename" type="xs:string" use="required"/>
    <xs:attribute name="lastname" type="xs:string" use="required"/>
    <xs:attribute name="yearofbirth" type="xs:int" use="required"/>
    <xs:attribute name="sex" type="sex" use="required"/>
    <xs:attribute name="club" type="xs:IDREF" use="required"/>
    <xs:attribute name="country" type="xs:string"/>
  </xs:complexType>

  <xs:simpleType name="clubType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="CLUB"/>
      <xs:enumeration value="STG"/>
      <xs:enumeration value="LG"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="allianceMembershipType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SENIORENM"/>
      <xs:enumeration value="SENIORENW"/>
      <xs:enumeration value="AKTIVEM"/>
      <xs:enumeration value="AKTIVEW"/>
      <xs:enumeration value="U20U18M"/>
      <xs:enumeration value="U20U18W"/>
      <xs:enumeration value="U16U14M"/>
      <xs:enumeration value="U16U14W"/>
      <xs:enumeration value="AKTIVEU20U18"/>
      <xs:enumeration value="U16U14"/>
      <xs:enumeration value="U12"/>
      <xs:enumeration value="U10"/>
      <xs:enumeration value="U8"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="sex">
    <xs:restriction base="xs:string">
      <xs:enumeration value="M"/>
      <xs:enumeration value="W"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

