changeset 72:e7a6f460be57

Re #80: Collapse XSD definitions * Collapse System definition * Collapse Army definition Also: * Fix namespace issue for "core" in army.xsd
author IBBoard <dev@ibboard.co.uk>
date Sun, 10 May 2009 18:43:17 +0000
parents 0303ac938fc5
children 5eb1bc0a6d96
files dtds/army.xsd dtds/system.xsd
diffstat 2 files changed, 79 insertions(+), 67 deletions(-) [+]
line wrap: on
line diff
--- a/dtds/army.xsd	Sat Apr 25 19:38:55 2009 +0000
+++ b/dtds/army.xsd	Sun May 10 18:43:17 2009 +0000
@@ -1,10 +1,67 @@
 <?xml version="1.0"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ibboard.co.uk/warfoundry/army" xmlns="http://ibboard.co.uk/warfoundry/army" elementFormDefault="qualified">
+<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">
 <xs:element name="army">
   <xs:complexType>
     <xs:all>
-      <xs:element name="units" type="unitstype" minOccurs="1"/>
-      <xs:element name="customEquipment" type="customequipmenttype" minOccurs="1" />
+      <xs:element name="units" minOccurs="1">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="unit" minOccurs="0" maxOccurs="unbounded">
+              <xs:complexType>
+                <xs:all>
+                  <xs:element name="equipment" minOccurs="0" maxOccurs="1">
+                    <xs:complexType>
+                      <xs:sequence>
+                        <xs:element name="equipItem" minOccurs="1" maxOccurs="unbounded">
+                          <xs:complexType>
+                            <xs:attribute name="id" type="xs:string" /> <!-- ID reference to either a custom equipment item or a Race equipment item -->
+                            <xs:attribute name="amount" type="core:nonNegativeDouble" use="required"/><!-- Double used to allow for percentages to be stored -->
+                            <xs:attribute name="isCustomEquipment" type="xs:boolean" default="false"/>
+                          </xs:complexType>
+                        </xs:element>
+                      </xs:sequence>
+                    </xs:complexType>
+                  </xs:element>
+                  <xs:element name="contains" minOccurs="0">
+                    <xs:complexType>
+                      <xs:sequence>
+                        <xs:element name="containedUnit">
+                          <xs:complexType>
+                            <xs:attribute name="containedID" type="xs:IDREF" use="required"/>
+                          </xs:complexType>
+                        </xs:element>
+                      </xs:sequence>
+                    </xs:complexType>
+                  </xs:element>
+                </xs:all>
+                <xs:attribute name="id" type="xs:ID" />
+                <xs:attribute name="unitType" type="xs:string" use="required"/>
+                <xs:attribute name="unitName" type="xs:string" use="required"/>
+                <xs:attribute name="size" type="xs:positiveInteger" use="required"/>
+                <xs:attribute name="race" type="xs:string" default=""/>
+              </xs:complexType>
+            </xs:element>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="customEquipment" minOccurs="1">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="customEquip" minOccurs="0" maxOccurs="unbounded">
+              <xs:complexType>
+                <xs:sequence>
+                  <xs:element name="customEquipPart" minOccurs="1" maxOccurs="unbounded">
+                    <xs:complexType>
+                      <xs:attribute name="partIDRef" type="xs:string" />
+                    </xs:complexType>
+                  </xs:element>
+                </xs:sequence>
+                <xs:attribute name="id" type="xs:ID" />
+              </xs:complexType>
+            </xs:element>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
     </xs:all>
     <xs:attribute name="id" type="xs:ID" />
     <xs:attribute name="name" type="xs:string" use="required"/>
@@ -13,52 +70,4 @@
     <xs:attribute name="maxPoints" type="xs:positiveInteger" use="required"/>
   </xs:complexType>
 </xs:element>
