Mass schema update, passing for known 0.11.x games.

This commit is contained in:
Mike Pope 2017-02-14 09:30:50 +10:30
parent 93119adf74
commit 80ba43669f
42 changed files with 672 additions and 945 deletions

View File

@ -20,7 +20,7 @@
In case of incompatible changes, please update version number and
XSD schema for validation.
-->
<freecol-specification id="classic" version="0.115">
<freecol-specification id="classic" version="0.116">
<!-- Modifiers that are not attached to other game object
types. They may be modified, but MUST NOT be removed. -->

View File

@ -20,7 +20,7 @@
In case of incompatible changes, please update version number and
XSD schema for validation.
-->
<freecol-specification id="freecol" version="0.115" extends="classic">
<freecol-specification id="freecol" version="0.116" extends="classic">
<goods-types>
<goods-type id="model.goods.horses" is-farmed="false"

View File

@ -34,144 +34,13 @@
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="aiUnit">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="buildColonyMission" >
<xs:complexType>
<xs:attribute name="unit" type="UnitId" use="required" />
<xs:attribute name="doNotGiveUp" type="xs:boolean" use="required" />
<xs:attribute name="colonyBuilt" type="xs:boolean" use="required" />
<xs:attribute name="target" type="LocationId" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="cashInTreasureTrainMission" type="SimpleMissionType" />
<xs:element name="defendSettlementMission">
<xs:complexType>
<xs:attribute name="settlement" type="SettlementId" use="required" />
<!-- @compat 0.11.x -->
<xs:attribute name="unit" type="UnitId" use="optional" />
<!-- end @compat 0.11.x -->
</xs:complexType>
</xs:element>
<xs:element name="idleAtColonyMission" type="SimpleMissionType" />
<xs:element name="indianBringGiftMission">
<xs:complexType>
<xs:attribute name="unit" type="UnitId" use="required" />
<xs:attribute name="target" type="LocationId" use="optional" />
<xs:attribute name="giftDelivered" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="indianDemandMission">
<xs:complexType>
<xs:attribute name="unit" type="UnitId" use="required" />
<xs:attribute name="target" type="LocationId" use="optional" />
<xs:attribute name="completed" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="missionaryMission">
<xs:complexType>
<xs:attribute name="target" type="LocationId" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="pioneeringMission">
<xs:complexType>
<xs:attribute name="target" type="TileId" use="required" />
<xs:attribute name="tileImprovementPlan" type="TileImprovementPlanId" use="required" />
<!-- @compat 0.11.x -->
<xs:attribute name="unit" type="UnitId" use="optional" />
<!-- end @compat 0.11.x -->
</xs:complexType>
</xs:element>
<xs:element name="privateerMission">
<xs:complexType>
<xs:attribute name="unit" type="UnitId" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="scoutingMission" type="SimpleMissionType" />
<xs:element name="transportMission">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element name="cargo">
<xs:complexType>
<xs:attribute name="carrier" type="UnitId" use="required"/>
<xs:attribute name="cdst" type="LocationId" use="required"/>
<xs:attribute name="cwait" type="LocationId" use="required"/>
<xs:attribute name="fallback" type="xs:boolean" use="required"/>
<xs:attribute name="id" type="UnitId" use="required"/>
<xs:attribute name="mode" type="CargoMode" use="required"/>
<xs:attribute name="space" type="xs:int" use="required"/>
<xs:attribute name="tries" type="xs:int" use="required"/>
<xs:attribute name="turns" type="xs:int" use="required"/>
<xs:attribute name="tdst" type="LocationId" use="required"/>
<xs:attribute name="twait" type="LocationId" use="required"/>
</xs:complexType>
</xs:element>
<!-- @compat 0.11.x -->
<xs:element name="transportable">
<xs:complexType>
<xs:attribute name="id" type="TransportableId" use="required"/>
<!-- @compat 0.10.7 -->
<xs:attribute name="ID" type="TransportableId" use="optional"/>
<!-- end @compat -->
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.x -->
</xs:choice>
<xs:attribute name="target" type="LocationId" use="required" />
<!-- @compat 0.11.x -->
<xs:attribute name="unit" type="UnitId" use="optional" />
<!-- end @compat 0.11.x -->
</xs:complexType>
</xs:element>
<xs:element name="unitSeekAndDestroyMission">
<xs:complexType>
<xs:attribute name="unit" type="UnitId" use="required" />
<xs:attribute name="target" type="LocationId" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="unitWanderHostileMission" type="SimpleMissionType" />
<xs:element name="unitWanderMission" type="SimpleMissionType" />
<xs:element name="wishRealizationMission">
<xs:complexType>
<xs:attribute name="wish" type="WishId" use="required" />
<!-- @compat 0.11.x -->
<xs:attribute name="unit" type="UnitId" use="optional" />
<!-- end @compat 0.11.x -->
</xs:complexType>
</xs:element>
<xs:element name="workInsideColonyMission">
<xs:complexType>
<xs:attribute name="colony" type="ColonyId" use="required" />
<!-- @compat 0.11.x -->
<xs:attribute name="unit" type="UnitId" use="optional" />
<!-- end @compat 0.11.x -->
</xs:complexType>
</xs:element>
<xs:element name="tileImprovementPlanMission">
<xs:complexType>
<xs:attribute name="unit" type="UnitId" use="required" />
<xs:attribute name="tileImprovementPlan" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="id" type="UnitId" use="required"/>
<!-- @compat 0.10.7 -->
<xs:attribute name="ID" type="UnitId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="transport" type="UnitId" use="optional"/>
<xs:attribute name="value" type="xs:int" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="aiColony">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="aiGoodsListElement">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
<!-- @compat 0.10.7 -->
<xs:attribute name="ID" type="xs:string" use="optional" />
<!-- end @compat -->
</xs:complexType>
</xs:element>
<xs:element name="goodsWishListElement">
@ -179,16 +48,6 @@
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<!-- @compat 0.11.3 -->
<xs:element name="tileimprovementplanListElement">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
<!-- @compat 0.10.7 -->
<xs:attribute name="ID" type="xs:string" use="optional" />
<!-- end @compat -->
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.3 -->
<xs:element name="tileImprovementPlanListElement">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
@ -199,38 +58,217 @@
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<!-- @compat 0.11.3 -->
<xs:element name="tileimprovementplanListElement">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.3 -->
</xs:choice>
<xs:attribute name="id" type="ColonyId" use="required"/>
<!-- @compat 0.10.7 -->
<xs:attribute name="ID" type="ColonyId" use="optional"/>
<!-- end @compat -->
</xs:complexType>
</xs:element>
<xs:element name="aiGoods">
<xs:complexType>
<xs:sequence>
<xs:element name="goods">
<xs:complexType>
<xs:attribute name="amount" type="xs:int" use="required"/>
<xs:attribute name="location" type="LocationId" use="required"/>
<xs:attribute name="type" type="GoodsTypeId" use="required"/>
<!-- @compat 0.11.x -->
<xs:attribute name="id" type="GoodsTypeId" use="required"/>
<!-- end @compat 0.11.x -->
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="AIGoodsId" use="required"/>
<xs:attribute name="destination" type="xs:string" />
<xs:attribute name="transport" type="UnitId" />
<xs:attribute name="transportPriority" type="xs:int" />
<xs:attribute name="value" type="xs:int" />
</xs:complexType>
</xs:element>
<xs:element name="aiPlayer">
<xs:complexType>
<xs:attribute name="id" type="PlayerId" use="required"/>
<xs:attribute name="randomState" type="xs:string" use="required"/>
<!-- @compat 0.10.7 -->
<xs:attribute name="ID" type="PlayerId" use="optional"/>
<!-- end @compat -->
</xs:complexType>
</xs:element>
<xs:element name="workerWish">
<xs:element name="aiUnit">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
<!-- @compat 0.10.7 -->
<xs:attribute name="ID" type="xs:string" use="optional"/>
<!-- end @compat -->
<xs:attribute name="destination" type="xs:string" />
<xs:attribute name="transportable" type="TransportableId" />
<xs:attribute name="value" type="xs:int" />
<xs:attribute name="unitType" type="UnitTypeId" />
<xs:attribute name="expertNeeded" type="xs:boolean" />
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="buildColonyMission" >
<xs:complexType>
<xs:complexContent>
<xs:extension base="SimpleMissionType">
<!-- @compat 0.11.x -->
<xs:attribute name="doNotGiveUp" type="xs:boolean" use="optional" />
<xs:attribute name="colonyBuilt" type="xs:boolean" use="optional" />
<xs:attribute name="value" type="xs:int" use="optional" />
<!-- end @compat 0.11.x -->
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="cashInTreasureTrainMission"
type="SimpleMissionType" />
<xs:element name="defendSettlementMission">
<xs:complexType>
<xs:attribute name="settlement" type="SettlementId" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="idleAtColonyMission" type="SimpleMissionType" />
<xs:element name="indianBringGiftMission">
<xs:complexType>
<xs:complexContent>
<xs:extension base="SimpleMissionType">
<xs:attribute name="collected" type="xs:boolean" use="optional" />
<xs:attribute name="colony" type="ColonyId" use="optional" />
<!-- @compat 0.11.x -->
<xs:attribute name="completed" type="xs:boolean" use="optional" />
<xs:attribute name="giftDelivered" type="xs:boolean" use="optional" />
<!-- end @compat 0.11.x -->
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="indianDemandMission">
<xs:complexType>
<xs:complexContent>
<xs:extension base="SimpleMissionType">
<xs:attribute name="colony" type="ColonyId" use="optional"/>
<xs:attribute name="demanded" type="xs:boolean" use="optional" />
<xs:attribute name="succeeded" type="xs:boolean" use="optional" />
<!-- @compat 0.11.x -->
<xs:attribute name="completed" type="xs:boolean" use="optional" />
<!-- end @compat 0.11.x -->
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="missionaryMission" type="SimpleMissionType"/>
<xs:element name="pioneeringMission">
<xs:complexType>
<xs:complexContent>
<xs:extension base="SimpleMissionType">
<xs:attribute name="tileImprovementPlan" type="TileImprovementPlanId" use="optional" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="privateerMission" type="SimpleMissionType"/>
<xs:element name="scoutingMission" type="SimpleMissionType"/>
<xs:element name="transportMission">
<xs:complexType>
<xs:complexContent>
<xs:extension base="SimpleMissionType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="cargo">
<xs:complexType>
<xs:attribute name="id" type="TransportableId" use="required"/>
<xs:attribute name="mode" type="CargoMode" use="required"/>
<xs:attribute name="tries" type="xs:int" use="required"/>
<xs:attribute name="turns" type="xs:int" use="required"/>
<!-- @compat 0.11.x To Be Required -->
<xs:attribute name="carrier" type="UnitId" use="optional"/>
<xs:attribute name="cdst" type="LocationId" use="optional"/>
<xs:attribute name="cwait" type="LocationId" use="optional"/>
<xs:attribute name="fallback" type="xs:boolean" use="optional"/>
<xs:attribute name="space" type="xs:int" use="optional"/>
<xs:attribute name="tdst" type="LocationId" use="optional"/>
<xs:attribute name="twait" type="LocationId" use="optional"/>
<!-- end @compat 0.11.x -->
<!-- @compat 0.11.x: Obsolete -->
<xs:attribute name="target" type="LocationId" use="optional"/>
<!-- @compat 0.11.x -->
</xs:complexType>
</xs:element>
<!-- @compat 0.11.x -->
<xs:element name="transportable">
<xs:complexType>
<xs:attribute name="id" type="TransportableId" use="required"/>
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.x -->
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="unitSeekAndDestroyMission"
type="SimpleMissionType"/>
<xs:element name="unitWanderHostileMission"
type="SimpleMissionType" />
<xs:element name="unitWanderMission"
type="SimpleMissionType" />
<xs:element name="wishRealizationMission">
<xs:complexType>
<xs:complexContent>
<xs:extension base="SimpleMissionType">
<xs:attribute name="wish" type="WishId" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="workInsideColonyMission">
<xs:complexType>
<xs:complexContent>
<xs:extension base="SimpleMissionType">
<xs:attribute name="colony" type="ColonyId" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!-- @compat 0.11.x -->
<xs:element name="tileImprovementPlanMission">
<xs:complexType>
<xs:attribute name="tileImprovementPlan" type="xs:string" use="required" />
<xs:attribute name="unit" type="UnitId" use="optional" />
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.x -->
</xs:choice>
<xs:attribute name="id" type="UnitId" use="required"/>
<!-- @compat 0.11.x -->
<xs:attribute name="transport" type="UnitId" use="optional"/>
<xs:attribute name="value" type="xs:int" use="optional" />
<!-- end @compat 0.11.x -->
</xs:complexType>
</xs:element>
</xs:element><!-- aiUnit -->
<xs:element name="goodsWish">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="destination" type="xs:string" />
<xs:attribute name="transportable" type="TransportableId" />
<xs:attribute name="value" type="xs:int" />
@ -243,9 +281,7 @@
<xs:element name="GoodsWish">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
<!-- @compat 0.10.7 -->
<xs:attribute name="ID" type="xs:string" use="optional"/>
<!-- end @compat -->
<xs:attribute name="destination" type="xs:string" />
<xs:attribute name="transportable" type="TransportableId" />
<xs:attribute name="value" type="xs:int" />
@ -255,23 +291,11 @@
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.x -->
<xs:element name="aiGoods">
<xs:complexType>
<xs:sequence>
<xs:element ref="goods" />
</xs:sequence>
<xs:attribute name="id" type="GoodsId" use="required"/>
<!-- @compat 0.10.7 -->
<xs:attribute name="ID" type="GoodsId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="destination" type="xs:string" />
<xs:attribute name="transport" type="UnitId" />
<xs:attribute name="transportPriority" type="xs:int" />
</xs:complexType>
</xs:element>
<xs:element name="tileImprovementPlan">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="type" type="TileImprovementTypeId" />
<xs:attribute name="value" type="xs:int" />
<xs:attribute name="target" type="TileId" />
@ -282,28 +306,41 @@
<xs:element name="tileimprovementplan">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
<!-- @compat 0.10.7 -->
<xs:attribute name="ID" type="xs:string" use="optional"/>
<!-- end @compat -->
<xs:attribute name="type" type="TileImprovementTypeId" />
<xs:attribute name="value" type="xs:int" />
<xs:attribute name="target" type="TileId" />
<xs:attribute name="pioneer" type="UnitId" />
<xs:attribute name="type" type="TileImprovementTypeId" />
<xs:attribute name="target" type="TileId" />
<xs:attribute name="value" type="xs:int" />
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.3 -->
<xs:element name="workerWish">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="destination" type="xs:string" />
<xs:attribute name="expertNeeded" type="xs:boolean" />
<xs:attribute name="transportable" type="TransportableId" />
<xs:attribute name="unitType" type="UnitTypeId" />
<xs:attribute name="value" type="xs:int" />
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="nextId" type="xs:int" use="required" />
<!-- @compat 0.10.7 -->
<xs:attribute name="nextID" type="xs:int" use="optional" />
<!-- end @compat -->
</xs:complexType>
</xs:element>
<xs:complexType name="SimpleMissionType">
<xs:attribute name="unit" type="UnitId" />
<!-- @compat 0.11.x To Be Required -->
<xs:attribute name="target" type="LocationId" use="optional" />
<!-- end @compat 0.11.x -->
<!-- @compat 0.11.1 -->
<xs:attribute name="unit" type="UnitId" use="optional"/>
<!-- end @compat 0.11.1 -->
</xs:complexType>
<xs:simpleType name="CargoMode">

