Schemas: Fix indentation

This commit is contained in:
2015-10-06 18:35:59 -04:00
parent 5667849835
commit bd3aa33807
6 changed files with 882 additions and 882 deletions

View File

@@ -105,138 +105,138 @@
<xs:attribute name="color"/>
<xs:attribute name="colour"/>
</xs:attributeGroup>
<xs:complexType name="field">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:token"/>
<xs:attribute name="type" default="text">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="int"/>
<xs:enumeration value="uint"/>
<xs:enumeration value="real"/>
<xs:enumeration value="text"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="tab-order" type="xs:integer"/>
<xs:attributeGroup ref="rect-size"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType mixed="true" name="message">
<xs:sequence>
<xs:element name="br" minOccurs="0" maxOccurs="unbounded">
<xs:complexType/>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:token"/>
<xs:attributeGroup ref="frame"/>
<xs:attributeGroup ref="font"/>
<xs:attribute ref="def-key"/>
<xs:attribute name="fromlist" default="none" type="xs:string"/>
<xs:attributeGroup ref="rect-size"/>
</xs:complexType>
<xs:complexType name="pict">
<xs:attribute name="name" type="xs:token"/>
<xs:attribute name="type" use="required" type="picttype"/>
<xs:attribute name="custom" default="false" type="bool"/>
<xs:attribute name="scaled" default="false" type="bool"/>
<xs:attribute name="framed" default="true" type="bool"/>
<xs:attribute name="outline" default="inset" type="frameStyle"/>
<xs:attribute name="size">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="small"/>
<xs:enumeration value="wide"/>
<xs:enumeration value="tall"/>
<xs:enumeration value="large"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute ref="def-key"/>
<xs:attribute name="num" use="required" type="xs:integer"/>
<xs:attributeGroup ref="rect-size"/>
</xs:complexType>
<xs:complexType mixed="true" name="button">
<xs:sequence>
<xs:element name="key" minOccurs="0" maxOccurs="unbounded">
<xs:complexType/>
</xs:element>
</xs:sequence>
<xs:attribute name="name" use="required" type="xs:token"/>
<xs:attribute name="type" use="required" type="btntype"/>
<xs:attribute name="wrap" default="false" type="bool"/>
<xs:attribute ref="def-key"/>
<xs:attribute name="fromlist" default="none" type="xs:string"/>
<xs:attributeGroup ref="rect-size"/>
</xs:complexType>
<xs:complexType name="led">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" use="required" type="xs:token"/>
<xs:attribute name="state" default="off">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="red"/>
<xs:enumeration value="green"/>
<xs:enumeration value="off"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attributeGroup ref="rect-size"/>
<xs:attributeGroup ref="font"/>
<xs:attribute name="wrap" default="false" type="bool"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="slider">
<xs:attribute name="name" type="xs:token"/>
<xs:attribute name="max" type="xs:integer" use="required"/>
<xs:attribute name="initial" type="xs:integer" default="0"/>
<xs:attribute name="page-size" type="xs:integer" default="10"/>
<xs:attribute name="vertical" type="bool" default="true"/>
<xs:attribute name="link" type="xs:token"/>
<xs:attribute name="style" type="scrollStyle" default="led"/>
<xs:attributeGroup ref="rect-size"/>
</xs:complexType>
<xs:complexType name="ledGroup">
<xs:sequence>
<xs:complexType name="field">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:token"/>
<xs:attribute name="type" default="text">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="int"/>
<xs:enumeration value="uint"/>
<xs:enumeration value="real"/>
<xs:enumeration value="text"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="tab-order" type="xs:integer"/>
<xs:attributeGroup ref="rect-size"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType mixed="true" name="message">
<xs:sequence>
<xs:element name="br" minOccurs="0" maxOccurs="unbounded">
<xs:complexType/>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:token"/>
<xs:attributeGroup ref="frame"/>
<xs:attributeGroup ref="font"/>
<xs:attribute ref="def-key"/>
<xs:attribute name="fromlist" default="none" type="xs:string"/>
<xs:attributeGroup ref="rect-size"/>
</xs:complexType>
<xs:complexType name="pict">
<xs:attribute name="name" type="xs:token"/>
<xs:attribute name="type" use="required" type="picttype"/>
<xs:attribute name="custom" default="false" type="bool"/>
<xs:attribute name="scaled" default="false" type="bool"/>
<xs:attribute name="framed" default="true" type="bool"/>
<xs:attribute name="outline" default="inset" type="frameStyle"/>
<xs:attribute name="size">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="small"/>
<xs:enumeration value="wide"/>
<xs:enumeration value="tall"/>
<xs:enumeration value="large"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute ref="def-key"/>
<xs:attribute name="num" use="required" type="xs:integer"/>
<xs:attributeGroup ref="rect-size"/>
</xs:complexType>
<xs:complexType mixed="true" name="button">
<xs:sequence>
<xs:element name="key" minOccurs="0" maxOccurs="unbounded">
<xs:complexType/>
</xs:element>
</xs:sequence>
<xs:attribute name="name" use="required" type="xs:token"/>
<xs:attribute name="type" use="required" type="btntype"/>
<xs:attribute name="wrap" default="false" type="bool"/>
<xs:attribute ref="def-key"/>
<xs:attribute name="fromlist" default="none" type="xs:string"/>
<xs:attributeGroup ref="rect-size"/>
</xs:complexType>
<xs:complexType name="led">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" use="required" type="xs:token"/>
<xs:attribute name="state" default="off">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="red"/>
<xs:enumeration value="green"/>
<xs:enumeration value="off"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attributeGroup ref="rect-size"/>
<xs:attributeGroup ref="font"/>
<xs:attribute name="wrap" default="false" type="bool"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="slider">
<xs:attribute name="name" type="xs:token"/>
<xs:attribute name="max" type="xs:integer" use="required"/>
<xs:attribute name="initial" type="xs:integer" default="0"/>
<xs:attribute name="page-size" type="xs:integer" default="10"/>
<xs:attribute name="vertical" type="bool" default="true"/>
<xs:attribute name="link" type="xs:token"/>
<xs:attribute name="style" type="scrollStyle" default="led"/>
<xs:attributeGroup ref="rect-size"/>
</xs:complexType>
<xs:complexType name="ledGroup">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="led" type="led"/>
</xs:sequence>
<xs:attribute name="name" type="xs:token"/>
<xs:attributeGroup ref="frame"/>
<xs:attribute name="fromlist" default="none" type="xs:string"/>
</xs:complexType>
<xs:complexType name="stack">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="field" type="field"/>
<xs:element name="text" type="message"/>
<xs:element name="pict" type="pict"/>
<xs:element name="button" type="button"/>
<xs:element name="led" type="led"/>
<xs:element name="group" type="ledGroup"/>
<xs:element name="slider" type="slider"/>
</xs:choice>
<xs:attribute name="name" type="xs:token"/>
<xs:attributeGroup ref="frame"/>
<xs:attribute name="pages" type="xs:integer"/>
</xs:complexType>
<xs:complexType name="scrollPane">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="field" type="field"/>
<xs:element name="text" type="message"/>
<xs:element name="pict" type="pict"/>
<xs:element name="button" type="button"/>
<xs:element name="led" type="led"/>
<xs:element name="group" type="ledGroup"/>
<xs:element name="slider" type="slider"/>
</xs:choice>
<xs:attribute name="name" type="xs:token"/>
<xs:attributeGroup ref="frame"/>
<xs:attribute name="style" type="scrollStyle" default="led"/>
<xs:attributeGroup ref="rect-size"/>
</xs:complexType>
</xs:sequence>
<xs:attribute name="name" type="xs:token"/>
<xs:attributeGroup ref="frame"/>
<xs:attribute name="fromlist" default="none" type="xs:string"/>
</xs:complexType>
<xs:complexType name="stack">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="field" type="field"/>
<xs:element name="text" type="message"/>
<xs:element name="pict" type="pict"/>
<xs:element name="button" type="button"/>
<xs:element name="led" type="led"/>
<xs:element name="group" type="ledGroup"/>
<xs:element name="slider" type="slider"/>
</xs:choice>
<xs:attribute name="name" type="xs:token"/>
<xs:attributeGroup ref="frame"/>
<xs:attribute name="pages" type="xs:integer"/>
</xs:complexType>
<xs:complexType name="scrollPane">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="field" type="field"/>
<xs:element name="text" type="message"/>
<xs:element name="pict" type="pict"/>
<xs:element name="button" type="button"/>
<xs:element name="led" type="led"/>
<xs:element name="group" type="ledGroup"/>
<xs:element name="slider" type="slider"/>
</xs:choice>
<xs:attribute name="name" type="xs:token"/>
<xs:attributeGroup ref="frame"/>
<xs:attribute name="style" type="scrollStyle" default="led"/>
<xs:attributeGroup ref="rect-size"/>
</xs:complexType>
<xs:element name="dialog">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">

