Mercurial > repos > snowblizz-super-API-ideas
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