freecol/schema/data/data-unit.xsd

130 lines
4.9 KiB
XML

<?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-goodsContainer.xsd"/>
<xs:include schemaLocation="data-equipment.xsd"/>
<xs:include schemaLocation="data-tileImprovement.xsd"/>
<xs:element name="units">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="unit"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="unit" type="unitElementType">
<xs:annotation>
<xs:documentation>
Represents all pieces that can be moved on the
map-board. This includes: colonists, ships, wagon trains e.t.c.
Every Unit is owned by a Player and has a Location.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="missionary">
<xs:annotation>
<xs:documentation>
Unit specialization used in Indian settlements.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="unit" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="unitElementType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="goodsContainer"/>
<xs:element ref="tileImprovement"/>
<xs:element ref="unit"/>
<!-- @compat 0.11.3 -->
<xs:element ref="tileimprovement"/>
<!-- end @compat 0.11.3 -->
<!-- @compat 0.11.x -->
<xs:element ref="equipment"/>
<!-- end @compat 0.11.x -->
</xs:choice>
<xs:attribute name="id" type="UnitId" use="required" />
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="unitType" type="xs:string" use="required"/>
<xs:attribute name="movesLeft" type="xs:int" use="required"/>
<xs:attribute name="state" type="UnitState" use="required"/>
<xs:attribute name="role" type="RoleId" use="required"/>
<!-- @compat 0.11.x To Become Required -->
<xs:attribute name="roleCount" type="xs:int" use="optional"/>
<!-- end @compat 0.11.x -->
<xs:attribute name="owner" type="PlayerId" use="required"/>
<xs:attribute name="ethnicity" type="NationId" use="optional"/>
<xs:attribute name="nationality" type="NationId" use="optional"/>
<xs:attribute name="location" type="LocationId" use="optional"/>
<xs:attribute name="treasureAmount" type="xs:int" use="required"/>
<!-- Privileged information -->
<xs:attribute name="entryLocation" type="TileId" use="optional"/>
<xs:attribute name="turnsOfTraining" type="xs:int" use="optional"/>
<xs:attribute name="workType" type="xs:string" use="optional"/>
<xs:attribute name="experienceType" type="xs:string" use="optional"/>
<xs:attribute name="experience" type="xs:int" use="optional"/>
<xs:attribute name="indianSettlement" type="xs:string" use="optional"/>
<xs:attribute name="workLeft" type="xs:integer" use="optional"/>
<xs:attribute name="hitPoints" type="xs:int" use="optional"/>
<xs:attribute name="attrition" type="xs:int" use="optional"/>
<xs:attribute name="student" type="UnitId" use="optional"/>
<xs:attribute name="teacher" type="UnitId" use="optional"/>
<xs:attribute name="destination" type="LocationId" use="optional"/>
<xs:attribute name="tradeRoute" type="TradeRouteId" use="optional"/>
<xs:attribute name="currentStop" type="xs:int" use="optional"/>
<!-- Visible to other players when a carrier -->
<xs:attribute name="visibleGoodsCount" type="xs:int" use="optional"/>
</xs:complexType>
<xs:simpleType name="UnitState">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="active" />
<xs:enumeration value="fortified" />
<xs:enumeration value="sentry" />
<xs:enumeration value="in_colony" />
<xs:enumeration value="improving" />
<xs:enumeration value="to_europe" />
<xs:enumeration value="in_europe" />
<xs:enumeration value="to_america" />
<xs:enumeration value="fortifying" />
<xs:enumeration value="skipped" />
</xs:restriction>
</xs:simpleType>
</xs:schema>