View File

@@ -7,31 +7,31 @@
<xs:maxInclusive value="6"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="personality">
<xs:sequence>
<xs:element name='title' type='xs:string'/>
<xs:element name="look" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="job" type="xs:string"/>
<xs:element name="unknown" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
<xs:complexType name="talkNode">
<xs:sequence>
<xs:element name="keyword" minOccurs="1" maxOccurs="2" type="xs:string"/>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z-]+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="param" minOccurs="0" maxOccurs="4" type="xs:integer"/>
<xs:element name="text" minOccurs="1" maxOccurs="2" type="xs:string"/>
</xs:sequence>
<xs:attribute name="for" type="xs:integer" use="required"/>
</xs:complexType>
<xs:complexType name="personality">
<xs:sequence>
<xs:element name='title' type='xs:string'/>
<xs:element name="look" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="job" type="xs:string"/>
<xs:element name="unknown" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
<xs:complexType name="talkNode">
<xs:sequence>
<xs:element name="keyword" minOccurs="1" maxOccurs="2" type="xs:string"/>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z-]+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="param" minOccurs="0" maxOccurs="4" type="xs:integer"/>
<xs:element name="text" minOccurs="1" maxOccurs="2" type="xs:string"/>
</xs:sequence>
<xs:attribute name="for" type="xs:integer" use="required"/>
</xs:complexType>
<xs:element name="dialogue">
<xs:complexType>
<xs:sequence>

View File

