Mercurial > repos > IBDev-IBBoard.WarFoundry.API
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> |