<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified">
  <xs:element name="OptaFeed" type="OptaFeedType"></xs:element>
  
  <xs:complexType name="OptaFeedType">
    <xs:sequence>
      <xs:element name="OptaDocument" type="OptaDocumentType"/>
    </xs:sequence>
    <xs:attribute name="timestamp" use="required" type="xs:dateTime"/>
  </xs:complexType>
  
  <xs:complexType name="OptaDocumentType">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="Team" type="TeamType"/>
	  <xs:element minOccurs="0" maxOccurs="unbounded" name="PlayerChanges" type="PlayerChangesType"/>
    </xs:sequence>
    <xs:attribute name="competition_id" use="required" type="xs:integer"/>
    <xs:attribute name="competition_name" use="required" type="xs:string"/>
    <xs:attribute name="season_id" use="required" type="xs:integer"/>
    <xs:attribute name="sport_id" use="required" type="xs:integer"/>
    <xs:attribute name="sport_name" use="required"/>
    <xs:attribute name="type" use="required"/>
  </xs:complexType>

  <xs:complexType name="TeamType">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="name" type="xs:string"/>
      <xs:element name="SYMID" type="xs:string"/>
      <xs:element name="Nickname" type="xs:string"/>
      <xs:element name="Stadium" type="StadiumType"/>
      <xs:element maxOccurs="unbounded" name="Player" type="PlayerType"/>
    </xs:choice>
    <xs:attribute name="uID" use="required" type="xs:string"/>
	<xs:attribute name="team_uuid" use="optional" type="xs:string" />
  </xs:complexType>

  <xs:complexType name="StadiumType">
    <xs:attribute name="name" use="required"/>
  </xs:complexType>

  <xs:complexType name="PlayerType">
    <xs:sequence>
      <xs:element name="Name" type="xs:string"/>
      <xs:element name="Position" type="xs:string"/>
      <xs:element maxOccurs="unbounded" name="Stat" type="StatType"/>
    </xs:sequence>
    <xs:attribute name="uID" use="required" type="xs:string"/>
	<xs:attribute name="player_uuid" use="optional" type="xs:string" />
  </xs:complexType>
  
  <xs:complexType name="StatType" mixed="true">
    <xs:attribute name="type" use="required" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="PlayerChangesType">
    <xs:sequence>
		<xs:element name="Team" type="TeamType" minOccurs="0" maxOccurs="unbounded" />
	</xs:sequence>
  </xs:complexType>

</xs:schema>