@@ -64,56 +64,56 @@
<xs:enumeration value="harm-all"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="item">
<xs:all>
<xs:element name="variety" type="itemVariety"/>
<xs:element name="level" type="xs:integer"/>
<xs:element name="awkward" type="xs:integer" minOccurs="0"/>
<xs:element name="bonus" type="xs:integer" minOccurs="0"/>
<xs:element name="protection" type="xs:integer" minOccurs="0"/>
<xs:element name="charges" type="xs:integer" minOccurs="0"/>
<xs:element name="weapon-type" type="weaponType" minOccurs="0"/>
<xs:element name="missile-type" type="xs:integer" minOccurs="0"/>
<xs:element name="pic" type="xs:integer"/>
<xs:element name="flag" type="xs:integer" minOccurs="0"/>
<xs:element name="value" type="xs:integer"/>
<xs:element name="weight" type="xs:integer"/>
<xs:element name="class" type="xs:integer" minOccurs="0"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="full-name" type="xs:string"/>
<xs:element name="treasure" type="xs:integer" minOccurs="0"/>
<xs:element name="ability" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z-]+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="strength" type="xs:integer"/>
<xs:element name="data" type="xs:integer"/>
<xs:element name="use-flag" type="useFlag" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="properties" minOccurs="0">
<xs:complexType>
<xs:all>
<xs:element name="identified" type="bool" minOccurs="0"/>
<xs:element name="magic" type="bool" minOccurs="0"/>
<xs:element name="cursed" type="bool" minOccurs="0"/>
<xs:element name="concealed" type="bool" minOccurs="0"/>
<xs:element name="enchanted" type="bool" minOccurs="0"/>
<xs:element name="unsellable" type="bool" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="description" type="xs:string" minOccurs="0"/>
</xs:all>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
<xs:complexType name="item">
<xs:all>
<xs:element name="variety" type="itemVariety"/>
<xs:element name="level" type="xs:integer"/>
<xs:element name="awkward" type="xs:integer" minOccurs="0"/>
<xs:element name="bonus" type="xs:integer" minOccurs="0"/>
<xs:element name="protection" type="xs:integer" minOccurs="0"/>
<xs:element name="charges" type="xs:integer" minOccurs="0"/>
<xs:element name="weapon-type" type="weaponType" minOccurs="0"/>
<xs:element name="missile-type" type="xs:integer" minOccurs="0"/>
<xs:element name="pic" type="xs:integer"/>
<xs:element name="flag" type="xs:integer" minOccurs="0"/>
<xs:element name="value" type="xs:integer"/>
<xs:element name="weight" type="xs:integer"/>
<xs:element name="class" type="xs:integer" minOccurs="0"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="full-name" type="xs:string"/>
<xs:element name="treasure" type="xs:integer" minOccurs="0"/>
<xs:element name="ability" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z-]+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="strength" type="xs:integer"/>
<xs:element name="data" type="xs:integer"/>
<xs:element name="use-flag" type="useFlag" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="properties" minOccurs="0">
<xs:complexType>
<xs:all>
<xs:element name="identified" type="bool" minOccurs="0"/>
<xs:element name="magic" type="bool" minOccurs="0"/>
<xs:element name="cursed" type="bool" minOccurs="0"/>
<xs:element name="concealed" type="bool" minOccurs="0"/>
<xs:element name="enchanted" type="bool" minOccurs="0"/>
<xs:element name="unsellable" type="bool" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="description" type="xs:string" minOccurs="0"/>
</xs:all>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
<xs:element name="items">
<xs:complexType>
<xs:sequence>

View File

