Mercurial > repos > IBBoard.WarFoundry.API
annotate schemas/warfoundry-core.xsd @ 265:6fe0cb1bf74f
Re #279: Create composite limit
* Change uses of "AbstractLimit" to "ILimit" as composites don't have a number themselves and can't extend AbstractLimit
* Refactor limit parsing code out into a separate class
* Use grouping to allow for re-use of limit types in schema
* Add min and max composite limits in schema
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 05 Jun 2010 15:36:04 +0000 |
parents | 68af2cd41e2f |
children | a3c1bf57fd3f |
rev | line source |
---|---|
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
1 <?xml version="1.0"?> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ibboard.co.uk/warfoundry/core" |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
3 xmlns="http://ibboard.co.uk/warfoundry/core" elementFormDefault="qualified"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
4 <xs:element name="extension"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
5 <xs:complexType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
6 <xs:sequence> |
250
b8b6a1c50023
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
248
diff
changeset
|
7 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> |
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
8 </xs:sequence> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
9 </xs:complexType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
10 </xs:element> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
11 <xs:complexType name="limit"> |
265
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
12 <xs:sequence> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
13 <xs:group ref="limitElements" minOccurs="1" maxOccurs="1"/> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
14 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
15 </xs:sequence> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
16 <xs:anyAttribute processContents="lax"/> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
17 </xs:complexType> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
18 <xs:group name="limitElements"> |
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
19 <xs:choice> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
20 <xs:element name="percentageLimit"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
21 <xs:complexType> |
248
6abf70f31ae4
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
224
diff
changeset
|
22 <xs:sequence> |
250
b8b6a1c50023
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
248
diff
changeset
|
23 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> |
248
6abf70f31ae4
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
224
diff
changeset
|
24 </xs:sequence> |
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
25 <xs:attribute name="limit" type="percentage" use="required"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
26 <xs:attribute name="round" type="updowntype" default="up" /> |
250
b8b6a1c50023
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
248
diff
changeset
|
27 <xs:anyAttribute processContents="lax"/> |
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
28 </xs:complexType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
29 </xs:element> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
30 <xs:element name="sizeConstrainedLimit"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
31 <xs:complexType> |
248
6abf70f31ae4
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
224
diff
changeset
|
32 <xs:sequence> |
250
b8b6a1c50023
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
248
diff
changeset
|
33 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> |
248
6abf70f31ae4
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
224
diff
changeset
|
34 </xs:sequence> |
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
35 <xs:attribute name="limit" type="xs:nonNegativeInteger" use="required"/> |
250
b8b6a1c50023
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
248
diff
changeset
|
36 <xs:anyAttribute processContents="lax"/> |
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
37 </xs:complexType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
38 </xs:element> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
39 <xs:element name="absoluteLimit"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
40 <xs:complexType> |
248
6abf70f31ae4
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
224
diff
changeset
|
41 <xs:sequence> |
250
b8b6a1c50023
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
248
diff
changeset
|
42 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> |
248
6abf70f31ae4
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
224
diff
changeset
|
43 </xs:sequence> |
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
44 <xs:attribute name="limit" type="xs:nonNegativeInteger" use="required"/> |
250
b8b6a1c50023
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
248
diff
changeset
|
45 <xs:anyAttribute processContents="lax"/> |
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
46 </xs:complexType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
47 </xs:element> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
48 <xs:element name="unitSizeLimit"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
49 <xs:complexType> |
248
6abf70f31ae4
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
224
diff
changeset
|
50 <xs:sequence> |
250
b8b6a1c50023
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
248
diff
changeset
|
51 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> |
248
6abf70f31ae4
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
224
diff
changeset
|
52 </xs:sequence> |
250
b8b6a1c50023
Re #152: Test and fix extensibility of current schemas
IBBoard <dev@ibboard.co.uk>
parents:
248
diff
changeset
|
53 <xs:anyAttribute processContents="lax"/> |
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
54 </xs:complexType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
55 </xs:element> |
265
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
56 <xs:element name="compositeMaxLimit"> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
57 <xs:complexType> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
58 <xs:sequence> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
59 <xs:group ref="limitElements" minOccurs="1" maxOccurs="unbounded"/> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
60 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
61 </xs:sequence> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
62 <xs:anyAttribute processContents="lax"/> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
63 </xs:complexType> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
64 </xs:element> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
65 <xs:element name="compositeMinLimit"> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
66 <xs:complexType> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
67 <xs:sequence> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
68 <xs:group ref="limitElements" minOccurs="1" maxOccurs="unbounded"/> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
69 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
70 </xs:sequence> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
71 <xs:anyAttribute processContents="lax"/> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
72 </xs:complexType> |
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
73 </xs:element> |
264
68af2cd41e2f
Re #289: Double-check extensibility where sets of values are allowed
IBBoard <dev@ibboard.co.uk>
parents:
250
diff
changeset
|
74 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> |
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
75 </xs:choice> |
265
6fe0cb1bf74f
Re #279: Create composite limit
IBBoard <dev@ibboard.co.uk>
parents:
264
diff
changeset
|
76 </xs:group> |
224
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
77 <xs:simpleType name="positiveOrInfiniteInteger"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
78 <xs:union memberTypes="xs:positiveInteger infinity"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
79 </xs:simpleType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
80 <xs:simpleType name="nonNegativeOrInfiniteInteger"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
81 <xs:union memberTypes="xs:nonNegativeInteger infinity"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
82 </xs:simpleType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
83 <xs:simpleType name="infinity"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
84 <xs:restriction base="xs:integer"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
85 <xs:minInclusive value="-1"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
86 <xs:maxInclusive value="-1"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
87 </xs:restriction> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
88 </xs:simpleType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
89 <xs:simpleType name="nonNegativeDouble"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
90 <xs:restriction base="xs:double"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
91 <xs:minInclusive value="0"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
92 </xs:restriction> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
93 </xs:simpleType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
94 <xs:simpleType name="nonNegativeNonInfiniteDouble"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
95 <xs:restriction base="xs:double"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
96 <xs:minInclusive value="0"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
97 <xs:maxExclusive value="INF"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
98 </xs:restriction> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
99 </xs:simpleType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
100 <xs:simpleType name="percentage"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
101 <xs:restriction base="xs:double"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
102 <xs:minInclusive value="0"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
103 <xs:maxInclusive value="100"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
104 </xs:restriction> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
105 </xs:simpleType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
106 <xs:simpleType name="nonNegativeOrInfiniteIntegerOrPercentage"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
107 <xs:union memberTypes="xs:nonNegativeInteger infinity percentage"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
108 </xs:simpleType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
109 <xs:simpleType name="updowntype"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
110 <xs:restriction base="xs:string"> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
111 <xs:enumeration value="up"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
112 <xs:enumeration value="down"/> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
113 </xs:restriction> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
114 </xs:simpleType> |
f097888efcfe
Fixes #233: "unitPoints" attribute is badly named
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
115 </xs:schema> |