-<xs:complexType name="unitstype">
-  <xs:sequence>
-    <xs:element name="unit" type="unittype" minOccurs="0" maxOccurs="unbounded"/>
-  </xs:sequence>
-</xs:complexType>
-<xs:complexType name="unittype">
-  <xs:all>
-    <xs:element name="equipment" type="equipmenttype" minOccurs="0" maxOccurs="1" />
-    <xs:element name="contains" type="containstype" minOccurs="0" />
-  </xs:all>
-  <xs:attribute name="id" type="xs:ID" />
-  <xs:attribute name="unitType" type="xs:string" use="required"/>
-  <xs:attribute name="unitName" type="xs:string" use="required"/>
-  <xs:attribute name="size" type="xs:positiveInteger" use="required"/>
-  <xs:attribute name="race" type="xs:string" default=""/>
-</xs:complexType>
-<xs:complexType name="equipmenttype">
-  <xs:sequence>
-    <xs:element name="equipItem" type="equipitemtype" minOccurs="1" maxOccurs="unbounded"/>
-  </xs:sequence>
-</xs:complexType>
-<xs:complexType name="equipitemtype">
-  <xs:attribute name="id" type="xs:string" /> <!-- ID reference to either a custom equipment item or a Race equipment item -->
-  <xs:attribute name="amount" type="core:nonNegativeDouble" use="required"/><!-- Double used to allow for percentages to be stored -->
-  <xs:attribute name="isCustomEquipment" type="xs:boolean" default="false"/>
-</xs:complexType>
-<xs:complexType name="containstype">
-  <xs:sequence>
-    <xs:element name="containedUnit" type="containedunittype"/>
-  </xs:sequence>
-</xs:complexType>
-<xs:complexType name="containedunittype">
-  <xs:attribute name="containedID" type="xs:IDREF" use="required"/>
-</xs:complexType>
-<xs:complexType name="customequipmenttype">
-  <xs:sequence>
-    <xs:element name="customEquip" type="customequiptype" minOccurs="0" maxOccurs="unbounded"/>
-  </xs:sequence>
-</xs:complexType>
-<xs:complexType name="customequiptype">
-  <xs:sequence>
-    <xs:element name="customEquipPart" type="customequipparttype" minOccurs="1" maxOccurs="unbounded"/>
-  </xs:sequence>
-  <xs:attribute name="id" type="xs:ID" />
-</xs:complexType>
-<xs:complexType name="customequipparttype">
-  <xs:attribute name="partIDRef" type="xs:string" />
-</xs:complexType>
 </xs:schema>
\ No newline at end of file
--- a/dtds/system.xsd	Sat Apr 25 19:38:55 2009 +0000
+++ b/dtds/system.xsd	Sun May 10 18:43:17 2009 +0000
@@ -5,7 +5,25 @@
   <xs:complexType>
     <xs:all>
       <xs:element name="categories" type="cats:categoriestype" minOccurs="1"/>
-      <xs:element name="sysStatsList" type="statslisttype" minOccurs="1"/>
+      <xs:element name="sysStatsList" minOccurs="1">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="sysStats" minOccurs="1" maxOccurs="unbounded">
+              <xs:complexType>
+                <xs:sequence>
+                  <xs:element name="sysStat" minOccurs="1" maxOccurs="unbounded">
+                    <xs:complexType>
+                      <xs:attribute name="name" type="xs:string" use="required"/>
+                    </xs:complexType>
+                  </xs:element>
+                </xs:sequence>
+                <xs:attribute name="id" type="xs:ID" />
+              </xs:complexType>
+            </xs:element>
+          </xs:sequence>
+          <xs:attribute name="defaultStats" type="xs:IDREF" />
+        </xs:complexType>
+      </xs:element>
     </xs:all>
     <xs:attribute name="id" type="xs:ID" />
     <xs:attribute name="name" type="xs:string" use="required"/>
@@ -13,19 +31,4 @@
     <xs:attribute name="allowAllies" type="xs:boolean" default="true"/>
   </xs:complexType>
 </xs:element>
-<xs:complexType name="statslisttype">
-  <xs:sequence>
-    <xs:element name="sysStats" type="sysstatstype" minOccurs="1" maxOccurs="unbounded"/>
-  </xs:sequence>
-  <xs:attribute name="defaultStats" type="xs:IDREF" />
-</xs:complexType>
-<xs:complexType name="sysstatstype">
-  <xs:sequence>
-    <xs:element name="sysStat" type="sysstattype" minOccurs="1" maxOccurs="unbounded"/>
-  </xs:sequence>
-  <xs:attribute name="id" type="xs:ID" />
-</xs:complexType>
-<xs:complexType name="sysstattype">
-  <xs:attribute name="name" type="xs:string" use="required"/>
-</xs:complexType>
 </xs:schema>
\ No newline at end of file