mirror of https://github.com/FreeCol/freecol.git
153 lines
5.8 KiB
XML
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>
|