comparison schemas/army.xsd @ 240:38a4154c4537

Re #152: Test and fix extensibility of current schemas * Refactor army schema
author IBBoard <dev@ibboard.co.uk>
date Sat, 27 Feb 2010 14:31:14 +0000
parents f097888efcfe
children 50f845c117e9
comparison
equal deleted inserted replaced
239:7c14537d4a23 240:38a4154c4537
1 <?xml version="1.0"?> 1 <?xml version="1.0"?>
2 PENGUIN
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ibboard.co.uk/warfoundry/army" xmlns="http://ibboard.co.uk/warfoundry/army" xmlns:core="http://ibboard.co.uk/warfoundry/core" elementFormDefault="qualified"> 3 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ibboard.co.uk/warfoundry/army" xmlns="http://ibboard.co.uk/warfoundry/army" xmlns:core="http://ibboard.co.uk/warfoundry/core" elementFormDefault="qualified">
3 <xs:element name="army"> 4 <xs:element name="army">
4 <xs:complexType> 5 <xs:complexType>
5 <xs:all> 6 <xs:all>
6 <xs:element name="units"> 7 <xs:element name="units">
7 <xs:complexType> 8 <xs:complexType>
8 <xs:sequence> 9 <xs:sequence>
9 <xs:element name="unit" minOccurs="0" maxOccurs="unbounded"> 10 <xs:element name="unit" minOccurs="0" maxOccurs="unbounded" type="unit"/>
10 <xs:complexType>
11 <xs:all>
12 <xs:element name="equipment" minOccurs="0">
13 <xs:complexType>
14 <xs:sequence>
15 <xs:element name="equipItem" maxOccurs="unbounded">
16 <xs:complexType>
17 <xs:sequence>
18 <xs:element ref="core:extension" minOccurs="0" />
19 </xs:sequence>
20 <xs:attribute name="id" type="xs:string" />
21 <xs:attribute name="amount" type="core:nonNegativeOrInfiniteIntegerOrPercentage" use="required"/>
22 <xs:attribute name="amountType" type="equipmentAmountType" default="ratio"/>
23 <xs:attribute name="isCustomEquipment" type="xs:boolean" default="false"/>
24 <xs:anyAttribute/>
25 </xs:complexType>
26 </xs:element>
27 </xs:sequence>
28 </xs:complexType>
29 </xs:element>
30 <xs:element name="contains" minOccurs="0">
31 <xs:complexType>
32 <xs:sequence>
33 <xs:element name="containedUnit">
34 <xs:complexType>
35 <xs:sequence>
36 <xs:element ref="core:extension" minOccurs="0" />
37 </xs:sequence>
38 <xs:attribute name="containedID" type="xs:IDREF" use="required"/>
39 <xs:anyAttribute/>
40 </xs:complexType>
41 </xs:element>
42 </xs:sequence>
43 </xs:complexType>
44 </xs:element>
45 <xs:element ref="core:extension" minOccurs="0" />
46 </xs:all>
47 <xs:attribute name="id" type="xs:ID" />
48 <xs:attribute name="unitType" type="xs:string" use="required"/>
49 <xs:attribute name="unitName" type="xs:string" use="required"/>
50 <xs:attribute name="size" type="xs:positiveInteger" use="required"/>
51 <xs:attribute name="race" type="xs:string" default=""/>
52 <xs:anyAttribute/>
53 </xs:complexType>
54 </xs:element>
55 </xs:sequence> 11 </xs:sequence>
56 </xs:complexType> 12 </xs:complexType>
57 </xs:element> 13 </xs:element>
58 <xs:element name="customEquipment" minOccurs="0"> 14 <xs:element name="customEquipment" minOccurs="0">
59 <xs:complexType> 15 <xs:complexType>
86 <xs:attribute name="race" type="xs:string" use="required"/> 42 <xs:attribute name="race" type="xs:string" use="required"/>
87 <xs:attribute name="maxPoints" type="xs:positiveInteger" use="required"/> 43 <xs:attribute name="maxPoints" type="xs:positiveInteger" use="required"/>
88 <xs:anyAttribute/> 44 <xs:anyAttribute/>
89 </xs:complexType> 45 </xs:complexType>
90 </xs:element> 46 </xs:element>
47
48 <!-- Re-usable complex types -->
49
50 <xs:complexType id="unit">
51 <xs:all>
52 <xs:element name="equipment" minOccurs="0">
53 <xs:complexType>
54 <xs:sequence>
55 <xs:element name="equipItem" maxOccurs="unbounded">
56 <xs:complexType>
57 <xs:sequence>
58 <xs:element ref="core:extension" minOccurs="0" />
59 </xs:sequence>
60 <xs:attribute name="id" type="xs:string" />
61 <xs:attribute name="amount" type="core:nonNegativeOrInfiniteIntegerOrPercentage" use="required"/>
62 <xs:attribute name="amountType" type="equipmentAmountType" default="ratio"/>
63 <xs:attribute name="isCustomEquipment" type="xs:boolean" default="false"/>
64 <xs:anyAttribute/>
65 </xs:complexType>
66 </xs:element>
67 </xs:sequence>
68 </xs:complexType>
69 </xs:element>
70 <xs:element name="contains" minOccurs="0">
71 <xs:complexType>
72 <xs:sequence>
73 <xs:element name="containedUnit">
74 <xs:complexType>
75 <xs:sequence>
76 <xs:element ref="core:extension" minOccurs="0" />
77 </xs:sequence>
78 <xs:attribute name="containedID" type="xs:IDREF" use="required"/>
79 <xs:anyAttribute/>
80 </xs:complexType>
81 </xs:element>
82 </xs:sequence>
83 </xs:complexType>
84 </xs:element>
85 <xs:element ref="core:extension" minOccurs="0" />
86 </xs:all>
87 <xs:attribute name="id" type="xs:ID" />
88 <xs:attribute name="unitType" type="xs:string" use="required"/>
89 <xs:attribute name="unitName" type="xs:string" use="required"/>
90 <xs:attribute name="size" type="xs:positiveInteger" use="required"/>
91 <xs:attribute name="race" type="xs:string" default=""/>
92 <xs:anyAttribute/>
93 </xs:complexType>
94
91 <xs:simpleType name="equipmentAmountType"> 95 <xs:simpleType name="equipmentAmountType">
92 <xs:restriction base="xs:string"> 96 <xs:restriction base="xs:string">
93 <xs:enumeration value="ratio"/> 97 <xs:enumeration value="ratio"/>
94 <xs:enumeration value="fixed"/> 98 <xs:enumeration value="fixed"/>
95 </xs:restriction> 99 </xs:restriction>