stendhal/data/conf/creatures.xsd
2022-03-17 22:05:56 -07:00

211 lines
7.4 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="stendhal" xmlns:tns="http://www.example.org/creatures"
elementFormDefault="qualified" xmlns:Q2="stendhal">
<xsd:element name="creatures" type="Q2:CreaturesType"></xsd:element>
<xsd:complexType name="CreaturesType">
<xsd:sequence>
<xsd:element name="creature" type="Q2:CreatureType"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CreatureType">
<xsd:sequence>
<xsd:element name="type" type="Q2:Type" minOccurs="1"/>
<xsd:element name="hidden" type="xsd:string" minOccurs="0"/>
<xsd:element name="description" type="xsd:string" minOccurs="0"/>
<xsd:element name="attributes" type="Q2:Attributes" minOccurs="1"/>
<xsd:element name="level" type="Q2:Level" minOccurs="1"/>
<xsd:element name="experience" type="Q2:Experience" minOccurs="1"/>
<xsd:element name="respawn" type="Q2:Respawn"/>
<xsd:element name="blood" type="Q2:Blood" minOccurs="0"/>
<xsd:element name="corpse" type="Q2:Corpse"/>
<xsd:element name="drops" type="Q2:Drops" minOccurs="0"/>
<xsd:element name="slots" type="Q2:Slots" minOccurs="0"/>
<xsd:element name="equips" type="Q2:Equips" minOccurs="0"/>
<xsd:element name="abilities" type="Q2:Abilities" minOccurs="0"/>
<xsd:element name="ai" type="Q2:Ai" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="condition" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="Item">
<xsd:attribute name="value" type="xsd:string"/>
<xsd:attribute name="quantity" type="xsd:string"/>
<xsd:attribute name="probability" type="xsd:double"/>
</xsd:complexType>
<xsd:complexType name="Drops">
<xsd:sequence>
<xsd:element name="item" type="Q2:Item" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Respawn">
<xsd:sequence>
</xsd:sequence>
<xsd:attribute name="value" type="xsd:positiveInteger"/>
</xsd:complexType>
<xsd:complexType name="Blood">
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="Corpse">
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="width" type="xsd:positiveInteger"/>
<xsd:attribute name="height" type="xsd:positiveInteger"/>
<xsd:attribute name="harmless" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="Attributes">
<xsd:sequence>
<xsd:element name="atk" minOccurs="1">
<xsd:complexType>
<xsd:attribute name="value" type="xsd:positiveInteger"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ratk" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:attribute name="value" type="xsd:positiveInteger"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="def" minOccurs="1">
<xsd:complexType>
<xsd:attribute name="value" type="xsd:positiveInteger"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="hp" minOccurs="1">
<xsd:complexType>
<xsd:attribute name="value" type="xsd:positiveInteger"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="speed" minOccurs="1">
<xsd:complexType>
<xsd:attribute name="value" type="xsd:decimal"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="size" minOccurs="1">
<xsd:complexType>
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="noise" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="state" type="xsd:string"/>
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Ai">
<xsd:sequence>
<xsd:element name="says" type="Q2:Says" minOccurs="0"/>
<xsd:element name="profile" type="Q2:Profile" minOccurs="1"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Says">
<xsd:sequence>
<xsd:element name="noise" type="Q2:Text" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="text" type="Q2:Text" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="sound" type="Q2:Sound" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="movement" type="Q2:Movement" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="death" type="Q2:Death" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Text">
<xsd:attribute name="value" type="xsd:string"/>
<xsd:attribute name="state" type="xsd:string"></xsd:attribute>
</xsd:complexType>
<xsd:complexType name="Sound">
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="Movement">
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="Death">
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="Profile">
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="params" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="Type">
<xsd:attribute name="class" type="xsd:string"/>
<xsd:attribute name="subclass" type="xsd:string"/>
<xsd:attribute name="shadow" type="xsd:string"/>
<xsd:attribute name="tileid" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="Level">
<xsd:attribute name="value" type="xsd:integer"/>
</xsd:complexType>
<xsd:complexType name="Experience">
<xsd:attribute name="value" type="xsd:integer"/>
</xsd:complexType>
<xsd:complexType name="Slots">
<xsd:sequence>
<xsd:element name="slot" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Equips">
<xsd:sequence>
<xsd:element name="slot" type="Q2:Slot" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Abilities">
<xsd:sequence>
<xsd:element name="damage" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:attribute name="type" type="xsd:string" default="cut"/>
<xsd:attribute name="rangedType" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="susceptibility" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="value" type="xsd:decimal"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="statusattack" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="value" type="xsd:decimal"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Slot">
<xsd:sequence>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="item" type="xsd:string" use="required"/>
<xsd:attribute name="quantity" type="xsd:positiveInteger"/>
</xsd:complexType>
</xsd:schema>