View File

@ -33,23 +33,17 @@
Represents a building in a colony.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="unit" />
<xs:element ref="production" />
</xs:choice>
<xs:attribute name="id" type="BuildingId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="BuildingId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="colony" type="ColonyId" use="required">
<xs:annotation>
<xs:documentation>
The colony containing this building.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="buildingType" type="xs:string" use="required"/>
<xs:attribute name="colony" type="ColonyId" use="required"/>
</xs:complexType>
</xs:element>

View File

@ -33,101 +33,45 @@
<xs:element name="colony">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="colonyTile" minOccurs="9" maxOccurs="9" />
<xs:element ref="goodsContainer" minOccurs="0" maxOccurs="1" />
<xs:element ref="buildQueueItem" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="populationQueueItem" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="building" />
<xs:element ref="buildQueueItem" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="colonyTile" minOccurs="3" maxOccurs="9" />
<xs:element ref="exportData" />
<xs:element ref="goodsContainer" minOccurs="0" maxOccurs="1" />
<xs:element ref="populationQueueItem" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="ability" />
<xs:element ref="modifier" />
</xs:choice>
<xs:attribute name="id" type="ColonyId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="ColonyId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="owner" type="PlayerId" use="required"/>
<xs:attribute name="tile" type="TileId" use="required"/>
<xs:attribute name="liberty" type="xs:int" use="optional" default="0" />
<xs:attribute name="immigration" type="xs:int" use="optional" default="0" />
<xs:attribute name="established" type="xs:int" use="optional" default="1" />
<xs:attribute name="settlementType" type="xs:string" />
<xs:attribute name="sonsOfLiberty" type="xs:int" use="optional"
default="0">
<xs:annotation>
<xs:documentation>
The SoL membership this turn.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="oldSonsOfLiberty" type="xs:int" use="optional"
default="0">
<xs:annotation>
<xs:documentation>
The SoL membership last turn.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="tories" type="xs:int" use="optional"
default="0">
<xs:annotation>
<xs:documentation>
The number of tories this turn.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="oldTories" type="xs:int" use="optional"
default="0">
<xs:annotation>
<xs:documentation>
The number of tories last turn.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="productionBonus" type="xs:int" use="optional"
default="0">
<xs:annotation>
<xs:documentation>
The current production bonus.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="currentlyBuilding" type="xs:string"
use="optional">
<xs:annotation>
<xs:documentation>
Currently building element from the build queue
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="currentlyBuilding" type="xs:string" use="optional"/>
<xs:attribute name="established" type="xs:int" use="optional"
default="1"/>
<xs:attribute name="immigration" type="xs:int" use="optional"
default="0"/>
<xs:attribute name="landLocked" type="xs:boolean" use="optional"
default="true">
<xs:annotation>
<xs:documentation>
Whether this colony is landlocked
</xs:documentation>
</xs:annotation>
</xs:attribute>
default="true"/>
<xs:attribute name="liberty" type="xs:int" use="optional"
default="0"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="oldSonsOfLiberty" type="xs:int" use="optional"
default="0"/>
<xs:attribute name="oldTories" type="xs:int" use="optional"
default="0"/>
<xs:attribute name="owner" type="PlayerId" use="required"/>
<xs:attribute name="productionBonus" type="xs:int" use="optional"
default="0"/>
<xs:attribute name="settlementType" type="xs:string"/>
<xs:attribute name="sonsOfLiberty" type="xs:int" use="optional"
default="0"/>
<xs:attribute name="stockadeLevel" type="xs:int" use="optional"
default="0">
<xs:annotation>
<xs:documentation>
Level of the stockade-type building in the colony
</xs:documentation>
</xs:annotation>
</xs:attribute>
default="0"/>
<xs:attribute name="tile" type="TileId" use="required"/>
<xs:attribute name="tories" type="xs:int" use="optional"
default="0"/>
<xs:attribute name="unitCount" type="xs:int" use="optional"
default="-1">
<xs:annotation>
<xs:documentation>
Used on rival colonies
</xs:documentation>
</xs:annotation>
</xs:attribute>
default="-1"/>
</xs:complexType>
</xs:element>

