Implement loading of scenarios
- This also tweaks the scenario schemas for consistency between schemas and code, adds some unique key restraints, and makes some attributes required.
This commit is contained in:
@@ -52,10 +52,7 @@
|
||||
<xs:element name="text" minOccurs="1" maxOccurs="2" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="for" type="xs:integer" use="required"/>
|
||||
</xs:complexType><!--
|
||||
short personality,type;
|
||||
char link1[4],link2[4];
|
||||
short extras[4]; -->
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="dialogue">
|
||||
<xs:complexType>
|
||||
@@ -63,7 +60,7 @@
|
||||
<xs:element ref="personality" maxOccurs="10"/>
|
||||
<xs:element ref="node" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string"/>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
@@ -120,6 +120,11 @@
|
||||
<xs:sequence>
|
||||
<xs:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
<xs:unique name='itemIds'>
|
||||
<xs:selector xpath='item'/>
|
||||
<xs:field xpath='@id'/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
|
@@ -192,6 +192,7 @@
|
||||
<xs:sequence>
|
||||
<xs:element ref="monster" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
<xs:unique name='monsterIds'>
|
||||
<xs:selector xpath='monster'/>
|
||||
|
@@ -57,53 +57,43 @@
|
||||
</xs:element>
|
||||
<xs:element name="encounter" type="encounter" minOccurs="0" maxOccurs="4"/>
|
||||
<xs:element name="wandering" type="encounter" minOccurs="0" maxOccurs="4"/>
|
||||
<xs:element name="signs">
|
||||
<xs:element name="sign" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="string" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="id" type="xs:integer"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<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="descriptions">
|
||||
<xs:element name="area" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="area" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attributeGroup ref="rect"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attributeGroup ref="rect"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="strings">
|
||||
<xs:element name="string" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="string" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="id" type="xs:integer"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<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:attribute name="boes" type="xs:string"/>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
<xs:unique name='stringIds'>
|
||||
<xs:selector xpath='string'/>
|
||||
<xs:field xpath='@id'/>
|
||||
</xs:unique>
|
||||
<xs:unique name='signIds'>
|
||||
<xs:selector xpath='sign'/>
|
||||
<xs:field xpath='@id'/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:schema>
|
@@ -205,26 +205,20 @@
|
||||
</xs:element>
|
||||
<xs:element name="town-flag" minOccurs="0" maxOccurs="10">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="town" type="xs:integer"/>
|
||||
<xs:attribute name="add-x" type="xs:integer"/>
|
||||
<xs:attribute name="add-y" type="xs:integer"/>
|
||||
<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="specials">
|
||||
<xs:element name="special-item" minOccurs="0" maxOccurs="50">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="item" minOccurs="0" maxOccurs="50">
|
||||
<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="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">
|
||||
@@ -288,13 +282,29 @@
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attribute name="time" type="xs:integer"/>
|
||||
<xs:attribute name="freq" type="xs:integer" use="required"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<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:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="journal" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
@@ -315,7 +325,7 @@
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attribute name="index" type="xs:integer"/>
|
||||
<xs:attribute name="index" type="xs:integer" use="required"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
@@ -332,7 +342,7 @@
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attribute name="chance" type="xs:integer"/>
|
||||
<xs:attribute name="chance" type="xs:integer" use="required"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
@@ -359,7 +369,7 @@
|
||||
<xs:element ref="game"/>
|
||||
<xs:element ref="editor"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string"/>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
|
@@ -131,8 +131,6 @@
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="ground" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="trim-for" minOccurs="0" type="xs:integer"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
@@ -159,6 +157,8 @@
|
||||
<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 ref="editor" minOccurs="0"/>
|
||||
</xs:all>
|
||||
<xs:attribute name="id" type="xs:integer" use="required"/>
|
||||
@@ -169,7 +169,11 @@
|
||||
<xs:sequence>
|
||||
<xs:element ref="terrain" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string"/>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
<xs:unique name='terrainIds'>
|
||||
<xs:selector xpath='terrain'/>
|
||||
<xs:field xpath='@id'/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
|
@@ -116,33 +116,25 @@
|
||||
<xs:element name="wandering" minOccurs="0" maxOccurs="4">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="monster" maxOccurs="4">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attribute name="group" type="xs:integer"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="monster" type="xs:integer" maxOccurs="4"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element name="sign">
|
||||
<xs:element name="sign" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="id" type="xs:integer"/>
|
||||
<xs:attribute name="id" type="xs:integer" use="required"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="string">
|
||||
<xs:element name="string" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="id" type="xs:integer"/>
|
||||
<xs:attribute name="id" type="xs:integer" use="required"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
@@ -177,7 +169,7 @@
|
||||
<xs:sequence>
|
||||
<xs:element name="param" maxOccurs="2" type="xs:integer"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="type">
|
||||
<xs:attribute name="type" use="required">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="always"/>
|
||||
@@ -197,11 +189,12 @@
|
||||
<xs:element name="face" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="personality" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="onkill" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="ontalk" type="xs:integer" minOccurs="0"/>
|
||||
</xs:all>
|
||||
<xs:attribute name="id" type="xs:integer"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="description">
|
||||
<xs:element name="area">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
@@ -212,7 +205,7 @@
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string"/>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
<xs:attribute name="type">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
@@ -222,5 +215,13 @@
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<xs:unique name='stringIds'>
|
||||
<xs:selector xpath='string'/>
|
||||
<xs:field xpath='@id'/>
|
||||
</xs:unique>
|
||||
<xs:unique name='signIds'>
|
||||
<xs:selector xpath='sign'/>
|
||||
<xs:field xpath='@id'/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:schema>
|
Reference in New Issue
Block a user