add schema new loader model using xml separated work and load data validation using schema map data in xml new core model... proecting
159 lines
6.8 KiB
XML
159 lines
6.8 KiB
XML
<?xml version="1.0"?>
|
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
|
|
<xsd:element name="ADdata">
|
|
<xsd:complexType>
|
|
<xsd:all>
|
|
<xsd:element name="aliens">
|
|
<xsd:complexType>
|
|
<xsd:sequence>
|
|
<xsd:element name="alien" type="alienType" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
</xsd:element>
|
|
<xsd:element name="maps">
|
|
<xsd:complexType>
|
|
<xsd:sequence>
|
|
<xsd:element name="map" type="mapType" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
</xsd:element>
|
|
<xsd:element name="waves">
|
|
<xsd:complexType>
|
|
<xsd:sequence>
|
|
<xsd:element name="wave" type="waveType" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
</xsd:element>
|
|
<xsd:element name="waveParts">
|
|
<xsd:complexType>
|
|
<xsd:sequence>
|
|
<xsd:element name="wavePart" type="wavePartType" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
</xsd:element>
|
|
<xsd:element name="wavesOnLevels">
|
|
<xsd:complexType>
|
|
<xsd:sequence>
|
|
<xsd:element name="waveOnLevel" type="waveOnLevelType" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
</xsd:element>
|
|
<xsd:element name="levels">
|
|
<xsd:complexType>
|
|
<xsd:sequence>
|
|
<xsd:element name="level" type="levelType" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
</xsd:element>
|
|
</xsd:all>
|
|
</xsd:complexType>
|
|
</xsd:element>
|
|
|
|
<xsd:complexType name="alienType">
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="speed" type="xsd:float" use="required"/>
|
|
<xsd:attribute name="health" type="xsd:float" use="required"/>
|
|
<xsd:attribute name="prise" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="imageType" type="xsd:integer" use="required"/>
|
|
<xsd:attribute name="armor" type="xsd:float" use="optional"/>
|
|
<xsd:attribute name="regeneration" type="xsd:float" use="optional"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="splashType">
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="speed" type="xsd:float" use="required"/>
|
|
<xsd:attribute name="damage" type="xsd:float" use="required"/>
|
|
<xsd:attribute name="radius" type="xsd:float" use="required"/>
|
|
<xsd:attribute name="imageType" type="xsd:integer" use="required"/>
|
|
<xsd:attribute name="triggerDeath" type="xsd:boolean" use="optional"/>
|
|
<xsd:attribute name="autoControl" type="xsd:boolean" use="optional"/>
|
|
<xsd:attribute name="timer" type="xsd:positiveInteger" use="optional"/>
|
|
<xsd:attribute name="lifetime" type="xsd:positiveInteger" use="optional"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="triggerType">
|
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="parentSplash" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="childSplash" type="xsd:nonNegativeInteger" use="optional"/>
|
|
<xsd:attribute name="count" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="randomPosRadius" type="xsd:float" use="optional"/>
|
|
<xsd:attribute name="type" use="optional">
|
|
<xsd:simpleType>
|
|
<xsd:restriction base="xsd:string">
|
|
<xsd:enumeration value="noTrigger"/>
|
|
<xsd:enumeration value="onDestination"/>
|
|
<xsd:enumeration value="onTimer"/>
|
|
<xsd:enumeration value="onAlienInRadius"/>
|
|
</xsd:restriction>
|
|
</xsd:simpleType>
|
|
</xsd:attribute>
|
|
</xsd:complexType>
|
|
|
|
|
|
<xsd:complexType name="towerType">
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="imageType" type="xsd:integer" use="required"/>
|
|
<xsd:attribute name="buildTime" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="price" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="splashType" type="xsd:integer" use="required"/>
|
|
<xsd:attribute name="reload" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="radius" type="xsd:float" use="required"/>
|
|
<xsd:attribute name="expByShot" type="xsd:float" use="optional"/>
|
|
<xsd:attribute name="expByKill" type="xsd:float" use="optional"/>
|
|
<xsd:attribute name="expByDamage" type="xsd:float" use="optional"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="mapType">
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="maxPlayers" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="imageType" type="xsd:integer" use="required"/>
|
|
<xsd:attribute name="data" type="xsd:string" use="required"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="morphType">
|
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="from" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="to" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="price" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="expRequired" type="xsd:float" use="required"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="wavePartType">
|
|
<xsd:attribute name="alien" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="wave" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="count" type="xsd:positiveInteger" use="required"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="waveType">
|
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="timeout" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="prise" type="xsd:nonNegativeInteger" use="required"/>
|
|
<!--xsd:attribute name="type" type="xsd:nonNegativeInteger" use="required"/!-->
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="waveOnLevelType">
|
|
<xsd:attribute name="level" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="wave" type="xsd:nonNegativeInteger" use="required"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="towerOnLevelType">
|
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="level" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="tower" type="xsd:nonNegativeInteger" use="required"/>
|
|
<xsd:attribute name="enableWave" type="xsd:nonNegativeInteger" use="optional"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="levelType">
|
|
<xsd:attribute name="id" type="xsd:positiveInteger" use="required"/>
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="map" type="xsd:nonNegativeInteger" use="required"/>
|
|
</xsd:complexType>
|
|
|
|
</xsd:schema>
|
|
|