View File

@ -35,23 +35,9 @@
</xs:choice>
<xs:attribute name="id" type="ColonyTileId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="ColonyTileId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="colony" type="ColonyId" use="required">
<xs:annotation>
<xs:documentation>
Parent colony
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="workTile" type="TileId" use="required">
<xs:annotation>
<xs:documentation>
Identifier for the tile on the map
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="colony" type="ColonyId" use="required"/>
<xs:attribute name="workTile" type="TileId" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -23,6 +23,12 @@
</xs:documentation>
</xs:annotation>
<xs:simpleType name="AIGoodsId">
<xs:restriction base="xs:string">
<xs:pattern value="aiGoods:(|am)([0-9])+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BuildingId">
<xs:restriction base="xs:string">
<xs:pattern value="building:([0-9])+" />
@ -79,7 +85,7 @@
<xs:simpleType name="LocationId">
<xs:restriction base="xs:string">
<xs:pattern value="(tile|unit|colony|europe|colonyTile|building|indianSettlement|highSeas):([0-9])+" />
<xs:pattern value="(tile|unit|colony|europe|colonyTile|building|indianSettlement|highSeas|map):([0-9])+" />
</xs:restriction>
</xs:simpleType>
@ -113,14 +119,6 @@
</xs:restriction>
</xs:simpleType>
<!-- @compat 0.10.x -->
<xs:simpleType name="PlayerExploredTileId">
<xs:restriction base="xs:string">
<xs:pattern value="playerExploredTile:([0-9])+" />
</xs:restriction>
</xs:simpleType>
<!-- end @compat 0.10.x -->
<xs:simpleType name="PlayerId">
<xs:restriction base="xs:string">
<xs:pattern value="player:([0-9])+" />
@ -159,19 +157,27 @@
<xs:simpleType name="TileImprovementId">
<xs:restriction base="xs:string">
<xs:pattern value="tileImprovement:([0-9])+" />
<!-- @compat 0.11.x
To Become: <xs:pattern value="tileImprovement:([0-9])+" />
-->
<xs:pattern value="(tileimprovement|tileImprovement):([0-9])+" />
<!-- end @compat 0.11.x -->
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TileImprovementPlanId">
<xs:restriction base="xs:string">
<xs:pattern value="tileImprovementPlan:(am|)([0-9])+" />
<xs:pattern value="tileImprovementPlan:(|am)([0-9])+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TileItemContainerId">
<xs:restriction base="xs:string">
<xs:pattern value="tileItemContainer:([0-9])+" />
<!-- @compat 0.11.x
To Become: <xs:pattern value="tileItemContainer:([0-9])+" />
-->
<xs:pattern value="(tileitemcontainer|tileItemContainer):([0-9])+" />
<!-- end @compat 0.11.x -->
</xs:restriction>
</xs:simpleType>
@ -183,7 +189,7 @@
<xs:simpleType name="TransportableId">
<xs:restriction base="xs:string">
<xs:pattern value="(aiGoods:am|unit:)([0-9])+" />
<xs:pattern value="(aiGoods:|aiGoods:am|unit:)([0-9])+" />
</xs:restriction>
</xs:simpleType>
@ -195,7 +201,7 @@
<xs:simpleType name="WishId">
<xs:restriction base="xs:string">
<xs:pattern value="(goods|worker)Wish:am([0-9])+" />
<xs:pattern value="(goods|worker)Wish:(|am)([0-9])+" />
</xs:restriction>
</xs:simpleType>

View File

@ -2,7 +2,7 @@
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>
Copyright (C) 2002-2017 The FreeCol Team
This file is part of FreeCol.
@ -22,6 +22,32 @@
</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="../spec/spec-model.xsd" />
<xs:include schemaLocation="../spec/spec-model.xsd"/>
<!-- @compat 0.11.x -->
<xs:element name="equipment">
<xs:annotation>
<xs:documentation>
List of unit's equipment
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="xLength" type="xs:int">
<xs:annotation>
<xs:documentation>
Number of elements in the list
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:anyAttribute namespace="##local" processContents="skip">
<xs:annotation>
<xs:documentation>
Equipment type list with attributes "x0", "x1", "x2" etc.
</xs:documentation>
</xs:annotation>
</xs:anyAttribute>
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.x -->
</xs:schema>

View File

@ -36,38 +36,22 @@
<xs:attribute name="price" type="xs:int" use="required"/>
</xs:complexType>
</xs:element>
<xs:element ref="ability" />
<xs:element ref="modifier" />
<xs:element name="recruit">
<xs:complexType>
<xs:attribute name="id" type="UnitTypeId" />
</xs:complexType>
</xs:element>
<!-- @compat 0.10.x -->
<xs:element name="units">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="unit"></xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<!-- end @compat 0.10.x -->
<xs:element ref="ability" />
<xs:element ref="modifier" />
</xs:choice>
<xs:attribute name="id" type="EuropeId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="EuropeId" use="optional"/>
<!-- end @compat -->
<!-- @compat 0.10.7 -->
<xs:attribute name="recruit0" type="UnitTypeId" use="optional"/>
<xs:attribute name="recruit1" type="UnitTypeId" use="optional"/>
<xs:attribute name="recruit2" type="UnitTypeId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="owner" type="PlayerId" use="required"/>
<xs:attribute name="recruitPrice" type="xs:int" use="optional"
default="200"/>
<xs:attribute name="id" type="EuropeId" use="required"/>
<xs:attribute name="owner" type="PlayerId" use="required"/>
<xs:attribute name="recruitLowerCap" type="xs:int" use="optional"
default="80"/>
<xs:attribute name="recruitPrice" type="xs:int" use="optional"
default="200"/>
</xs:complexType>
</xs:element>

View File

@ -27,10 +27,11 @@
<xs:element name="exportData">
<xs:complexType>
<xs:attribute name="id" type="GoodsTypeId" use="required" />
<xs:attribute name="exported" type="xs:boolean" use="required" />
<xs:attribute name="highLevel" type="xs:int" use="required" />
<xs:attribute name="lowLevel" type="xs:int" use="required" />
<xs:attribute name="importLevel" type="xs:int" use="required" />
<xs:attribute name="importLevel" type="xs:int" use="optional" />
<xs:attribute name="exportLevel" type="xs:int" use="required" />
</xs:complexType>
</xs:element>

View File

@ -36,10 +36,10 @@
This class contains the game.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="cibola" />
<xs:element ref="cibola" minOccurs="0" maxOccurs="7" />
<xs:element ref="freecol-specification" />
<xs:element ref="map" />
<xs:element ref="modelMessage" />
@ -49,27 +49,15 @@
</xs:choice>
<xs:attribute name="id" type="GameId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="GameId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="UUID" type="xs:string" use="optional" />
<xs:attribute name="turn" type="xs:int" use="required" />
<xs:attribute name="spanishSuccession" type="xs:boolean" use="optional"
default="false" />
<xs:attribute name="currentPlayer" type="PlayerId" use="optional" >
<xs:annotation>
<xs:documentation>
May be absent in map files.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="nextId" type="xs:int" use="optional"/>
<!-- @compat 0.10.x -->
<xs:attribute name="nextID" type="xs:int" use="optional"/>
<!-- end @compat -->
<xs:attribute name="currentPlayer" type="PlayerId" use="optional"/>
<xs:attribute name="initialActiveUnitId" type="UnitId" use="optional"/>
<!-- nextId is not visible to the clients -->
<xs:attribute name="nextId" type="xs:int" use="optional"/>
<xs:attribute name="spanishSuccession" type="xs:boolean" use="optional"
default="false"/>
<xs:attribute name="turn" type="xs:int" use="required"/>
<xs:attribute name="UUID" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>

