comparison schemas/race.xsd @ 224:f097888efcfe

Fixes #233: "unitPoints" attribute is badly named * Rename "unitPoints" to "basePoints" * Re-order schema to more sensible name * Use new name in code when parsing XML (object property already has sensible name) Also: * Rename "dtds" folder to more accurate "schemas" * Change references to folder in code
author IBBoard <dev@ibboard.co.uk>
date Mon, 14 Dec 2009 20:50:39 +0000
parents
children 0d5a17f33a36
comparison
equal deleted inserted replaced
223:fe5a03d73918 224:f097888efcfe
1 <?xml version="1.0"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:core="http://ibboard.co.uk/warfoundry/core" xmlns:cats="http://ibboard.co.uk/warfoundry/cats"
3 targetNamespace="http://ibboard.co.uk/warfoundry/race" xmlns="http://ibboard.co.uk/warfoundry/race" elementFormDefault="qualified">
4 <xs:element name="race">
5 <xs:complexType>
6 <xs:all>
7 <xs:element name="units">
8 <xs:complexType>
9 <xs:sequence>
10 <xs:element name="unit" maxOccurs="unbounded">
11 <xs:complexType>
12 <xs:all>
13 <xs:element name="stats">
14 <xs:complexType>
15 <xs:sequence>
16 <xs:element name="stat" maxOccurs="unbounded">
17 <xs:complexType>
18 <xs:simpleContent>
19 <xs:extension base="xs:string">
20 <xs:attribute name="name" type="xs:string" use="required"/>
21 <xs:anyAttribute/>
22 </xs:extension>
23 </xs:simpleContent>
24 </xs:complexType>
25 </xs:element>
26 </xs:sequence>
27 <xs:attribute name="statSet" type="xs:string" default="" />
28 <xs:anyAttribute/>
29 </xs:complexType>
30 </xs:element>
31 <xs:element name="equipmentSlots" minOccurs="0">
32 <xs:complexType>
33 <xs:sequence>
34 <xs:element name="equipmentSlot" maxOccurs="unbounded">
35 <xs:complexType>
36 <xs:all>
37 <xs:element name="maxLimit" minOccurs="0" type="core:limit" />
38 <xs:element ref="core:extension" minOccurs="0" />
39 </xs:all>
40 <xs:attribute name="name" type="xs:string" use="required"/>
41 <xs:anyAttribute/>
42 </xs:complexType>
43 </xs:element>
44 </xs:sequence>
45 </xs:complexType>
46 </xs:element>
47 <xs:element name="unitEquipment" minOccurs="0">
48 <xs:complexType>
49 <xs:sequence>
50 <xs:element name="unitEquipmentItem" maxOccurs="unbounded">
51 <xs:complexType>
52 <xs:all>
53 <xs:element name="minLimit" minOccurs="0" type="core:limit" />
54 <xs:element name="maxLimit" minOccurs="0" type="core:limit" />
55 <xs:element ref="core:extension" minOccurs="0" />
56 </xs:all>
57 <xs:attribute name="id" type="xs:IDREF" />
58 <xs:attribute name="required" type="xs:boolean" default="false"/>
59 <!-- exclusivityGroup is deprecated in favour of the comma-separated exclusivityGroups -->
60 <xs:attribute name="exclusivityGroup" type="xs:string" default=""/>
61 <xs:attribute name="exclusivityGroups" type="xs:string" default=""/>
62 <xs:attribute name="equipmentSlot" type="xs:string"/>
63 <xs:attribute name="roundDirection" type="core:updowntype" default="up"/>
64 <xs:attribute name="costMultiplier" type="core:nonNegativeDouble" default="1"/>
65 <xs:attribute name="costRounding" type="costroundingtype" default="UpToHalf"/>
66 <xs:anyAttribute/>
67 </xs:complexType>
68 </xs:element>
69 </xs:sequence>
70 <xs:anyAttribute/>
71 </xs:complexType>
72 </xs:element>
73 <xs:element name="unitAbilities" minOccurs="0">
74 <xs:complexType>
75 <xs:sequence>
76 <xs:element name="unitAbility" maxOccurs="unbounded">
77 <xs:complexType>
78 <xs:attribute name="abilityID" type="xs:IDREF" />
79 <xs:attribute name="required" type="xs:boolean" default="true"/>
80 <xs:anyAttribute/>
81 </xs:complexType>
82 </xs:element>
83 </xs:sequence>
84 <xs:anyAttribute/>
85 </xs:complexType>
86 </xs:element>
87 <xs:element name="requirements" minOccurs="0">
88 <xs:complexType>
89 <xs:sequence>
90 <xs:element name="requirement">
91 <xs:complexType>
92 <xs:simpleContent>
93 <xs:extension base="xs:string">
94 <xs:attribute name="requirementName" type="xs:string" use="required"/>
95 <xs:anyAttribute/>
96 </xs:extension>
97 </xs:simpleContent>
98 </xs:complexType>
99 </xs:element>
100 </xs:sequence>
101 <xs:anyAttribute/>
102 </xs:complexType>
103 </xs:element>
104 <xs:element name="contains" minOccurs="0">
105 <xs:complexType>
106 <xs:sequence>
107 <xs:element name="containedUnit" maxOccurs="unbounded">
108 <xs:complexType>
109 <xs:attribute name="containedID" type="xs:IDREF" use="required"/>
110 <xs:anyAttribute/>
111 </xs:complexType>
112 </xs:element>
113 </xs:sequence>
114 <xs:anyAttribute/>
115 </xs:complexType>
116 </xs:element>
117 <xs:element name="extraData" minOccurs="0">
118 <xs:complexType>
119 <xs:sequence>
120 <xs:element name="data">
121 <xs:complexType>
122 <xs:simpleContent>
123 <xs:extension base="xs:string">
124 <xs:attribute name="id" type="xs:ID" use="required"/>
125 <xs:anyAttribute/>
126 </xs:extension>
127 </xs:simpleContent>
128 </xs:complexType>
129 </xs:element>
130 </xs:sequence>
131 <xs:anyAttribute/>
132 </xs:complexType>
133 </xs:element>
134 <xs:element name="notes" type="xs:string" minOccurs="0" />
135 <xs:element ref="core:extension" minOccurs="0" />
136 </xs:all>
137 <xs:attribute name="id" type="xs:ID" />
138 <xs:attribute name="typeName" type="xs:string" use="required"/>
139 <xs:attribute name="cat" type="xs:string" use="required"/>
140 <xs:attribute name="unitPoints" type="core:nonNegativeNonInfiniteDouble" default="0"/>
141 <xs:attribute name="points" type="core:nonNegativeNonInfiniteDouble" use="required"/>
142 <xs:attribute name="minNum" type="xs:nonNegativeInteger" default="0"/>
143 <xs:attribute name="maxNum" type="core:positiveOrInfiniteInteger" default="-1"/>
144 <xs:attribute name="minSize" type="xs:nonNegativeInteger" default="5"/>
145 <xs:attribute name="maxSize" type="core:positiveOrInfiniteInteger" default="-1"/>
146 <xs:attribute name="baseSize" type="xs:nonNegativeInteger" default="0"/>
147 <xs:anyAttribute/>
148 </xs:complexType>
149 </xs:element>
150 </xs:sequence>
151 </xs:complexType>
152 </xs:element>
153 <xs:element name="categories" type="cats:categoriestype" minOccurs="0" />
154 <xs:element name="equipment" minOccurs="0">
155 <xs:complexType>
156 <xs:sequence>
157 <xs:element name="equipmentItem" maxOccurs="unbounded">
158 <xs:complexType>
159 <xs:all>
160 <xs:element name="description" type="xs:string" minOccurs="0" />
161 <xs:element ref="core:extension" minOccurs="0" />
162 </xs:all>
163 <xs:attribute name="id" type="xs:ID" use="required"/>
164 <xs:attribute name="name" type="xs:string" use="required"/>
165 <xs:attribute name="cost" type="core:nonNegativeNonInfiniteDouble" use="required"/>
166 <xs:attribute name="armourType" type="armourtype" default="None"/>
167 <xs:anyAttribute/>
168 </xs:complexType>
169 </xs:element>
170 </xs:sequence>
171 <xs:anyAttribute/>
172 </xs:complexType>
173 </xs:element>
174 <xs:element name="abilities" minOccurs="0">
175 <xs:complexType>
176 <xs:sequence>
177 <xs:element name="ability" maxOccurs="unbounded">
178 <xs:complexType>
179 <xs:all>
180 <xs:element name="description" type="xs:string" />
181 <xs:element ref="core:extension" minOccurs="0" />
182 </xs:all>
183 <xs:attribute name="id" type="xs:ID" use="required"/>
184 <xs:attribute name="name" type="xs:string" use="required"/>
185 <xs:anyAttribute/>
186 </xs:complexType>
187 </xs:element>
188 </xs:sequence>
189 <xs:anyAttribute/>
190 </xs:complexType>
191 </xs:element>
192 <xs:element ref="core:extension" minOccurs="0" />
193 </xs:all>
194 <xs:attribute name="id" type="xs:ID" />
195 <xs:attribute name="subid" type="xs:string" default=""/>
196 <xs:attribute name="name" type="xs:string" use="required"/>
197 <xs:attribute name="system" type="xs:string" use="required"/>
198 <xs:anyAttribute/>
199 </xs:complexType>
200 </xs:element>
201 <xs:simpleType name="costroundingtype">
202 <xs:restriction base="xs:string">
203 <xs:enumeration value="Up"/>
204 <xs:enumeration value="Down"/>
205 <xs:enumeration value="Banker"/>
206 <xs:enumeration value="UpToHalf"/>
207 <xs:enumeration value="DownToHalf"/>
208 <xs:enumeration value="BankerToHalf"/>
209 </xs:restriction>
210 </xs:simpleType>
211 <xs:simpleType name="armourtype">
212 <xs:restriction base="xs:string">
213 <xs:enumeration value="None"/>
214 <xs:enumeration value="Shield"/>
215 <xs:enumeration value="LightArmour"/>
216 <xs:enumeration value="LightArmourShield"/>
217 <xs:enumeration value="HeavyArmour"/>
218 <xs:enumeration value="HeavyArmourShield"/>
219 <xs:enumeration value="Barding"/>
220 <xs:enumeration value="BardingShield"/>
221 <xs:enumeration value="BardingLightArmour"/>
222 <xs:enumeration value="BardingLightArmourShield"/>
223 <xs:enumeration value="BardingHeavyArmour"/>
224 <xs:enumeration value="BardingHeavyArmourShield"/>
225 </xs:restriction>
226 </xs:simpleType>
227 </xs:schema>