Mercurial > repos > IBDev-IBBoard.WarFoundry.API
view dtds/race.xsd @ 151:1d13820b3d96
Fixes #176: Bug when saving recently edited army
* Add loaded file cleanup to AbstractWarFoundryFactory
* Add override of method with Zip reference closing to WarFoundryXmlFactory
WarFoundry now no longer ends up with trailing handles to files, although why they only caused problems in some situations is unknown
Also:
* Some line ending fixes (curse cross-platform development and different line terminators!)
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 26 Sep 2009 18:48:36 +0000 |
parents | 938409fc24cc |
children | 0c0e14f03785 |
line wrap: on
line source
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:core="http://ibboard.co.uk/warfoundry/core" xmlns:cats="http://ibboard.co.uk/warfoundry/cats" targetNamespace="http://ibboard.co.uk/warfoundry/race" xmlns="http://ibboard.co.uk/warfoundry/race" elementFormDefault="qualified"> <xs:element name="race"> <xs:complexType> <xs:all> <xs:element name="units" minOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="unit" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:all> <xs:element name="stats" minOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="stat" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required"/> <xs:anyAttribute/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="statSet" type="xs:string" default="" /> <xs:anyAttribute/> </xs:complexType> </xs:element> <xs:element name="unitEquipment"> <xs:complexType> <xs:sequence> <xs:element name="unitEquipmentItem" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="id" type="xs:IDREF" /> <xs:attribute name="required" type="xs:boolean" default="false"/> <xs:attribute name="exclusivityGroup" type="xs:string" default=""/> <xs:attribute name="minNum" type="core:nonNegativeOrInfiniteInteger" default="-1"/> <xs:attribute name="maxNum" type="core:nonNegativeOrInfiniteInteger" 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:attribute name="costMultiplier" type="core:nonNegativeDouble" default="1"/> <xs:attribute name="costRounding" type="costroundingtype" default="UpToHalf"/> <xs:anyAttribute/> </xs:complexType> </xs:element> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element> <xs:element name="unitAbilities" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="unitAbility" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="abilityID" type="xs:IDREF" /> <xs:attribute name="required" type="xs:boolean" default="true"/> <xs:anyAttribute/> </xs:complexType> </xs:element> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element> <xs:element name="requirements" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="requirement"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="requirementName" type="xs:string" use="required"/> <xs:anyAttribute/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:anyAttribute/> </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:anyAttribute/> </xs:complexType> </xs:element> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element> <xs:element name="extraData" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="data"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="id" type="xs:ID" use="required"/> <xs:anyAttribute/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element> <xs:element name="notes" type="xs:string" minOccurs="0" /> </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"/> <xs:attribute name="unitPoints" type="core:nonNegativeNonInfiniteDouble" default="0"/> <xs:attribute name="points" type="core:nonNegativeNonInfiniteDouble" use="required"/> <xs:attribute name="minNum" type="xs:nonNegativeInteger" default="0"/> <xs:attribute name="maxNum" type="core:positiveOrInfiniteInteger" default="-1"/> <xs:attribute name="minSize" type="xs:nonNegativeInteger" default="5"/> <xs:attribute name="maxSize" type="core:positiveOrInfiniteInteger" default="-1"/> <xs:attribute name="baseSize" type="xs:nonNegativeInteger" default="0"/> <xs:anyAttribute/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="categories" type="cats:categoriestype" minOccurs="0" /> <xs:element name="equipment" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="equipmentItem" maxOccurs="unbounded"> <xs:complexType> <xs:all> <xs:element name="description" type="xs:string" minOccurs="0" /> </xs:all> <xs:attribute name="id" type="xs:ID" use="required"/> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="cost" type="core:nonNegativeNonInfiniteDouble" use="required"/> <xs:attribute name="armourType" type="armourtype" default="None"/> <xs:anyAttribute/> </xs:complexType> </xs:element> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element> <xs:element name="abilities" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="ability"> <xs:complexType> <xs:all> <xs:element name="description" type="xs:string" /> </xs:all> <xs:attribute name="id" type="xs:ID" use="required"/> <xs:attribute name="name" type="xs:string" use="required"/> <xs:anyAttribute/> </xs:complexType> </xs:element> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element> </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"/> <xs:attribute name="system" type="xs:string" use="required"/> <xs:anyAttribute/> </xs:complexType> </xs:element> <xs:simpleType name="updowntype"> <xs:restriction base="xs:string"> <xs:enumeration value="up"/> <xs:enumeration value="down"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="costroundingtype"> <xs:restriction base="xs:string"> <xs:enumeration value="Up"/> <xs:enumeration value="Down"/> <xs:enumeration value="Banker"/> <xs:enumeration value="UpToHalf"/> <xs:enumeration value="DownToHalf"/> <xs:enumeration value="BankerToHalf"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="armourtype"> <xs:restriction base="xs: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:schema>