View File

@ -26,15 +26,9 @@
<xs:element name="goods">
<xs:complexType>
<xs:attribute name="type" type="GoodsTypeId" use="required" />
<xs:attribute name="amount" type="xs:int" use="required" />
<xs:attribute name="location" type="LocationId" use="optional">
<xs:annotation>
<xs:documentation>
Optional location (carrier, colony etc) for the goods.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" type="GoodsTypeId" use="required"/>
<xs:attribute name="amount" type="xs:int" use="required"/>
<xs:attribute name="location" type="LocationId" use="optional"/>
</xs:complexType>
</xs:element>

View File

@ -44,10 +44,8 @@
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="GoodsContainerId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="GoodsContainerId" use="optional"/>
<!-- end @compat -->
</xs:complexType>
</xs:element>

View File

@ -29,21 +29,10 @@
<xs:complexType>
<xs:complexContent>
<xs:extension base="StringTemplateType" >
<!-- TODO: remove compatibility code -->
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="strings">
<xs:complexType>
<xs:attribute name="xLength" type="xs:int" use="required"/>
<xs:anyAttribute namespace="##local" processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="turn" type="xs:int" use="required"/>
<!-- TODO: remove old attribute and make eventType required -->
<xs:attribute name="type" type="HistoryEventType" use="optional"/>
<xs:attribute name="eventType" type="HistoryEventType" use="optional"/>
<xs:attribute name="eventType" type="HistoryEventType" use="required"/>
<xs:attribute name="playerId" type="PlayerId" use="optional"/>
<xs:attribute name="score" type="xs:int" use="required"/>
<xs:attribute name="turn" type="xs:int" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@ -52,11 +41,14 @@
<xs:simpleType name="HistoryEventType">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="abandon_colony" />
<xs:enumeration value="cease_fire" />
<xs:enumeration value="city_of_gold" />
<xs:enumeration value="colony_conquered" />
<xs:enumeration value="colony_destroyed" />
<xs:enumeration value="conquer_colony" />
<xs:enumeration value="form_alliance" />
<xs:enumeration value="declare_independence" />
<xs:enumeration value="declare_war" />
<xs:enumeration value="destroy_nation" />
<xs:enumeration value="destroy_settlement" />
<xs:enumeration value="discover_new_world" />
@ -66,22 +58,8 @@
<xs:enumeration value="independence" />
<xs:enumeration value="make_peace" />
<xs:enumeration value="meet_nation" />
<!-- @compat 0.10.7 -->
<xs:enumeration value="ABANDON_COLONY" />
<xs:enumeration value="CITY_OF_GOLD" />
<xs:enumeration value="COLONY_CONQUERED" />
<xs:enumeration value="COLONY_DESTROYED" />
<xs:enumeration value="CONQUER_COLONY" />
<xs:enumeration value="DECLARE_INDEPENDENCE" />
<xs:enumeration value="DESTROY_NATION" />
<xs:enumeration value="DESTROY_SETTLEMENT" />
<xs:enumeration value="DISCOVER_NEW_WORLD" />
<xs:enumeration value="DISCOVER_REGION" />
<xs:enumeration value="FOUNDING_FATHER" />
<xs:enumeration value="FOUND_COLONY" />
<xs:enumeration value="INDEPENDENCE" />
<xs:enumeration value="MEET_NATION" />
<!-- end @compat 0.10.7 -->
<xs:enumeration value="nation_destroyed" />
<xs:enumeration value="spanish_succession" />
</xs:restriction>
</xs:simpleType>

View File

@ -49,28 +49,16 @@
<xs:element name="ownedUnits">
<xs:complexType>
<xs:attribute name="id" type="UnitId"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="UnitId" use="optional"/>
<!-- end @compat -->
</xs:complexType>
</xs:element>
<xs:element ref="goodsContainer"/>
<xs:element ref="unit" />
<!-- @compat 0.10.x -->
<xs:element name="units">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="unit"/>
</xs:choice>
</xs:complexType>
</xs:element>
<!-- end @compat 0.10.x -->
<!-- @compat 0.11.0 -->
<xs:element ref="modifier"/>
<!-- end @compat 0.11.0 -->
</xs:choice>
<xs:attribute name="id" type="IndianSettlementId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="IndianSettlementId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="owner" type="PlayerId" use="required"/>
@ -78,17 +66,15 @@
<xs:attribute name="settlementType" type="xs:string"/>
<xs:attribute name="convertProgress" type="xs:int" use="optional"
default="0"/>
default="0"/>
<xs:attribute name="lastTribute" type="xs:int" use="optional"
default="0"/>
default="0"/>
<xs:attribute name="isCapital" type="xs:boolean" use="optional"
default="false"/>
default="false"/>
<xs:attribute name="learnableSkill" type="UnitTypeId"
use="optional"/>
use="optional"/>
<xs:attribute name="mostHated" type="PlayerId" use="optional"/>
<xs:attribute name="wantedGoods0" type="GoodsTypeId" use="optional"/>
<xs:attribute name="wantedGoods1" type="GoodsTypeId" use="optional"/>
<xs:attribute name="wantedGoods2" type="GoodsTypeId" use="optional"/>

View File

@ -32,9 +32,6 @@
</xs:annotation>
<xs:complexType>
<xs:attribute name="id" type="LostCityRumourId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="LostCityRumourId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="tile" type="TileId" use="required"/>
<xs:attribute name="type" type="LostCityRumourType" use="optional"/>
<xs:attribute name="name" type="xs:string" use="optional"/>
@ -53,18 +50,6 @@
<xs:enumeration value="no_such_rumour" />
<xs:enumeration value="treasure" />
<xs:enumeration value="tribal_chief" />
<!-- @compat 0.10.7 -->
<xs:enumeration value="BURIAL_GROUND" />
<xs:enumeration value="COLONIST" />
<xs:enumeration value="EXPEDITION_VANISHES" />
<xs:enumeration value="FOUNTAIN_OF_YOUTH" />
<xs:enumeration value="LEARN" />
<xs:enumeration value="MOUNDS" />
<xs:enumeration value="NOTHING" />
<xs:enumeration value="NO_SUCH_RUMOUR" />
<xs:enumeration value="TREASURE" />
<xs:enumeration value="TRIBAL_CHIEF" />
<!-- end @compat 0.10.7 -->
</xs:restriction>
</xs:simpleType>

View File

@ -34,12 +34,9 @@
<xs:element ref="tile"/>
</xs:choice>
<xs:attribute name="id" type="MapId" use="required" />
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="MapId" use="optional" />
<!-- end @compat -->
<xs:attribute name="width" type="xs:int" use="required" />
<xs:attribute name="height" type="xs:int" use="required" />
<xs:attribute name="layer" type="MapLayerType" />
<xs:attribute name="layer" type="MapLayerType" use="required"/>
<xs:attribute name="minimumLatitude" type="xs:int" use="optional" />
<xs:attribute name="maximumLatitude" type="xs:int" use="optional" />
</xs:complexType>
@ -55,15 +52,6 @@
<xs:enumeration value="rumours"/>
<xs:enumeration value="natives"/>
<xs:enumeration value="all"/>
<!-- @compat 0.10.x -->
<xs:enumeration value="NONE"/>
<xs:enumeration value="LAND"/>
<xs:enumeration value="TERRAIN"/>
<xs:enumeration value="RIVERS"/>
<xs:enumeration value="RESOURCES"/>
<xs:enumeration value="NATIVES"/>
<xs:enumeration value="ALL"/>
<!-- end @compat -->
</xs:restriction>
</xs:simpleType>

View File

@ -30,28 +30,21 @@
<xs:element name="marketData">
<xs:complexType>
<xs:attribute name="id" type="MarketDataId" use="required" />
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="MarketDataId" use="optional" />
<!-- end @compat -->
<xs:attribute name="goods-type" type="GoodsTypeId" use="required" />
<xs:attribute name="amount" type="xs:string" use="required" />
<xs:attribute name="initialPrice" type="xs:int" use="optional"
default="-1" />
<xs:attribute name="arrears" type="xs:int" use="required" />
<xs:attribute name="sales" type="xs:int" use="required" />
<xs:attribute name="incomeBeforeTaxes" type="xs:int"
use="required" />
<xs:attribute name="incomeAfterTaxes" type="xs:int"
use="required" />
<xs:attribute name="incomeBeforeTaxes" type="xs:int" use="required" />
<xs:attribute name="incomeAfterTaxes" type="xs:int" use="required" />
<xs:attribute name="traded" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="id" type="MarketId" use="required" />
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="MarketId" use="optional" />
<!-- end @compat -->
<xs:attribute name="owner" type="PlayerId" use="required" />
</xs:complexType>
</xs:element>

View File