@@ -59,321 +59,321 @@
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="generalAbil">
<xs:all>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ray"/>
<xs:enumeration value="touch"/>
<xs:enumeration value="gaze"/>
<xs:enumeration value="breath"/>
<xs:enumeration value="spit"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="missile" type="xs:integer" minOccurs="0"/>
<xs:element name="strength" type="xs:integer"/>
<xs:element name="range" type="xs:integer" minOccurs="0"/>
<xs:element name="chance" type="permille"/>
<xs:element name="extra" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<!-- Status effects -->
<xs:enumeration value="poison-weap"/>
<xs:enumeration value="bless-curse"/>
<xs:enumeration value="poison"/>
<xs:enumeration value="haste-slow"/>
<xs:enumeration value="invuln"/>
<xs:enumeration value="magic"/>
<xs:enumeration value="web"/>
<xs:enumeration value="disease"/>
<xs:enumeration value="invis"/>
<xs:enumeration value="dumb-smart"/>
<xs:enumeration value="martyr"/>
<xs:enumeration value="sleep"/>
<xs:enumeration value="paralysis"/>
<xs:enumeration value="acid"/>
<xs:enumeration value="cage"/>
<xs:enumeration value="charm"/>
<!-- Fields -->
<xs:enumeration value="wall-force"/>
<xs:enumeration value="wall-fire"/>
<xs:enumeration value="field-antimagic"/>
<xs:enumeration value="cloud-stink"/>
<xs:enumeration value="wall-ice"/>
<xs:enumeration value="wall-blades"/>
<xs:enumeration value="cloud-sleep"/>
<xs:enumeration value="obj-block"/>
<xs:enumeration value="field-web"/>
<xs:enumeration value="obj-crate"/>
<xs:enumeration value="obj-barrel"/>
<xs:enumeration value="barr-fire"/>
<xs:enumeration value="barr-force"/>
<xs:enumeration value="field-quickfire"/>
<xs:enumeration value="sfx-sm-bld"/>
<xs:enumeration value="sfx-med-bld"/>
<xs:enumeration value="sfx-lg-bld"/>
<xs:enumeration value="sfx-sm-slm"/>
<xs:enumeration value="sfx-lg-slm"/>
<xs:enumeration value="sfx-ash"/>
<xs:enumeration value="sfx-bone"/>
<xs:enumeration value="sfx-rock"/>
<xs:enumeration value="barr-cage"/>
<xs:enumeration value="dispel"/>
<xs:enumeration value="smash"/>
<!-- Damage types -->
<xs:enumeration value="weap"/>
<xs:enumeration value="fire"/>
<xs:enumeration value="poison"/>
<xs:enumeration value="magic"/>
<xs:enumeration value="weird"/>
<xs:enumeration value="cold"/>
<xs:enumeration value="undead"/>
<xs:enumeration value="demon"/>
<xs:enumeration value="spec"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:all>
<xs:attribute name="type" use="required">
<xs:complexType name="generalAbil">
<xs:all>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="dmg"/>
<xs:enumeration value="dmg2"/>
<xs:enumeration value="status"/>
<xs:enumeration value="status2"/>
<xs:enumeration value="field"/>
<xs:enumeration value="petrify"/>
<xs:enumeration value="drain-sp"/>
<xs:enumeration value="drain-xp"/>
<xs:enumeration value="steal-food"/>
<xs:enumeration value="steal-gold"/>
<xs:enumeration value="kill"/>
<xs:enumeration value="stun"/>
<xs:enumeration value="ray"/>
<xs:enumeration value="touch"/>
<xs:enumeration value="gaze"/>
<xs:enumeration value="breath"/>
<xs:enumeration value="spit"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="missileAbil">
<xs:all>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="arrow"/>
<xs:enumeration value="arrow++"/>
<xs:enumeration value="dart"/>
<xs:enumeration value="spear"/>
<xs:enumeration value="stone"/>
<xs:enumeration value="star"/>
<xs:enumeration value="spine"/>
<xs:enumeration value="knife"/>
<xs:enumeration value="bolt"/>
<xs:enumeration value="boulder"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="missile" type="xs:integer"/>
<xs:element name="strength" type="dice"/>
<xs:element name="skill" type="xs:integer"/>
<xs:element name="range" type="xs:integer"/>
<xs:element name="chance" type="permille"/>
</xs:all>
<xs:attribute name="type" use="required">
</xs:element>
<xs:element name="missile" type="xs:integer" minOccurs="0"/>
<xs:element name="strength" type="xs:integer"/>
<xs:element name="range" type="xs:integer" minOccurs="0"/>
<xs:element name="chance" type="permille"/>
<xs:element name="extra" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="missile"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="summonAbil">
<xs:sequence>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element name="type" type="xs:integer"/>
<xs:element name="lvl" type="xs:integer"/>
<xs:element name="race" type="species"/>
</xs:choice>
<xs:element name="min" type="xs:integer"/>
<xs:element name="max" type="xs:integer"/>
<xs:element name="duration" type="xs:integer"/>
<xs:element name="chance" type="permille"/>
</xs:sequence>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="summon"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="radiateAbil">
<xs:all>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="wall-force"/>
<xs:enumeration value="wall-fire"/>
<xs:enumeration value="field-antimagic"/>
<xs:enumeration value="cloud-stink"/>
<xs:enumeration value="wall-ice"/>
<xs:enumeration value="wall-blades"/>
<xs:enumeration value="cloud-sleep"/>
<xs:enumeration value="obj-block"/>
<xs:enumeration value="field-web"/>
<xs:enumeration value="obj-crate"/>
<xs:enumeration value="obj-barrel"/>
<xs:enumeration value="barr-fire"/>
<xs:enumeration value="barr-force"/>
<xs:enumeration value="field-quickfire"/>
<xs:enumeration value="sfx-sm-bld"/>
<xs:enumeration value="sfx-med-bld"/>
<xs:enumeration value="sfx-lg-bld"/>
<xs:enumeration value="sfx-sm-slm"/>
<xs:enumeration value="sfx-lg-slm"/>
<xs:enumeration value="sfx-ash"/>
<xs:enumeration value="sfx-bone"/>
<xs:enumeration value="sfx-rock"/>
<xs:enumeration value="barr-cage"/>
<xs:enumeration value="dispel"/>
<xs:enumeration value="smash"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="pattern" type="spellPattern" minOccurs="0"/>
<xs:element name="chance" type="permille"/>
</xs:all>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="radiate"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="specialAbil">
<xs:sequence>
<xs:element name="param" type="xs:integer" minOccurs="0" maxOccurs="3"/>
</xs:sequence>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="splits"/>
<!-- Status effects -->
<xs:enumeration value="poison-weap"/>
<xs:enumeration value="bless-curse"/>
<xs:enumeration value="poison"/>
<xs:enumeration value="haste-slow"/>
<xs:enumeration value="invuln"/>
<xs:enumeration value="magic"/>
<xs:enumeration value="web"/>
<xs:enumeration value="disease"/>
<xs:enumeration value="invis"/>
<xs:enumeration value="dumb-smart"/>
<xs:enumeration value="martyr"/>
<xs:enumeration value="absorb"/>
<xs:enumeration value="old-web"/>
<xs:enumeration value="old-heat"/>
<xs:enumeration value="spec-act"/>
<xs:enumeration value="spec-hit"/>
<xs:enumeration value="spec-death"/>
<xs:enumeration value="sleep"/>
<xs:enumeration value="paralysis"/>
<xs:enumeration value="acid"/>
<xs:enumeration value="cage"/>
<xs:enumeration value="charm"/>
<!-- Fields -->
<xs:enumeration value="wall-force"/>
<xs:enumeration value="wall-fire"/>
<xs:enumeration value="field-antimagic"/>
<xs:enumeration value="cloud-stink"/>
<xs:enumeration value="wall-ice"/>
<xs:enumeration value="wall-blades"/>
<xs:enumeration value="cloud-sleep"/>
<xs:enumeration value="obj-block"/>
<xs:enumeration value="field-web"/>
<xs:enumeration value="obj-crate"/>
<xs:enumeration value="obj-barrel"/>
<xs:enumeration value="barr-fire"/>
<xs:enumeration value="barr-force"/>
<xs:enumeration value="field-quickfire"/>
<xs:enumeration value="sfx-sm-bld"/>
<xs:enumeration value="sfx-med-bld"/>
<xs:enumeration value="sfx-lg-bld"/>
<xs:enumeration value="sfx-sm-slm"/>
<xs:enumeration value="sfx-lg-slm"/>
<xs:enumeration value="sfx-ash"/>
<xs:enumeration value="sfx-bone"/>
<xs:enumeration value="sfx-rock"/>
<xs:enumeration value="barr-cage"/>
<xs:enumeration value="dispel"/>
<xs:enumeration value="smash"/>
<!-- Damage types -->
<xs:enumeration value="weap"/>
<xs:enumeration value="fire"/>
<xs:enumeration value="poison"/>
<xs:enumeration value="magic"/>
<xs:enumeration value="weird"/>
<xs:enumeration value="cold"/>
<xs:enumeration value="undead"/>
<xs:enumeration value="demon"/>
<xs:enumeration value="spec"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="attack">
<xs:simpleContent>
<xs:extension base="dice">
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="swing"/>
<xs:enumeration value="claw"/>
<xs:enumeration value="bite"/>
<xs:enumeration value="slime"/>
<xs:enumeration value="punch"/>
<xs:enumeration value="sting"/>
<xs:enumeration value="club"/>
<xs:enumeration value="burn"/>
<xs:enumeration value="harm"/>
<xs:enumeration value="stab"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="monster">
<xs:all>
<xs:element name="name" type="xs:string"/>
<xs:element name="level" type="xs:integer"/>
<xs:element name="armor" type="xs:integer"/>
<xs:element name="skill" type="xs:integer"/>
<xs:element name="hp" type="xs:integer"/>
<xs:element name="speed" type="xs:integer"/>
<xs:element name="treasure" minOccurs="0" type="xs:integer"/>
<xs:element name="mage" minOccurs="0" type="xs:integer"/>
<xs:element name="priest" minOccurs="0" type="xs:integer"/>
</xs:element>
</xs:all>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="dmg"/>
<xs:enumeration value="dmg2"/>
<xs:enumeration value="status"/>
<xs:enumeration value="status2"/>
<xs:enumeration value="field"/>
<xs:enumeration value="petrify"/>
<xs:enumeration value="drain-sp"/>
<xs:enumeration value="drain-xp"/>
<xs:enumeration value="steal-food"/>
<xs:enumeration value="steal-gold"/>
<xs:enumeration value="kill"/>
<xs:enumeration value="stun"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="missileAbil">
<xs:all>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="arrow"/>
<xs:enumeration value="arrow++"/>
<xs:enumeration value="dart"/>
<xs:enumeration value="spear"/>
<xs:enumeration value="stone"/>
<xs:enumeration value="star"/>
<xs:enumeration value="spine"/>
<xs:enumeration value="knife"/>
<xs:enumeration value="bolt"/>
<xs:enumeration value="boulder"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="missile" type="xs:integer"/>
<xs:element name="strength" type="dice"/>
<xs:element name="skill" type="xs:integer"/>
<xs:element name="range" type="xs:integer"/>
<xs:element name="chance" type="permille"/>
</xs:all>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="missile"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="summonAbil">
<xs:sequence>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element name="type" type="xs:integer"/>
<xs:element name="lvl" type="xs:integer"/>
<xs:element name="race" type="species"/>
<xs:element name="abilities" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="invisible" minOccurs="0"/>
<xs:element name="guard" minOccurs="0"/>
<xs:choice maxOccurs="unbounded">
<xs:element name="general" type="generalAbil" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="missile" type="missileAbil" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="summon" type="summonAbil" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="radiate" type="radiateAbil" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="special" type="specialAbil" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:unique name="abilsPerMonst">
<xs:selector xpath="general|missile|summon|radiate|special"/>
<xs:field xpath="@type"/>
</xs:unique>
</xs:element>
<xs:element name="attacks">
<xs:complexType>
<xs:sequence>
<xs:element name="attack" type="attack" maxOccurs="3"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="pic">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="w" type="xs:integer" use="required"/>
<xs:attribute name="h" type="xs:integer" use="required"/>
<xs:attribute name="custom" type="bool" default="false"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="default-face" minOccurs="0" type="xs:integer"/>
<xs:element name="onsight" minOccurs="0" type="xs:integer"/>
<xs:element name="voice" minOccurs="0" type="xs:integer"/>
<xs:element name="summon" minOccurs="0" type="xs:integer"/>
<xs:element name="attitude" type="monsterAttitude"/>
<xs:element name="immunity">
<xs:complexType>
<xs:all>
<xs:element name="fire" type="xs:integer" minOccurs="0"/>
<xs:element name="cold" type="xs:integer" minOccurs="0"/>
<xs:element name="poison" type="xs:integer" minOccurs="0"/>
<xs:element name="magic" type="xs:integer" minOccurs="0"/>
<xs:element name="weap" type="xs:integer" minOccurs="0"/>
<xs:element name="weird" type="xs:integer" minOccurs="0"/>
<xs:element name="undead" type="xs:integer" minOccurs="0"/>
<xs:element name="demon" type="xs:integer" minOccurs="0"/>
<xs:element name="all" type="bool" minOccurs="0"/>
<xs:element name="fear" type="bool" minOccurs="0"/>
<xs:element name="assassinate" type="bool" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="loot" minOccurs="0">
<xs:complexType>
<xs:all>
<xs:element name="type" type="xs:integer"/>
<xs:element name="chance" type="xs:integer"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
</xs:choice>
<xs:element name="min" type="xs:integer"/>
<xs:element name="max" type="xs:integer"/>
<xs:element name="duration" type="xs:integer"/>
<xs:element name="chance" type="permille"/>
</xs:sequence>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="summon"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="radiateAbil">
<xs:all>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="wall-force"/>
<xs:enumeration value="wall-fire"/>
<xs:enumeration value="field-antimagic"/>
<xs:enumeration value="cloud-stink"/>
<xs:enumeration value="wall-ice"/>
<xs:enumeration value="wall-blades"/>
<xs:enumeration value="cloud-sleep"/>
<xs:enumeration value="obj-block"/>
<xs:enumeration value="field-web"/>
<xs:enumeration value="obj-crate"/>
<xs:enumeration value="obj-barrel"/>
<xs:enumeration value="barr-fire"/>
<xs:enumeration value="barr-force"/>
<xs:enumeration value="field-quickfire"/>
<xs:enumeration value="sfx-sm-bld"/>
<xs:enumeration value="sfx-med-bld"/>
<xs:enumeration value="sfx-lg-bld"/>
<xs:enumeration value="sfx-sm-slm"/>
<xs:enumeration value="sfx-lg-slm"/>
<xs:enumeration value="sfx-ash"/>
<xs:enumeration value="sfx-bone"/>
<xs:enumeration value="sfx-rock"/>
<xs:enumeration value="barr-cage"/>
<xs:enumeration value="dispel"/>
<xs:enumeration value="smash"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="pattern" type="spellPattern" minOccurs="0"/>
<xs:element name="chance" type="permille"/>
</xs:all>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="radiate"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="specialAbil">
<xs:sequence>
<xs:element name="param" type="xs:integer" minOccurs="0" maxOccurs="3"/>
</xs:sequence>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="splits"/>
<xs:enumeration value="martyr"/>
<xs:enumeration value="absorb"/>
<xs:enumeration value="old-web"/>
<xs:enumeration value="old-heat"/>
<xs:enumeration value="spec-act"/>
<xs:enumeration value="spec-hit"/>
<xs:enumeration value="spec-death"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="attack">
<xs:simpleContent>
<xs:extension base="dice">
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="swing"/>
<xs:enumeration value="claw"/>
<xs:enumeration value="bite"/>
<xs:enumeration value="slime"/>
<xs:enumeration value="punch"/>
<xs:enumeration value="sting"/>
<xs:enumeration value="club"/>
<xs:enumeration value="burn"/>
<xs:enumeration value="harm"/>
<xs:enumeration value="stab"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="monster">
<xs:all>
<xs:element name="name" type="xs:string"/>
<xs:element name="level" type="xs:integer"/>
<xs:element name="armor" type="xs:integer"/>
<xs:element name="skill" type="xs:integer"/>
<xs:element name="hp" type="xs:integer"/>
<xs:element name="speed" type="xs:integer"/>
<xs:element name="treasure" minOccurs="0" type="xs:integer"/>
<xs:element name="mage" minOccurs="0" type="xs:integer"/>
<xs:element name="priest" minOccurs="0" type="xs:integer"/>
<xs:element name="race" type="species"/>
<xs:element name="abilities" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="invisible" minOccurs="0"/>
<xs:element name="guard" minOccurs="0"/>
<xs:choice maxOccurs="unbounded">
<xs:element name="general" type="generalAbil" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="missile" type="missileAbil" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="summon" type="summonAbil" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="radiate" type="radiateAbil" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="special" type="specialAbil" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:unique name="abilsPerMonst">
<xs:selector xpath="general|missile|summon|radiate|special"/>
<xs:field xpath="@type"/>
</xs:unique>
</xs:element>
<xs:element name="attacks">
<xs:complexType>
<xs:sequence>
<xs:element name="attack" type="attack" maxOccurs="3"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="pic">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="w" type="xs:integer" use="required"/>
<xs:attribute name="h" type="xs:integer" use="required"/>
<xs:attribute name="custom" type="bool" default="false"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="default-face" minOccurs="0" type="xs:integer"/>
<xs:element name="onsight" minOccurs="0" type="xs:integer"/>
<xs:element name="voice" minOccurs="0" type="xs:integer"/>
<xs:element name="summon" minOccurs="0" type="xs:integer"/>
<xs:element name="attitude" type="monsterAttitude"/>
<xs:element name="immunity">
<xs:complexType>
<xs:all>
<xs:element name="fire" type="xs:integer" minOccurs="0"/>
<xs:element name="cold" type="xs:integer" minOccurs="0"/>
<xs:element name="poison" type="xs:integer" minOccurs="0"/>
<xs:element name="magic" type="xs:integer" minOccurs="0"/>
<xs:element name="weap" type="xs:integer" minOccurs="0"/>
<xs:element name="weird" type="xs:integer" minOccurs="0"/>
<xs:element name="undead" type="xs:integer" minOccurs="0"/>
<xs:element name="demon" type="xs:integer" minOccurs="0"/>
<xs:element name="all" type="bool" minOccurs="0"/>
<xs:element name="fear" type="bool" minOccurs="0"/>
<xs:element name="assassinate" type="bool" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="loot" minOccurs="0">
<xs:complexType>
<xs:all>
<xs:element name="type" type="xs:integer"/>
<xs:element name="chance" type="xs:integer"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
<xs:element name="monsters">
<xs:complexType>
<xs:sequence>

