File: data-unit.xsd

package info (click to toggle)
freecol 1.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 255,300 kB
  • sloc: java: 147,579; xml: 8,208; sh: 493; lisp: 439; awk: 21; makefile: 14
file content (129 lines) | stat: -rw-r--r-- 5,029 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:annotation>
    <xs:documentation>

      Copyright (C) 2002-2021  The FreeCol Team

      This file is part of FreeCol.

      FreeCol is free software: you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation, either version 2 of the License, or
      (at your option) any later version.

      FreeCol is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
      GNU General Public License for more details.

      You should have received a copy of the GNU General Public License
      along with FreeCol. If not, see http://www.gnu.org/licenses
    </xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="../spec/spec-model.xsd"/>
  <xs:include schemaLocation="data-goodsContainer.xsd"/>
  <xs:include schemaLocation="data-equipment.xsd"/>
  <xs:include schemaLocation="data-tileImprovement.xsd"/>

  <xs:element name="units">
    <xs:complexType>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="unit"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="unit" type="unitElementType">
    <xs:annotation>
      <xs:documentation>
	      Represents all pieces that can be moved on the
	      map-board. This includes: colonists, ships, wagon trains e.t.c.

	      Every Unit is owned by a Player and has a Location.
      </xs:documentation>
    </xs:annotation>
  </xs:element>

  <xs:element name="missionary">
    <xs:annotation>
      <xs:documentation>
        Unit specialization used in Indian settlements.
      </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="unit" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="unitElementType">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="goodsContainer"/>
      <xs:element ref="tileImprovement"/>
      <xs:element ref="unit"/>

      <!-- @compat 0.11.3 -->
      <xs:element ref="tileimprovement"/>
      <!-- end @compat 0.11.3 -->
      <!-- @compat 0.11.x -->
      <xs:element ref="equipment"/>
      <!-- end @compat 0.11.x -->
    </xs:choice>

    <xs:attribute name="id" type="UnitId" use="required" />

    <xs:attribute name="name" type="xs:string" use="optional"/>
    <xs:attribute name="unitType" type="xs:string" use="required"/>
    <xs:attribute name="movesLeft" type="xs:int" use="required"/>
    <xs:attribute name="state" type="UnitState" use="required"/>
    <xs:attribute name="role" type="RoleId" use="required"/>
    <!-- @compat 0.11.x To Become Required -->
    <xs:attribute name="roleCount" type="xs:int" use="optional"/>
    <!-- end @compat 0.11.x -->

    <xs:attribute name="owner" type="PlayerId" use="required"/>
    <xs:attribute name="ethnicity" type="NationId" use="optional"/>
    <xs:attribute name="nationality" type="NationId" use="optional"/>

    <xs:attribute name="location" type="LocationId" use="optional"/>
    <xs:attribute name="treasureAmount" type="xs:int" use="required"/>

    <!-- Privileged information -->
    <xs:attribute name="entryLocation" type="TileId" use="optional"/>
    <xs:attribute name="turnsOfTraining" type="xs:int" use="optional"/>
    <xs:attribute name="workType" type="xs:string" use="optional"/>
    <xs:attribute name="experienceType" type="xs:string" use="optional"/>
    <xs:attribute name="experience" type="xs:int" use="optional"/>
    <xs:attribute name="indianSettlement" type="xs:string" use="optional"/>
    <xs:attribute name="workLeft" type="xs:integer" use="optional"/>
    <xs:attribute name="hitPoints" type="xs:int" use="optional"/>
    <xs:attribute name="attrition" type="xs:int" use="optional"/>
    <xs:attribute name="student" type="UnitId" use="optional"/>
    <xs:attribute name="teacher" type="UnitId" use="optional"/>
    <xs:attribute name="destination" type="LocationId" use="optional"/>
    <xs:attribute name="tradeRoute" type="TradeRouteId" use="optional"/>
    <xs:attribute name="currentStop" type="xs:int" use="optional"/>
    <!-- Visible to other players when a carrier -->
    <xs:attribute name="visibleGoodsCount" type="xs:int" use="optional"/>
  </xs:complexType>


  <xs:simpleType name="UnitState">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="active" />
      <xs:enumeration value="fortified" />
      <xs:enumeration value="sentry" />
      <xs:enumeration value="in_colony" />
      <xs:enumeration value="improving" />
      <xs:enumeration value="to_europe" />
      <xs:enumeration value="in_europe" />
      <xs:enumeration value="to_america" />
      <xs:enumeration value="fortifying" />
      <xs:enumeration value="skipped" />
    </xs:restriction>
  </xs:simpleType>

</xs:schema>