@ -41,19 +41,12 @@
</xs:complexType>
</xs:element>
</xs:choice>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="xs:string" use="optional"/>
<!-- end @compat -->
<xs:attribute name="owner" type="PlayerId" use="required" />
<xs:attribute name="source" type="SourceId" use="optional" />
<xs:attribute name="display" type="xs:string" use="optional" />
<xs:attribute name="hasBeenDisplayed" type="xs:boolean"
use="optional" default="false" />
<xs:attribute name="messageType" type="ModelMessageType"
use="optional" />
<!-- TODO: remove support for old format and make
messageType required -->
<xs:attribute name="type" type="ModelMessageType" use="optional" />
<xs:attribute name="hasBeenDisplayed" type="xs:boolean" use="optional"
default="false" />
<xs:attribute name="messageType" type="ModelMessageType" use="optional" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
@ -80,27 +73,6 @@
<xs:enumeration value="unit_lost" />
<xs:enumeration value="warehouse_capacity" />
<xs:enumeration value="warning" />
<!-- @compat 0.10.7 -->
<xs:enumeration value="ACCEPTED_DEMANDS" />
<xs:enumeration value="BUILDING_COMPLETED" />
<xs:enumeration value="COMBAT_RESULT" />
<xs:enumeration value="DEFAULT" />
<xs:enumeration value="FOREIGN_DIPLOMACY" />
<xs:enumeration value="GIFT_GOODS" />
<xs:enumeration value="GOVERNMENT_EFFICIENCY" />
<xs:enumeration value="LOST_CITY_RUMOUR" />
<xs:enumeration value="MARKET_PRICES" />
<xs:enumeration value="MISSING_GOODS" />
<xs:enumeration value="REJECTED_DEMANDS" />
<xs:enumeration value="SONS_OF_LIBERTY" />
<xs:enumeration value="TUTORIAL" />
<xs:enumeration value="UNIT_ADDED" />
<xs:enumeration value="UNIT_DEMOTED" />
<xs:enumeration value="UNIT_IMPROVED" />
<xs:enumeration value="UNIT_LOST" />
<xs:enumeration value="WAREHOUSE_CAPACITY" />
<xs:enumeration value="WARNING" />
<!-- end @compat 0.10.7 -->
</xs:restriction>
</xs:simpleType>

View File

@ -28,31 +28,13 @@
<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"/>
@ -60,11 +42,10 @@
<!-- @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: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>
@ -79,14 +60,14 @@
<xs:complexType name="ForceType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="navalUnits">
<xs:element name="landUnits">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="abstractUnit" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="landUnits">
<xs:element name="navalUnits">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="abstractUnit" />

View File

@ -37,9 +37,8 @@
<xs:element ref="Nations" minOccurs="0" maxOccurs="unbounded"/>
<!-- end @compat 0.11.3 -->
</xs:sequence>
<xs:attribute name="nationalAdvantages" type="NationalAdvantageType" use="required" />
<xs:attribute name="selectColors" type="xs:boolean" use="optional" />
<xs:attribute name="nationalAdvantages"
type="NationalAdvantageType" use="required" />
</xs:complexType>
</xs:element>
@ -70,11 +69,6 @@
<xs:enumeration value="none" />
<xs:enumeration value="fixed" />
<xs:enumeration value="selectable" />
<!-- @compat 0.10.7 -->
<xs:enumeration value="NONE" />
<xs:enumeration value="FIXED" />
<xs:enumeration value="SELECTABLE" />
<!-- end @compat -->
</xs:restriction>
</xs:simpleType>
@ -83,11 +77,6 @@
<xs:enumeration value="available" />
<xs:enumeration value="ai_only" />
<xs:enumeration value="not_available" />
<!-- @compat 0.10.7 -->
<xs:enumeration value="AVAILABLE" />
<xs:enumeration value="AI_ONLY" />
<xs:enumeration value="NOT_AVAILABLE" />
<!-- end @compat -->
</xs:restriction>
</xs:simpleType>

View File

@ -38,6 +38,7 @@
<xs:element ref="textOption"/>
<xs:element ref="unitListOption"/>
</xs:choice>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="editable" use="optional" type="xs:boolean"/>
@ -66,6 +67,8 @@
<xs:element name="fileOption">
<xs:complexType>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
</xs:element>
@ -193,7 +196,11 @@
<xs:sequence>
<xs:element name="choice" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="value" type="RoleId" />
<!-- @compat 0.11.x -->
<xs:attribute name="value" type="RoleIdCompat" />
<!-- end @compat 0.11.x -->
<!-- Replace the above with:
<xs:attribute name="value" type="RoleId" /> -->
</xs:complexType>
</xs:element>
</xs:sequence>
@ -205,6 +212,7 @@
</xs:element>
<xs:element ref="unitType"/>
</xs:choice>
<xs:attribute name="id" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
@ -229,14 +237,6 @@
<xs:enumeration value="land_units" />
<xs:enumeration value="naval_units" />
<xs:enumeration value="units" />
<!-- @compat 0.10.7 -->
<xs:enumeration value="BUILDINGS" />
<xs:enumeration value="FOUNDING_FATHERS" />
<xs:enumeration value="IMMIGRANTS" />
<xs:enumeration value="LAND_UNITS" />
<xs:enumeration value="NAVAL_UNITS" />
<xs:enumeration value="UNITS" />
<!-- end @compat -->
</xs:restriction>
</xs:simpleType>
</xs:attribute>

View File

@ -34,13 +34,8 @@
<xs:element name="player">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="tension">
<xs:complexType>
<xs:attribute name="player" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:int" use="optional"
default="0"/>
</xs:complexType>
</xs:element>
<xs:element ref="europe"/>
<xs:element name="foundingFathers">
<xs:complexType>
@ -59,6 +54,20 @@
</xs:complexType>
</xs:element>
<xs:element ref="highSeas" />
<xs:element ref="historyEvent" />
<xs:element name="lastSale">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="price" type="xs:int" use="required"/>
<xs:attribute name="when" type="xs:int" use="required"/>
</xs:complexType>
</xs:element>
<xs:element ref="market" />
<xs:element ref="monarch" />
<xs:element name="offeredFathers">
<xs:complexType>
<xs:attribute name="xLength" use="required">
@ -83,25 +92,24 @@
</xs:complexType>
</xs:element>
<xs:element ref="europe"/>
<xs:element ref="monarch" />
<xs:element ref="historyEvent" />
<xs:element name="tension">
<xs:complexType>
<xs:attribute name="player" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:int" use="optional"
default="0"/>
</xs:complexType>
</xs:element>
<xs:element ref="tradeRoute"/>
<xs:element ref="market" />
<xs:element ref="highSeas" />
<xs:element ref="ability" />
<xs:element ref="modifier" />
</xs:choice>
<xs:attribute name="id" type="PlayerId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="PlayerId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="username" type="xs:string" use="required"/>
<xs:attribute name="nationId" type="NationId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="nationID" type="NationId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="nationType" type="NationTypeId" use="optional"/>
<xs:attribute name="admin" type="xs:boolean" use="optional"
default="false"/>
@ -132,10 +140,14 @@
<xs:attribute name="entryLocation" type="xs:string" use="optional"/>
<xs:attribute name="currentFather" type="xs:string" use="optional"/>
<!-- @compat 0.11.0 Briefly existed by mistake in this release only -->
<xs:attribute name="index.land" type="xs:string" use="optional"/>
<xs:attribute name="index.mountain" type="xs:string" use="optional"/>
<xs:attribute name="index.river" type="xs:string" use="optional"/>
<!-- end @compat 0.11.0 -->
</xs:complexType>
</xs:element>
<xs:simpleType name="PlayerType">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="native" />
@ -144,14 +156,6 @@
<xs:enumeration value="independent" />
<xs:enumeration value="royal" />
<xs:enumeration value="undead" />
<!-- @compat 0.10.x -->
<xs:enumeration value="NATIVE" />
<xs:enumeration value="COLONIAL" />
<xs:enumeration value="REBEL" />
<xs:enumeration value="INDEPENDENT" />
<xs:enumeration value="ROYAL" />
<xs:enumeration value="UNDEAD" />
<!-- end @compat 0.10.x -->
</xs:restriction>
</xs:simpleType>
@ -161,12 +165,6 @@
<xs:enumeration value="cease_fire" />
<xs:enumeration value="peace" />
<xs:enumeration value="alliance" />
<!-- @compat 0.10.x -->
<xs:enumeration value="WAR" />
<xs:enumeration value="CEASE_FIRE" />
<xs:enumeration value="PEACE" />
<xs:enumeration value="ALLIANCE" />
<!-- end @compat 0.10.x -->
</xs:restriction>
</xs:simpleType>
@ -177,18 +175,12 @@
<xs:element name="destination">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="xs:string" use="optional"/>
<!-- end @compat -->
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="id" type="xs:string" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="xs:string" use="optional"/>
<!-- end @compat -->
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -1,65 +0,0 @@
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>
Copyright (C) 2002-2017 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-unit.xsd" />
<xs:include schemaLocation="data-resource.xsd" />
<xs:element name="playerExploredTile">
<xs:annotation>
<xs:documentation>
This class contains the data visible to a specific player.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="lostCityRumour" />
<xs:element ref="missionary" />
<xs:element ref="resource" />
<xs:element ref="tileimprovement" />
</xs:choice>
<xs:attribute name="id" type="PlayerExploredTileId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="PlayerExploredTileId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="player" type="PlayerId" use="required" />
<xs:attribute name="tile" type="TileId" use="required" />
<xs:attribute name="owner" type="PlayerId" use="optional" />
<xs:attribute name="owningSettlement" type="xs:string" use="optional" />
<xs:attribute name="colonyUnitCount" type="xs:int" use="optional"
default="0" />
<xs:attribute name="colonyStockadeKey" type="xs:string" use="optional" />
<xs:attribute name="learnableSkill" type="xs:string"
use="optional" />
<xs:attribute name="wantedGoods0" type="xs:string" use="optional" />
<xs:attribute name="wantedGoods1" type="xs:string" use="optional" />
<xs:attribute name="wantedGoods2" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -48,26 +48,14 @@
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="id" type="RegionId" use="required">
<xs:annotation>
<xs:documentation>
Object ID
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="id" type="RegionId" use="required"/>
<!-- @compat 0.11.x key replaced nameKey -->
<xs:attribute name="key" type="xs:string" use="optional"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="RegionId" use="optional"/>
<!-- end @compat -->
<!-- @compat 0.11.x -->
<xs:attribute name="nameKey" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Key used to retrieve description from Messages
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="nameKey" type="xs:string" use="optional"/>
<!-- end @compat 0.11.x -->
<xs:attribute name="name" type="xs:string" use="optional" />
<xs:attribute name="claimable" type="xs:boolean" use="optional"
default="false">
<xs:annotation>
@ -107,13 +95,7 @@
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" type="RegionType" use="required">
<xs:annotation>
<xs:documentation>
Object ID
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" type="RegionType" use="required"/>
<xs:attribute name="discoveredIn" type="xs:int" use="optional"
default="-1">
<xs:annotation>
@ -129,14 +111,13 @@
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="parent" type="xs:string" use="optional">
<xs:attribute name="parent" type="RegionId" use="optional">
<xs:annotation>
<xs:documentation>
The parent Region of this Region.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
@ -150,15 +131,6 @@
<xs:enumeration value="land" />
<xs:enumeration value="mountain" />
<xs:enumeration value="desert" />
<!-- @compat 0.10.7 -->
<xs:enumeration value="OCEAN" />
<xs:enumeration value="COAST" />
<xs:enumeration value="LAKE" />
<xs:enumeration value="RIVER" />
<xs:enumeration value="LAND" />
<xs:enumeration value="MOUNTAIN" />
<xs:enumeration value="DESERT" />
<!-- end @compat 0.10.7 -->
</xs:restriction>
</xs:simpleType>

