freecol/schema/data/data-unit.xsd

153 lines
5.8 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-2016 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="equipment"/>
<xs:element ref="units"/>
<xs:element ref="tileImprovement">
<xs:annotation>
<xs:documentation>
The TileImprovement this Unit is working on.
</xs:documentation>
</xs:annotation>
</xs:element>
<!-- @compat 0.11.3 -->
<xs:element ref="tileimprovement"/>
<!-- end @compat 0.11.3 -->
</xs:choice>
<xs:attribute name="id" type="UnitId" use="required" />
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="UnitId" use="optional"/>
<!-- end @compat -->
<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"/>
<!--
Should be:
<xs:attribute name="role" type="RoleId" use="required"/>
<xs:attribute name="roleCount" type="xs:int" use="required"/>
However, @compat 0.10.7 -->
<xs:attribute name="role" type="xs:string" use="required"/>
<xs:attribute name="roleCount" type="xs:int" use="optional"/>
<!-- end @compat -->
<xs:attribute name="owner" type="PlayerId" use="required"/>
<xs:attribute name="turnsOfTraining" type="xs:int" use="required"/>
<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="required"/>
<xs:attribute name="treasureAmount" type="xs:int" use="required"/>
<xs:attribute name="hitPoints" type="xs:int" use="required"/>
<!-- @compat 0.10.7 -->
<xs:attribute name="hitpoints" type="xs:int" use="optional"/>
<!-- end @compat -->
<xs:attribute name="attrition" type="xs:int" use="required"/>
<xs:attribute name="student" type="UnitId" use="optional"/>
<xs:attribute name="teacher" type="UnitId" use="optional"/>
<xs:attribute name="nationality" type="NationId" use="optional"/>
<xs:attribute name="ethnicity" type="NationId" use="optional"/>
<xs:attribute name="indianSettlement" type="xs:string" use="optional"/>
<xs:attribute name="workLeft" type="xs:integer" use="required"/>
<xs:attribute name="entryLocation" type="TileId" use="optional"/>
<xs:attribute name="location" type="LocationId" 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"/>
<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" />
<!-- @compat 0.10.x -->
<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" />
<!-- end @compat 0.10.x -->
</xs:restriction>
</xs:simpleType>
</xs:schema>