<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="late_changes">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="race_date"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="track"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="race_date" type="xs:string"/>
  <xs:element name="track">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="race"/>
      </xs:sequence>
      <xs:attribute name="track_name" use="required"/>
	  <xs:attribute name="id" />
	  <xs:attribute name="country" />
    </xs:complexType>
  </xs:element>
  <xs:element name="race">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="race_changes"/>
        <xs:element minOccurs="0" ref="start_changes"/>
        <xs:element minOccurs="0" ref="wager_cancellations"/>
      </xs:sequence>
      <xs:attribute name="race_number" use="required" type="xs:integer"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="race_changes">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="change"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="start_changes">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="horse"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="horse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="change"/>
      </xs:sequence>
      <xs:attribute name="horse_name" use="required"/>
      <xs:attribute name="program_number" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="change">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="change_description"/>
        <xs:element ref="old_value"/>
        <xs:element ref="new_value"/>
        <xs:element ref="date_changed"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="wager_cancellations">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="wager"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="wager">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="old_value"/>
        <xs:element ref="new_value"/>
        <xs:element ref="date_changed"/>
      </xs:sequence>
      <xs:attribute name="type" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="change_description" type="xs:string"/>
  <xs:element name="old_value" type="xs:string"/>
  <xs:element name="new_value" type="xs:string"/>
  <xs:element name="date_changed" type="xs:string"/>  
</xs:schema>