View File

@ -32,12 +32,10 @@
</xs:annotation>
<xs:complexType>
<xs:attribute name="id" type="ResourceId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="ResourceId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="quantity" type="xs:int" use="required" />
<xs:attribute name="tile" type="TileId" use="required" />
<xs:attribute name="type" type="ResourceTypeId" use="required" />
<xs:attribute name="quantity" type="xs:int" use="required" />
</xs:complexType>
</xs:element>

View File

@ -32,22 +32,23 @@
This class contains server objects.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<!-- @compat 0.11.x -->
<xs:element ref="serverObjects" />
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element ref="game" minOccurs="1" maxOccurs="1"/>
<xs:element ref="aiMain" minOccurs="0" maxOccurs="1"/>
<!-- @compat 0.11.x Dropped for 0.12.0 -->
<xs:element ref="serverObjects" minOccurs="0" maxOccurs="1"/>
<!-- end @compat 0.11.x -->
<xs:element ref="game" />
<xs:element ref="aiMain" />
</xs:choice>
<xs:attribute name="activeUnit" type="UnitId" use="optional" />
<xs:attribute name="debug" type="xs:string" use="optional" />
<xs:attribute name="owner" type="xs:string" use="required" />
<xs:attribute name="publicServer" type="xs:boolean" use="required" />
<xs:attribute name="randomState" type="xs:string" use="required" />
<xs:attribute name="singleplayer" type="xs:boolean" use="required" />
<xs:attribute name="version" type="xs:int" use="required" />
<xs:attribute name="randomState" type="xs:string" use="required" />
</xs:complexType>
</xs:element>

View File

@ -25,6 +25,7 @@
<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>
@ -79,28 +80,20 @@
<xs:element name="serverIndianSettlement">
<xs:complexType>
<xs:attribute name="id" type="IndianSettlementId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="IndianSettlementId" use="optional"/>
<!-- end @compat -->
</xs:complexType>
</xs:element>
<xs:element name="serverPlayer">
<xs:complexType>
<xs:attribute name="id" type="PlayerId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="PlayerId" use="optional"/>
<!-- end @compat -->
</xs:complexType>
</xs:element>
<xs:element name="serverUnit">
<xs:complexType>
<xs:attribute name="id" type="UnitId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="UnitId" use="optional"/>
<!-- end @compat -->
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.x -->
</xs:schema>

View File

@ -32,17 +32,19 @@
</xs:annotation>
</xs:element>
<xs:complexType name="StringTemplateType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="key" />
<xs:element name="key">
<xs:complexType>
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element ref="stringTemplate" />
</xs:choice>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="templateType" type="TemplateType" use="required" />
<xs:attribute name="templateType" type="TemplateType" use="required" />
</xs:complexType>
<xs:simpleType name="TemplateType">
@ -51,19 +53,7 @@
<xs:enumeration value="name" />
<xs:enumeration value="label" />
<xs:enumeration value="template" />
<!-- @compat 0.10.7 -->
<xs:enumeration value="KEY" />
<xs:enumeration value="NAME" />
<xs:enumeration value="LABEL" />
<xs:enumeration value="TEMPLATE" />
<!-- end @compat -->
</xs:restriction>
</xs:simpleType>
<xs:element name="key">
<xs:complexType>
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -26,40 +26,27 @@
<xs:include schemaLocation="data-cachedTile.xsd" />
<xs:include schemaLocation="data-colony.xsd" />
<xs:include schemaLocation="data-indianSettlement.xsd" />
<xs:include schemaLocation="data-tileitemcontainer.xsd" />
<xs:include schemaLocation="data-playerExploredTile.xsd" />
<xs:include schemaLocation="data-tileItemContainer.xsd" />
<xs:include schemaLocation="data-unit.xsd" />
<xs:element name="tile">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="cachedTile" />
<xs:element ref="colony" />
<xs:element ref="indianSettlement" />
<xs:element ref="tileItemContainer" />
<xs:element ref="unit" />
<!-- @compat 0.10.x -->
<xs:element ref="playerExploredTile" />
<xs:element ref="units" />
<!-- end @compat 0.10.x -->
<xs:element ref="cachedTile" minOccurs="0" maxOccurs="1"/>
<xs:element ref="colony" minOccurs="0" maxOccurs="1"/>
<xs:element ref="indianSettlement" minOccurs="0" maxOccurs="1"/>
<xs:element ref="tileItemContainer" minOccurs="0" maxOccurs="1"/>
<xs:element ref="unit"/>
<!-- @compat 0.11.3 -->
<xs:element ref="tileitemcontainer" />
<xs:element ref="tileitemcontainer"/>
<!-- end @compat 0.11.3 -->
</xs:choice>
<xs:attribute name="id" type="TileId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="TileId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="x" type="xs:int" use="required" />
<xs:attribute name="y" type="xs:int" use="required" />
<xs:attribute name="type" type="TileTypeId" use="required">
<xs:annotation>
<xs:documentation>
Tile type
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" type="TileTypeId" use="required"/>
<xs:attribute name="region" type="RegionId" use="optional">
<xs:annotation>
@ -68,17 +55,14 @@
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fishBonus" type="xs:int" default="0"
use="optional" />
<xs:attribute name="lostCityRumour" type="xs:boolean"
default="false" use="optional" />
<xs:attribute name="contiguity" type="xs:int" use="optional" />
<xs:attribute name="lostCityRumour" type="xs:boolean" use="optional"
default="false"/>
<xs:attribute name="connected" type="xs:int" use="optional" />
<xs:attribute name="moveToEurope" type="xs:boolean" use="optional" />
<xs:attribute name="owner" type="xs:string" use="optional" />
<xs:attribute name="owningSettlement" type="xs:string"
use="optional" />
<xs:attribute name="owningSettlement" type="xs:string" use="optional" />
<xs:attribute name="style" type="xs:int" use="optional" />
<xs:attribute name="contiguity" type="xs:int" use="optional" />
</xs:complexType>
</xs:element>

View File

