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

      Copyright (C) 2002-2015  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="data-common.xsd" />
  <xs:include schemaLocation="data-unit.xsd" />

  <xs:element name="monarch">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <!-- @compat 0.10.5 -->
        <xs:element name="navalUnits">
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element ref="abstractUnit"></xs:element>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name="landUnits">
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element ref="abstractUnit"></xs:element>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <!-- end @compat -->
        <xs:element name="expeditionaryForce" type="ForceType" />
        <xs:element name="interventionForce" type="ForceType" />
        <xs:element name="mercenaryForce" type="ForceType" />
      </xs:choice>

      <xs:attribute name="id" type="MonarchId" use="required"/>
      <!-- @compat 0.10.x -->
      <xs:attribute name="ID" type="MonarchId" use="optional"/>
      <!-- end @compat -->
      <xs:attribute name="player" type="PlayerId" use="required"/>
      <!-- @compat 0.11.1 -->
      <xs:attribute name="name" type="xs:string" use="optional"/>
      <!-- end @compat 0.11.1 -->
      <!-- @compat 0.11.2 -->
      <xs:attribute name="nameKey" type="xs:string" use="optional"/>
      <!-- end @compat 0.11.2 -->
      <xs:attribute name="supportSea" type="xs:boolean"
                    use="optional" default="false"/>
      <xs:attribute name="displeasure" type="xs:boolean"
                    use="optional" default="false"/>

    </xs:complexType>
  </xs:element>


  <xs:element name="abstractUnit">
    <xs:complexType>
      <xs:attribute name="id" type="UnitTypeId" use="required"/>
      <xs:attribute name="role" type="xs:string" use="required"/>
      <xs:attribute name="number" type="xs:int" use="optional"
                    default="1"/>
    </xs:complexType>
  </xs:element>


  <xs:complexType name="ForceType">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="navalUnits">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="abstractUnit" />
          </xs:choice>
        </xs:complexType>
      </xs:element>
      <xs:element name="landUnits">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="abstractUnit" />
          </xs:choice>
        </xs:complexType>
      </xs:element>
    </xs:choice>
  </xs:complexType>

</xs:schema>
