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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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>