@ -24,46 +24,16 @@
<xs:include schemaLocation="../spec/spec-model.xsd"/>
<!-- @compat 0.11.3 -->
<xs:simpleType name="tileimprovementId">
<xs:restriction base="xs:string">
<xs:pattern value="tileimprovement:([0-9])+" />
</xs:restriction>
</xs:simpleType>
<xs:element name="tileimprovement">
<xs:annotation>
<xs:documentation>
Represents a tile improvement, such as a river or road.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="id" type="tileimprovementId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="tileimprovementId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="tile" type="TileId" use="required" />
<xs:attribute name="type" type="TileImprovementTypeId" use="required" />
<xs:attribute name="turns" type="xs:int" use="required" />
<xs:attribute name="magnitude" type="xs:int" use="required" />
<xs:attribute name="style" type="xs:int" use="optional" />
<xs:attribute name="virtual" type="xs:boolean" use="optional"
default="false" />
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.3 -->
<xs:element name="tileImprovement">
<xs:annotation>
<xs:documentation>
Represents a tile improvement, such as a river or road.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="id" type="TileImprovementId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="TileImprovementId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="tile" type="TileId" use="required" />
<xs:attribute name="type" type="TileImprovementTypeId" use="required" />
<xs:attribute name="turns" type="xs:int" use="required" />
@ -74,5 +44,26 @@
</xs:complexType>
</xs:element>
<!-- @compat 0.11.3 -->
<xs:simpleType name="tileimprovementId">
<xs:restriction base="xs:string">
<xs:pattern value="tileimprovement:([0-9])+" />
</xs:restriction>
</xs:simpleType>
<xs:element name="tileimprovement">
<xs:complexType>
<xs:attribute name="id" type="tileimprovementId" use="required"/>
<xs:attribute name="tile" type="TileId" use="required" />
<xs:attribute name="type" type="TileImprovementTypeId" use="required" />
<xs:attribute name="turns" type="xs:int" use="required" />
<xs:attribute name="magnitude" type="xs:int" use="required" />
<xs:attribute name="style" type="xs:int" use="optional" />
<xs:attribute name="virtual" type="xs:boolean" use="optional"
default="false" />
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.3 -->
</xs:schema>

View File

@ -24,38 +24,9 @@
<xs:include schemaLocation="../spec/spec-model.xsd" />
<xs:include schemaLocation="data-resource.xsd" />
<xs:include schemaLocation="data-tileimprovement.xsd" />
<xs:include schemaLocation="data-tileImprovement.xsd" />
<xs:include schemaLocation="data-lostCityRumour.xsd" />
<!-- @compat 0.11.3 -->
<xs:simpleType name="tileitemcontainerId">
<xs:restriction base="xs:string">
<xs:pattern value="tileitemcontainer:([0-9])+" />
</xs:restriction>
</xs:simpleType>
<xs:element name="tileitemcontainer">
<xs:annotation>
<xs:documentation>
Contains TileItems and can be used by a Tile to
make certain tasks easier.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="resource" />
<xs:element ref="tileimprovement" />
<xs:element ref="lostCityRumour" />
</xs:choice>
<xs:attribute name="id" type="tileitemcontainerId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="tileitemcontainerId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="tile" type="TileId" use="required" />
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.3 -->
<xs:element name="tileItemContainer">
<xs:annotation>
<xs:documentation>
@ -65,19 +36,32 @@
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="lostCityRumour" />
<xs:element ref="resource" />
<xs:element ref="tileImprovement" />
<xs:element ref="lostCityRumour" />
<!-- @compat 0.11.3 -->
<xs:element ref="tileimprovement" />
<!-- end @compat 0.11.3 -->
</xs:choice>
<xs:attribute name="id" type="TileItemContainerId" use="required"/>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="TileItemContainerId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="tile" type="TileId" use="required" />
</xs:complexType>
</xs:element>
<!-- @compat 0.11.3 -->
<xs:element name="tileitemcontainer">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="resource" />
<xs:element ref="tileimprovement" />
<xs:element ref="lostCityRumour" />
</xs:choice>
<xs:attribute name="id" type="TileItemContainerId" use="required"/>
<xs:attribute name="tile" type="TileId" use="required" />
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.3 -->
</xs:schema>

View File

@ -33,15 +33,6 @@
<xs:element name="cargo">
<xs:complexType>
<xs:attribute name="id" type="GoodsTypeId" use="optional"/>
<!-- TODO: remove compatibility code and make id required -->
<xs:attribute name="xLength" type="xs:int" use="optional"/>
<xs:anyAttribute namespace="##local" processContents="skip">
<xs:annotation>
<xs:documentation>
Cargo Type _index_ inside attributes "x0", "x1", "x2" etc.
</xs:documentation>
</xs:annotation>
</xs:anyAttribute>
</xs:complexType>
</xs:element>
</xs:choice>
@ -49,28 +40,12 @@
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="id" type="TradeRouteId" use="required">
<xs:annotation>
<xs:documentation>Object ID</xs:documentation>
</xs:annotation>
</xs:attribute>
<!-- @compat 0.10.x -->
<xs:attribute name="ID" type="TradeRouteId" use="optional"/>
<!-- end @compat -->
<xs:attribute name="owner" type="PlayerId" use="required">
<xs:annotation>
<xs:documentation>
ID of the player
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Trade route name
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="id" type="TradeRouteId" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="owner" type="PlayerId" use="required"/>
<xs:attribute name="silent" type="xs:boolean" use="optional"/>
</xs:complexType>
</xs:element>

View File

@ -24,7 +24,8 @@
<xs:include schemaLocation="../spec/spec-model.xsd"/>
<xs:include schemaLocation="data-goodsContainer.xsd"/>
<xs:include schemaLocation="data-tileimprovement.xsd"/>
<xs:include schemaLocation="data-equipment.xsd"/>
<xs:include schemaLocation="data-tileImprovement.xsd"/>
<xs:element name="units">
<xs:complexType>
@ -61,61 +62,51 @@
<xs:complexType name="unitElementType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="goodsContainer"/>
<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>
<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" />
<!-- @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="role" type="RoleId" use="required"/>
<!-- @compat 0.11.x To Become Required -->
<xs:attribute name="roleCount" type="xs:int" use="optional"/>
<!-- end @compat -->
<!-- end @compat 0.11.x -->
<xs:attribute name="owner" type="PlayerId" use="required"/>
<xs:attribute name="turnsOfTraining" type="xs:int" 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="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="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="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"/>
<!-- Visible to other players when a carrier -->
<xs:attribute name="visibleGoodsCount" type="xs:int" use="optional"/>
</xs:complexType>
@ -132,18 +123,6 @@
<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>

View File

@ -28,6 +28,9 @@
<xs:include schemaLocation="data-cachedTile.xsd" />
<xs:include schemaLocation="data-colony.xsd" />
<xs:include schemaLocation="data-colonyTile.xsd" />
<!-- @compat 0.11.x -->
<xs:include schemaLocation="data-equipment.xsd" />
<!-- end @compat 0.11.x -->
<xs:include schemaLocation="data-europe.xsd" />
<xs:include schemaLocation="data-exportData.xsd" />
<xs:include schemaLocation="data-goods.xsd" />
@ -37,16 +40,12 @@
<xs:include schemaLocation="data-market.xsd" />
<xs:include schemaLocation="data-monarch.xsd" />
<xs:include schemaLocation="data-player.xsd" />
<!-- @compat 0.10.x -->
<xs:include schemaLocation="data-playerExploredTile.xsd" />
<!-- end @compat 0.10.x -->
<xs:include schemaLocation="data-region.xsd" />
<xs:include schemaLocation="data-resource.xsd" />
<xs:include schemaLocation="data-savedGame.xsd" />
<xs:include schemaLocation="data-template.xsd" />
<xs:include schemaLocation="data-tile.xsd" />
<xs:include schemaLocation="data-tileimprovement.xsd" />
<xs:include schemaLocation="data-tileitemcontainer.xsd" />
<xs:include schemaLocation="data-tileImprovement.xsd" />
<xs:include schemaLocation="data-tileItemContainer.xsd" />
<xs:include schemaLocation="data-tradeRoute.xsd" />
<xs:include schemaLocation="data-unit.xsd" />

View File