View File

@@ -10,323 +10,323 @@
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:complexType mixed="true" name="scenIcon">
<xs:attribute name="custom" type="bool" default="false"/>
<xs:attribute name="split" type="bool" default="false"/>
<xs:attribute name="row" type="xs:integer" default="0"/>
<xs:attribute name="col" type="xs:integer" default="0"/>
</xs:complexType>
<xs:complexType name="author">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="email" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="scenText">
<xs:sequence>
<xs:element name="teaser" minOccurs="0" maxOccurs="2" type="xs:string"/>
<xs:element name="icon" type="scenIcon" minOccurs="0"/>
<xs:element name="intro-msg" minOccurs="0" maxOccurs="6" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ratings">
<xs:all>
<xs:element name="content">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="G"/>
<xs:enumeration value="PG"/>
<xs:enumeration value="R"/>
<xs:enumeration value="NC-17"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="difficulty">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="4"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="scenFlags">
<xs:sequence>
<xs:element name="adjust-difficulty" type="bool"/>
<xs:element name="legacy" type="xs:string"/>
<xs:element name="custom-graphics" type="bool"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="creator">
<xs:sequence>
<xs:element name="type" type="xs:string"/>
<xs:element name="version" type="xs:string"/>
<xs:element name="os" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="shopEntries">
<xs:choice minOccurs='0' maxOccurs='30'>
<xs:element name='item'>
<xs:complexType><xs:simpleContent>
<xs:extension base='xs:integer'>
<xs:attribute name='quantity' type='shop-amount' default='0'/>
<xs:attribute name='chance' type='xs:integer' default='100'/>
<xs:complexType mixed="true" name="scenIcon">
<xs:attribute name="custom" type="bool" default="false"/>
<xs:attribute name="split" type="bool" default="false"/>
<xs:attribute name="row" type="xs:integer" default="0"/>
<xs:attribute name="col" type="xs:integer" default="0"/>
</xs:complexType>
<xs:complexType name="author">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="email" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="scenText">
<xs:sequence>
<xs:element name="teaser" minOccurs="0" maxOccurs="2" type="xs:string"/>
<xs:element name="icon" type="scenIcon" minOccurs="0"/>
<xs:element name="intro-msg" minOccurs="0" maxOccurs="6" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ratings">
<xs:all>
<xs:element name="content">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="G"/>
<xs:enumeration value="PG"/>
<xs:enumeration value="R"/>
<xs:enumeration value="NC-17"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="difficulty">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="4"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="scenFlags">
<xs:sequence>
<xs:element name="adjust-difficulty" type="bool"/>
<xs:element name="legacy" type="xs:string"/>
<xs:element name="custom-graphics" type="bool"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="creator">
<xs:sequence>
<xs:element name="type" type="xs:string"/>
<xs:element name="version" type="xs:string"/>
<xs:element name="os" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="shopEntries">
<xs:choice minOccurs='0' maxOccurs='30'>
<xs:element name='item'>
<xs:complexType><xs:simpleContent>
<xs:extension base='xs:integer'>
<xs:attribute name='quantity' type='shop-amount' default='0'/>
<xs:attribute name='chance' type='xs:integer' default='100'/>
</xs:extension>
</xs:simpleContent></xs:complexType>
</xs:element>
<xs:element name='mage-spell'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='61'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='priest-spell'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='61'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='recipe'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='19'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='skill'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='20'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='treasure'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='4'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='class'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='1'/>
<xs:maxInclusive value='100'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='heal'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='9'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='special'>
<xs:complexType>
<xs:all>
<xs:element name='name' type='xs:string'/>
<xs:element name='description' type='xs:string'/>
<xs:element name='node' type='xs:integer'/>
<xs:element name='quantity' type='shop-amount'/>
<xs:element name='cost' type='xs:integer'/>
<xs:element name='icon' type='xs:integer'/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:complexType name="gameData">
<xs:sequence>
<xs:element name="num-towns" type="xs:integer"/>
<xs:element name="out-width" type="xs:integer"/>
<xs:element name="out-height" type="xs:integer"/>
<xs:element name="on-init" type="xs:integer" minOccurs="0"/>
<xs:element name="start-town" type="xs:integer"/>
<xs:element name="town-start">
<xs:complexType>
<xs:attributeGroup ref="point"/>
</xs:complexType>
</xs:element>
<xs:element name="outdoor-start">
<xs:complexType>
<xs:attributeGroup ref="point"/>
</xs:complexType>
</xs:element>
<xs:element name="sector-start">
<xs:complexType>
<xs:attributeGroup ref="point"/>
</xs:complexType>
</xs:element>
<xs:element name="store-items" minOccurs="0" maxOccurs="3">
<xs:complexType>
<xs:attributeGroup ref="rect"/>
<xs:attribute name="town" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="town-flag" minOccurs="0" maxOccurs="10">
<xs:complexType>
<xs:attribute name="town" type="xs:integer" use="required"/>
<xs:attribute name="add-x" type="xs:integer" use="required"/>
<xs:attribute name="add-y" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="special-item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
</xs:sequence>
<xs:attribute name="special" type="xs:integer"/>
<xs:attribute name="start-with" type="bool"/>
<xs:attribute name="useable" type="bool"/>
</xs:complexType>
</xs:element>
<xs:element name="quest" minOccurs='0' maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name='deadline' minOccurs='0'>
<xs:complexType>
<xs:simpleContent>
<xs:extension base='xs:integer'>
<xs:attribute name="relative" type="bool"/>
<xs:attribute name='waive-if' type='xs:integer'/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name='reward' minOccurs='0'>
<xs:complexType>
<xs:attribute name='xp' type='xs:integer'/>
<xs:attribute name='gold' type='xs:integer'/>
</xs:complexType>
</xs:element>
<xs:element name='bank' type='xs:integer' minOccurs='0' maxOccurs='2'/>
<xs:element name="name" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
</xs:sequence>
<xs:attribute name="start-with" type="bool"/>
</xs:complexType>
</xs:element>
<xs:element name="shop" minOccurs='0' maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name='name' type='xs:string'/>
<xs:element name='type'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='live'/>
<xs:enumeration value='dead'/>
<xs:enumeration value='rand'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='prompt'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='shop'/>
<xs:enumeration value='heal'/>
<xs:enumeration value='mage'/>
<xs:enumeration value='priest'/>
<xs:enumeration value='spell'/>
<xs:enumeration value='alch'/>
<xs:enumeration value='train'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='face' type='xs:integer'/>
<xs:element name='entries' type="shopEntries"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="timer" type="timer" minOccurs="0" maxOccurs="20"/>
<xs:element name="string" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:extension>
</xs:simpleContent></xs:complexType>
</xs:element>
<xs:element name='mage-spell'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='61'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='priest-spell'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='61'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='recipe'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='19'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='skill'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='20'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='treasure'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='4'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='class'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='1'/>
<xs:maxInclusive value='100'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='heal'>
<xs:simpleType>
<xs:restriction base='xs:integer'>
<xs:minInclusive value='0'/>
<xs:maxInclusive value='9'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='special'>
<xs:complexType>
<xs:all>
<xs:element name='name' type='xs:string'/>
<xs:element name='description' type='xs:string'/>
<xs:element name='node' type='xs:integer'/>
<xs:element name='quantity' type='shop-amount'/>
<xs:element name='cost' type='xs:integer'/>
<xs:element name='icon' type='xs:integer'/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:complexType name="gameData">
<xs:sequence>
<xs:element name="num-towns" type="xs:integer"/>
<xs:element name="out-width" type="xs:integer"/>
<xs:element name="out-height" type="xs:integer"/>
<xs:element name="on-init" type="xs:integer" minOccurs="0"/>
<xs:element name="start-town" type="xs:integer"/>
<xs:element name="town-start">
<xs:complexType>
<xs:attributeGroup ref="point"/>
</xs:complexType>
</xs:element>
<xs:element name="outdoor-start">
<xs:complexType>
<xs:attributeGroup ref="point"/>
</xs:complexType>
</xs:element>
<xs:element name="sector-start">
<xs:complexType>
<xs:attributeGroup ref="point"/>
</xs:complexType>
</xs:element>
<xs:element name="store-items" minOccurs="0" maxOccurs="3">
<xs:complexType>
<xs:attributeGroup ref="rect"/>
<xs:attribute name="town" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="town-flag" minOccurs="0" maxOccurs="10">
<xs:complexType>
<xs:attribute name="town" type="xs:integer" use="required"/>
<xs:attribute name="add-x" type="xs:integer" use="required"/>
<xs:attribute name="add-y" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="special-item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
</xs:sequence>
<xs:attribute name="special" type="xs:integer"/>
<xs:attribute name="start-with" type="bool"/>
<xs:attribute name="useable" type="bool"/>
</xs:complexType>
</xs:element>
<xs:element name="quest" minOccurs='0' maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name='deadline' minOccurs='0'>
<xs:complexType>
<xs:simpleContent>
<xs:extension base='xs:integer'>
<xs:attribute name="relative" type="bool"/>
<xs:attribute name='waive-if' type='xs:integer'/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name='reward' minOccurs='0'>
<xs:complexType>
<xs:attribute name='xp' type='xs:integer'/>
<xs:attribute name='gold' type='xs:integer'/>
</xs:complexType>
</xs:element>
<xs:element name='bank' type='xs:integer' minOccurs='0' maxOccurs='2'/>
<xs:element name="name" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
</xs:sequence>
<xs:attribute name="start-with" type="bool"/>
</xs:complexType>
</xs:element>
<xs:element name="shop" minOccurs='0' maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name='name' type='xs:string'/>
<xs:element name='type'>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="journal" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="editorData">
<xs:sequence>
<xs:element name="default-ground" type="xs:integer"/>
<xs:element name="last-out-section">
<xs:complexType>
<xs:attributeGroup ref="point"/>
</xs:complexType>
</xs:element>
<xs:element name="last-town" type="xs:integer"/>
<xs:element name="graphics" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="pic" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="index" type="xs:integer" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="storage" minOccurs="0" maxOccurs="10">
<xs:complexType>
<xs:sequence>
<xs:element name="on-terrain" type="xs:integer"/>
<xs:element name="is-property" type="bool"/>
<xs:element name="item" minOccurs="0" maxOccurs="10">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="chance" type="xs:integer" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sound" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" use="required">
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='live'/>
<xs:enumeration value='dead'/>
<xs:enumeration value='rand'/>
<xs:restriction base="xs:integer">
<xs:minInclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='prompt'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='shop'/>
<xs:enumeration value='heal'/>
<xs:enumeration value='mage'/>
<xs:enumeration value='priest'/>
<xs:enumeration value='spell'/>
<xs:enumeration value='alch'/>
<xs:enumeration value='train'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name='face' type='xs:integer'/>
<xs:element name='entries' type="shopEntries"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="timer" type="timer" minOccurs="0" maxOccurs="20"/>
<xs:element name="string" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="journal" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="editorData">
<xs:sequence>
<xs:element name="default-ground" type="xs:integer"/>
<xs:element name="last-out-section">
<xs:complexType>
<xs:attributeGroup ref="point"/>
</xs:complexType>
</xs:element>
<xs:element name="last-town" type="xs:integer"/>
<xs:element name="graphics" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="pic" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="index" type="xs:integer" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="storage" minOccurs="0" maxOccurs="10">
<xs:complexType>
<xs:sequence>
<xs:element name="on-terrain" type="xs:integer"/>
<xs:element name="is-property" type="bool"/>
<xs:element name="item" minOccurs="0" maxOccurs="10">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="chance" type="xs:integer" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sound" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" use="required">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="scenario">
<xs:complexType>
<xs:sequence>

