Mercurial > repos > IBDev-IBBoard.WarFoundry.API
diff dtds/race.xsd @ 22:28e99aa0053f
Re #34 - Migrate WarFoundry files to using Schemas
* Rename WarFoundry-cats.xml to .xsd
* Use "all" tag in System instead of "sequence"
* Complete Race schema
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Mon, 09 Mar 2009 20:45:45 +0000 |
parents | 1e18de815472 |
children | f9846f896df3 |
line wrap: on
line diff
--- a/dtds/race.xsd Sat Mar 07 20:47:32 2009 +0000 +++ b/dtds/race.xsd Mon Mar 09 20:45:45 2009 +0000 @@ -3,12 +3,12 @@ targetNamespace="http://ibboard.co.uk/warfoundry/race" xmlns="http://ibboard.co.uk/warfoundry/race" elementFormDefault="qualified"> <xs:element name="race"> <xs:complexType> - <xs:sequence> - <xs:element name="units" type="unitstype"/> + <xs:all> + <xs:element name="units" type="unitstype" minOccurs="1"/> <xs:element name="categories" type="cats:categoriestype" /> <xs:element name="equipment" type="equipmenttype" /> <xs:element name="abilities" type="abilitiestype" /> - </xs:sequence> + </xs:all> <xs:attribute name="id" type="xs:ID" /> <xs:attribute name="subid" type="xs:string" default=""/> <xs:attribute name="name" type="xs:string" use="required"/> @@ -21,14 +21,15 @@ </xs:sequence> </xs:complexType> <xs:complexType name="unittype"> - <xs:sequence> - <xs:element name="unitCats" type="unitcatstype"/> - <xs:element name="stats" type="statstype" /> + <xs:all> + <xs:element name="stats" type="statstype" minOccurs="1" /> <xs:element name="unitEquipment" type="unitequipmenttype" /> + <xs:element name="unitAbilities" type="unitabilitiestype" /> <xs:element name="requirements" type="requirementstype" /> <xs:element name="contains" type="containstype" /> - <xs:element name="requirements" type="requirementstype" /> - </xs:sequence> + <xs:element name="extraData" type="extradatatype" /> + <xs:element name="notes" type="xsd:string" /> + </xs:all> <xs:attribute name="id" type="xs:ID" /> <xs:attribute name="typeName" type="xs:string" use="required"/> <xs:attribute name="cat" type="xs:string" use="required"/> @@ -51,4 +52,119 @@ </xs:simpleContent> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> +<xs:complexType name="unitequipmenttype"> + <xs:sequence> + <xs:element name="unitEquipmentItem" type="unitequipmentitemtype" maxOccurs="unbounded"/> + </xs:sequence> +</xs:complexType> +<xs:complexType name="unitequipmentitemtype"> + <xs:attribute name="equipID" type="xs:IDREF" /> + <xs:attribute name="required" type="xs:boolean" default="false"/> + <xs:attribute name="exclusivityGroup" type="xs:string" default=""/> + <xs:attribute name="minNumber" type="core:infiniteOrNonNegativeInteger" default="-1"/> + <xs:attribute name="maxNumber" type="core:infiniteOrNonNegativeInteger" default="-1"/> + <xs:attribute name="minPercentage" type="core:percentage" default="100"/> + <xs:attribute name="maxPercentage" type="core:percentage" default="100"/> + <xs:attribute name="roundDirection" type="updowntype" default="up"/> +</xs:complexType> +<xs:complexType name="unitabilitiestype"> + <xs:sequence> + <xs:element name="unitAbility" type="unitabilitytype" maxOccurs="unbounded"/> + </xs:sequence> +</xs:complexType> +<xs:complexType name="unitabilitytype"> + <xs:attribute name="abilityID" type="xs:IDREF" /> + <xs:attribute name="required" type="xs:boolean" default="true"/> +</xs:complexType> +<xs:simpleType name="updowntype"> + <xs:restriction base="xs:string"> + <xs:enumeration value="up"/> + <xs:enumeration value="down"/> + </xs:restriction> +</xs:simpleType> +<xs:complexType name="requirementstype"> + <xs:sequence> + <xs:element name="requirement" type="requirementtype"/> + </xs:sequence> +</xs:complexType> +<xs:complexType name="requirementtype"> + <xs:simpleContent> + <xs:extension base="xs:string"/> + </xs:simpleContent> + <xs:attribute name="requirementName" type="xs:string" use="required"/> +</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="extradatatype"> + <xs:sequence> + <xs:element name="data" type="extradatadatatype"/> + </xs:sequence> +</xs:complexType> +<xs:complexType name="extradatadatatype"> + <xs:simpleContent> + <xs:extension base="xs:string"/> + </xs:simpleContent> + <xs:attribute name="id" type="xs:ID" use="required"/> +</xs:complexType> +<xs:complexType name="equipmenttype"> + <xs:sequence> + <xs:element name="equipmentItem" type="equipmentitemtype"/> + </xs:sequence> +</xs:complexType> +<xs:complexType name="equipmentitemtype"> + <xs:all> + <xs:element name="description" type="xsd:string" /> + </xs:all> + <xs:attribute name="id" type="xs:ID" use="required"/> + <xs:attribute name="name" type="xs:string" use="required"/> + <xs:attribute name="points" type="core:nonNegativeDecimal" use="required"/> +</xs:complexType> +<xs:complexType name="equipmenttype"> + <xs:sequence> + <xs:element name="equipmentItem" type="equipmentitemtype"/> + </xs:sequence> +</xs:complexType> +<xs:complexType name="equipmentitemtype"> + <xs:all> + <xs:element name="description" type="xsd:string" /> + </xs:all> + <xs:attribute name="id" type="xs:ID" use="required"/> + <xs:attribute name="name" type="xs:string" use="required"/> + <xs:attribute name="points" type="core:nonNegativeDecimal" use="required"/> + <xs:attribute name="armoutType" type="armourtype" default="none"/> +</xs:complexType> +<xs:simpleType name="armourtype"> + <xs:restriction base="xsd:string"> + <xs:enumeration value="None"/> + <xs:enumeration value="Shield"/> + <xs:enumeration value="LightArmour"/> + <xs:enumeration value="LightArmourShield"/> + <xs:enumeration value="HeavyArmour"/> + <xs:enumeration value="HeavyArmourShield"/> + <xs:enumeration value="Barding"/> + <xs:enumeration value="BardingShield"/> + <xs:enumeration value="BardingLightArmour"/> + <xs:enumeration value="BardingLightArmourShield"/> + <xs:enumeration value="BardingHeavyArmour"/> + <xs:enumeration value="BardingHeavyArmourShield"/> + </xs:restriction> +</xs:simpleType> +<xs:complexType name="abilitiestype"> + <xs:sequence> + <xs:element name="ability" type="abilitytype"/> + </xs:sequence> +</xs:complexType> +<xs:complexType name="abilitytype"> + <xs:all> + <xs:element name="description" type="xsd:string" /> + </xs:all> + <xs:attribute name="id" type="xs:ID" use="required"/> + <xs:attribute name="name" type="xs:string" use="required"/> +</xs:complexType> </xs:schema> \ No newline at end of file