@ -32,6 +32,8 @@
<xs:attribute name="preserve" use="optional" type="xs:boolean"/>
<xs:attribute name="duration" type="xs:int"/>
<xs:attribute name="firstTurn" type="xs:int" use="optional"/>
<xs:attribute name="lastTurn" type="xs:int" use="optional"/>
<xs:attribute name="source" type="xs:string"/>
<xs:attribute name="temporary" type="xs:boolean"/>
</xs:complexType>
@ -56,7 +58,7 @@
<xs:attribute name="type" type="ModifierType"/>
<xs:attribute name="value" type="xs:float"/>
<!-- @compat 0.11.3 -->
<xs:attribute name="incrementType" type="ModifierType"/>
<xs:attribute name="incrementType" type="ModifierType" use="optional"/>
<!-- @compat 0.11.3 -->
</xs:extension>
</xs:complexContent>
@ -188,6 +190,21 @@
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<!-- @compat 0.11.3 -->
<xs:attribute name="operandType">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="UNITS" />
<xs:enumeration value="BUILDINGS" />
<xs:enumeration value="SETTLEMENTS" />
<xs:enumeration value="FOUNDING_FATHERS" />
<xs:enumeration value="YEAR" />
<xs:enumeration value="OPTION" />
<xs:enumeration value="NONE" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<!-- end @compat 0.11.3 -->
<xs:attribute name="scope-level">
<xs:simpleType>
<xs:restriction base="xs:token">
@ -204,6 +221,18 @@
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<!-- @compat 0.11.3 -->
<xs:attribute name="scopeLevel">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="SETTLEMENT" />
<xs:enumeration value="PLAYER" />
<xs:enumeration value="GAME" />
<xs:enumeration value="NONE" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<!-- end @compat 0.11.3 -->
<xs:attribute name="value" type="xs:integer" />
</xs:extension>
</xs:complexContent>
@ -240,37 +269,4 @@
<!-- end @compat 0.11.3 -->
</xs:complexType>
<!-- Dead in 0.11.6. TODO: remove in due course.
<xs:element name="action">
<xs:complexType>
<xs:attribute name="tileimprovement-type" use="required" type="TileImprovementTypeId"/>
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="image-id" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="limits">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="limit"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="PlunderType">
<xs:attribute name="probability" type="PercentageType"/>
<xs:attribute name="minimum" type="xs:int"/>
<xs:attribute name="maximum" type="xs:int"/>
<xs:attribute name="factor" type="xs:int"/>
</xs:complexType>
<xs:element name="skirmish">
<xs:complexType>
<xs:attribute name="defence-factor" use="required" type="xs:int"/>
</xs:complexType>
</xs:element>
-->
</xs:schema>

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
* Copyright (C) 2002-2017 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/>.
In case of incompatible changes, please update version number and
XSD schema for validation.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!-- Equipment Types, to go away -->
<xs:element name="equipment-types">
<xs:complexType>
<xs:sequence>
<xs:element name="delete" minOccurs="0" maxOccurs="unbounded"
type="EquipmentTypeId" />
<xs:element ref="equipment-type" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="equipment-type">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ability"/>
<xs:element ref="capture-equipment"/>
<xs:element ref="compatible-equipment"/>
<xs:element ref="limit"/>
<xs:element ref="modifier"/>
<xs:element ref="required-ability"/>
<xs:element ref="required-location-ability"/>
<xs:element ref="required-goods"/>
</xs:choice>
<xs:attribute name="id" use="required" type="xs:ID"/>
<xs:attribute name="extends" use="optional" type="xs:string" />
<xs:attribute name="preserve" use="optional" type="xs:boolean"/>
<xs:attribute name="abstract" use="optional" type="xs:boolean" />
<xs:attribute name="combat-loss-priority" type="xs:int"/>
<xs:attribute name="maximum-count" type="xs:nonNegativeInteger"/>
<xs:attribute name="role" type="RoleId"/>
</xs:complexType>
</xs:element>
<xs:element name="compatible-equipment">
<xs:complexType>
<xs:attribute name="id" use="required" type="EquipmentTypeId"/>
</xs:complexType>
</xs:element>
<xs:element name="capture-equipment">
<xs:complexType>
<xs:attribute name="id" type="EquipmentTypeId"/>
<xs:attribute name="by-indians" type="xs:boolean"/>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -56,6 +56,12 @@
<xs:attribute name="id" use="required" type="UnitTypeId"/>
</xs:complexType>
</xs:element>
<xs:element name="upgrade">
<xs:complexType>
<xs:attribute name="from-id" type="xs:string" use="required"/>
<xs:attribute name="to-id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="id" use="required" type="xs:ID"/>

View File

@ -40,6 +40,14 @@
</xs:restriction>
</xs:simpleType>
<!-- @compat 0.11.x Gone in 0.12.x -->
<xs:simpleType name="EquipmentTypeId">
<xs:restriction base="xs:string">
<xs:pattern value="model\.equipment(\.indian)?\.([a-zA-Z]+)" />
</xs:restriction>
</xs:simpleType>
<!-- end @compat 0.11.x -->
<xs:simpleType name="FoundingFatherId">
<xs:restriction base="xs:string">
<xs:pattern value="model\.foundingFather\.([a-zA-Z]+)" />
@ -82,6 +90,14 @@
</xs:restriction>
</xs:simpleType>
<!-- @compat 0.11.0 -->
<xs:simpleType name="RoleIdCompat">
<xs:restriction base="xs:string">
<xs:pattern value="(DEFAULT|DRAGOON|SOLDIER|model\.role\.([a-zA-Z]+))" />
</xs:restriction>
</xs:simpleType>
<!-- end @compat 0.11.0 -->
<xs:simpleType name="SettlementTypeId">
<xs:restriction base="xs:string">
<xs:pattern value="model\.settlement(\.[a-zA-Z]+)+" />

View File

@ -65,10 +65,12 @@
<xs:attribute name="occupation-string" type="xs:string"/>
<xs:attribute name="required-role" use="optional" type="RoleId"/>
<xs:attribute name="zIndex" type="xs:nonNegativeInteger"/>
<!-- @compat 0.10.x -->
<!-- @compat 0.11.x -->
<xs:attribute name="expended-equipment-type" type="EquipmentTypeId"/>
<xs:attribute name="deliver-goods-type" type="GoodsTypeId"/>
<xs:attribute name="deliver-amount" type="xs:nonNegativeInteger"/>
<!-- end @compat 0.10.x -->
<!-- end @compat 0.11.x -->
</xs:complexType>
</xs:element>
<!-- end @compat 0.11.3 -->
@ -119,10 +121,12 @@
<!-- @compat 0.11.3 -->
<xs:attribute name="exposeResourcePercent" type="xs:nonNegativeInteger"/>
<!-- end @compat 0.11.3 -->
<!-- @compat 0.10.x -->
<!-- @compat 0.11.x -->
<xs:attribute name="deliver-amount" type="xs:nonNegativeInteger"/>
<xs:attribute name="deliver-goods-type" type="GoodsTypeId"/>
<!-- end @compat 0.10.x -->
<xs:attribute name="expended-equipment-type" type="EquipmentTypeId"/>
<!-- end @compat 0.11.x -->
</xs:complexType>
</xs:element>
@ -130,7 +134,7 @@
Replace the non-specific "change" with tile-type-change. -->
<xs:element name="change">
<xs:complexType>
<xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name="production" type="AbstractGoodsType"/>
</xs:sequence>
<xs:attribute name="from" use="required" type="TileTypeId"/>
@ -141,7 +145,7 @@
<xs:element name="tile-type-change">
<xs:complexType>
<xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name="production" type="AbstractGoodsType"/>
</xs:sequence>
<xs:attribute name="from" use="required" type="TileTypeId"/>

View File

@ -20,7 +20,7 @@
You should have received a copy of the GNU General Public License
along with FreeCol. If not, see http://www.gnu.org/licenses
XSD for specification version 0.114
XSD for specification version 0.116
CHANGELOG:
0.26: add capture-equipment
0.27: add limits
@ -113,12 +113,16 @@
0.113: Added competence-factor attribute to building-type.
0.114: Drop upgrade element from founding-father.
0.115: Drop equipment.
0.116: Mass update to fix neglect of saved game format.
</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="spec-model.xsd" />
<xs:include schemaLocation="spec-building-types.xsd"/>
<xs:include schemaLocation="spec-disasters.xsd"/>
<!-- @compat 0.11.x -->
<xs:include schemaLocation="spec-equipment-types.xsd"/>
<!-- end @compat 0.11.x -->
<xs:include schemaLocation="spec-events.xsd"/>
<xs:include schemaLocation="spec-founding-fathers.xsd"/>
<xs:include schemaLocation="spec-goods-types.xsd"/>
@ -155,6 +159,9 @@
<!-- @compat 0.11.3 -->
<xs:element ref="tileimprovement-types"/>
<!-- end @compat 0.11.3 -->
<!-- @compat 0.11.x -->
<xs:element ref="equipment-types"/>
<!-- end @compat 0.11.x -->
</xs:choice>
<xs:attribute name="id" type="xs:ID"/>

View File

@ -43,13 +43,11 @@ public class HistoryEvent extends StringTemplate {
CITY_OF_GOLD,
FOUND_COLONY,
ABANDON_COLONY,
CONQUER_COLONY,
CONQUER_COLONY, // You conquer a colony
COLONY_DESTROYED,
COLONY_CONQUERED,
COLONY_CONQUERED, // Your colony is conquered
DESTROY_SETTLEMENT,
// FIXME: when exactly is a European nation destroyed?
DESTROY_NATION,
NATION_DESTROYED,
DESTROY_NATION, // Native nation that is
FOUNDING_FATHER,
DECLARE_INDEPENDENCE,
INDEPENDENCE,
@ -57,7 +55,11 @@ public class HistoryEvent extends StringTemplate {
DECLARE_WAR,
CEASE_FIRE,
MAKE_PEACE,
FORM_ALLIANCE;
FORM_ALLIANCE,
// FIXME: This is badly named, it should be NATION_WITHDRAWN
// as it is used when a European nation permanently leaves the
// New World
NATION_DESTROYED;
/**
* Get the stem key.
@ -239,7 +241,6 @@ public class HistoryEvent extends StringTemplate {
eventType = xr.getAttribute(EVENT_TYPE_TAG,
HistoryEventType.class, (HistoryEventType)null);
playerId = xr.getAttribute(PLAYER_ID_TAG, (String)null);
score = xr.getAttribute(SCORE_TAG, 0);