View File

@@ -80,64 +80,64 @@
<xs:enumeration value="none"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="editorData">
<xs:all>
<xs:element name="shortcut" minOccurs="0" type="key"/>
<xs:element name="frill" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="chance" type="xs:integer" use="optional" default="10"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="object" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="num" type="xs:integer"/>
<xs:element name="pos" type="point"/>
<xs:element name="size" type="point"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="terrain">
<xs:all>
<xs:element name="name" type="xs:string"/>
<xs:element name="pic" type="xs:integer"/>
<xs:element name="map" type="xs:integer"/>
<xs:element name="blockage" type="blockage"/>
<xs:element name="special">
<xs:complexType>
<xs:sequence>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z-]+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="flag" minOccurs="0" maxOccurs="3" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="transform" minOccurs="0" type="xs:integer"/>
<xs:element name="fly" minOccurs="0" type="bool"/>
<xs:element name="boat" minOccurs="0" type="bool"/>
<xs:element name="ride" minOccurs="0" type="bool"/>
<xs:element name="archetype" minOccurs="0" type="bool"/>
<xs:element name="light" minOccurs="0" type="xs:integer"/>
<xs:element name="step-sound" minOccurs="0" type="stepSound"/>
<xs:element name="trim" type="terTrim"/>
<xs:element name="arena" type="xs:integer"/>
<xs:element name="ground" minOccurs="0" type="xs:integer"/>
<xs:element name="trim-for" minOccurs="0" type="xs:integer"/>
<xs:element name="editor" type="editorData" minOccurs="0"/>
</xs:all>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
<xs:complexType name="editorData">
<xs:all>
<xs:element name="shortcut" minOccurs="0" type="key"/>
<xs:element name="frill" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="chance" type="xs:integer" use="optional" default="10"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="object" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="num" type="xs:integer"/>
<xs:element name="pos" type="point"/>
<xs:element name="size" type="point"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="terrain">
<xs:all>
<xs:element name="name" type="xs:string"/>
<xs:element name="pic" type="xs:integer"/>
<xs:element name="map" type="xs:integer"/>
<xs:element name="blockage" type="blockage"/>
<xs:element name="special">
<xs:complexType>
<xs:sequence>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z-]+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="flag" minOccurs="0" maxOccurs="3" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="transform" minOccurs="0" type="xs:integer"/>
<xs:element name="fly" minOccurs="0" type="bool"/>
<xs:element name="boat" minOccurs="0" type="bool"/>
<xs:element name="ride" minOccurs="0" type="bool"/>
<xs:element name="archetype" minOccurs="0" type="bool"/>
<xs:element name="light" minOccurs="0" type="xs:integer"/>
<xs:element name="step-sound" minOccurs="0" type="stepSound"/>
<xs:element name="trim" type="terTrim"/>
<xs:element name="arena" type="xs:integer"/>
<xs:element name="ground" minOccurs="0" type="xs:integer"/>
<xs:element name="trim-for" minOccurs="0" type="xs:integer"/>
<xs:element name="editor" type="editorData" minOccurs="0"/>
</xs:all>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
<xs:element name="terrains">
<xs:complexType>
<xs:sequence>