<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
  targetNamespace="http://schemas.sportradar.com/sportsapi/v1/unified"
  xmlns="http://schemas.sportradar.com/sportsapi/v1/unified"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:include schemaLocation="../../includes/unified/tournament.xsd"/>
  <xs:include schemaLocation="../../includes/unified/team.xsd"/>
  <xs:include schemaLocation="../../includes/unified/season.xsd"/>
  <xs:include schemaLocation="../../includes/unified/match_round.xsd"/>
  <xs:include schemaLocation="../../includes/unified/season_coverage_info.xsd"/>
  <xs:include schemaLocation="../../includes/unified/sport_event.xsd"/>
  <xs:element name="tournament_info" type="tournamentInfoEndpoint"/>

  <xs:complexType name="tournamentInfoEndpoint">
    <xs:sequence>
      <xs:element type="tournamentExtended" minOccurs="1" name="tournament"/>
      <xs:element type="seasonExtended" minOccurs="0" name="season"/>
      <xs:element type="matchRound" minOccurs="0" name="round"/>
      <xs:element type="seasonCoverageInfo" minOccurs="0" name="season_coverage_info"/>
      <xs:element type="tournamentLiveCoverageInfo" minOccurs="0" name="coverage_info"/>
      <xs:element type="tournamentGroups" minOccurs="0" name="groups"/>
      <xs:element type="competitors" minOccurs="0" name="competitors"/>
      <xs:element type="children" name="children" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute type="xs:dateTime" name="generated_at"/>
  </xs:complexType>
  <xs:complexType name="tournamentLiveCoverageInfo">
    <xs:attribute type="xs:string" name="live_coverage" use="required"/>
  </xs:complexType>
  <xs:complexType name="children">
    <xs:sequence>
      <xs:element name="tournament" type="tournamentExtended" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="standardTournamentInfoEndpoint">
    <xs:complexContent>
      <xs:restriction base="tournamentInfoEndpoint">
        <xs:sequence>
          <xs:element type="tournamentExtended" minOccurs="1" name="tournament"/>
          <xs:element type="seasonExtended" minOccurs="0" name="season"/>
          <xs:element type="matchRound" minOccurs="0" name="round"/>
          <xs:element type="seasonCoverageInfo" minOccurs="0" name="season_coverage_info"/>
          <xs:element type="tournamentGroups" minOccurs="0" name="groups"/>
        </xs:sequence>
        <xs:attribute type="xs:dateTime" name="generated_at"/>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="simpleTournamentInfoEndpoint">
    <xs:complexContent>
      <xs:restriction base="tournamentInfoEndpoint">
        <xs:sequence>
          <xs:element type="tournamentExtended" minOccurs="1" name="tournament"/>
          <xs:element type="competitors" minOccurs="0" name="competitors"/>
        </xs:sequence>
        <xs:attribute type="xs:dateTime" name="generated_at"/>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="raceTournamentInfoEndpoint">
    <xs:complexContent>
      <xs:restriction base="tournamentInfoEndpoint">
        <xs:sequence>
          <xs:element type="tournamentExtended" minOccurs="1" name="tournament"/>
          <xs:element type="competitors" minOccurs="0" name="competitors"/>
        </xs:sequence>
        <xs:attribute type="xs:dateTime" name="generated_at"/>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="tournamentGroups">
    <xs:sequence>
      <xs:element type="tournamentGroup" name="group" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="tournamentGroup">
    <xs:sequence>
      <xs:element type="team" name="competitor" maxOccurs="unbounded" minOccurs="1"/>
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="optional"/>
    <xs:attribute type="xs:string" name="id" use="optional"/>
  </xs:complexType>

</xs:schema>
