<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:annotation>
    <xs:documentation>

      Copyright (C) 2002-2021  The FreeCol Team

      This file is part of FreeCol.

      FreeCol is free software: you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation, either version 2 of the License, or
      (at your option) any later version.

      FreeCol is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
      GNU General Public License for more details.

      You should have received a copy of the GNU General Public License
      along with FreeCol. If not, see http://www.gnu.org/licenses
    </xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="../spec/spec-model.xsd" />
  <xs:include schemaLocation="data-common.xsd" />

  <!-- @compat 0.11.x Dropped for 0.12.0 -->
  <xs:element name="serverObjects">
    <xs:annotation>
      <xs:documentation>
	      This class contains server objects.
      </xs:documentation>
    </xs:annotation>
    <xs:complexType>

      <xs:choice minOccurs="0" maxOccurs="unbounded">
	      <xs:element ref="serverBuilding" />
        <xs:element ref="serverColonyTile" />
        <xs:element ref="serverColony" />
        <xs:element ref="serverEurope" />
        <xs:element ref="serverGame" />
        <xs:element ref="serverIndianSettlement" />
        <xs:element ref="serverPlayer" />
        <xs:element ref="serverUnit" />
      </xs:choice>
    </xs:complexType>
  </xs:element>
  
  <xs:element name="serverBuilding">
    <xs:complexType>
      <xs:attribute name="id" type="BuildingId" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="serverColony">
    <xs:complexType>
      <xs:attribute name="id" type="ColonyId" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="serverColonyTile">
    <xs:complexType>
      <xs:attribute name="id" type="ColonyTileId" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="serverEurope">
    <xs:complexType>
      <xs:attribute name="id" type="EuropeId" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="serverGame">
    <xs:complexType>
      <xs:attribute name="id" type="GameId" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="serverIndianSettlement">
    <xs:complexType>
      <xs:attribute name="id" type="IndianSettlementId" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="serverPlayer">
    <xs:complexType>
      <xs:attribute name="id" type="PlayerId" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="serverUnit">
    <xs:complexType>
      <xs:attribute name="id" type="UnitId" use="required"/>
    </xs:complexType>
  </xs:element>
  <!-- end @compat 0.11.x -->

</xs:schema>
