Schemas: Enforce root element by eliminating global element declarations
This commit is contained in:
@@ -105,8 +105,7 @@
|
||||
<xs:attribute name="color"/>
|
||||
<xs:attribute name="colour"/>
|
||||
</xs:attributeGroup>
|
||||
<xs:element name="field">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="field">
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="name" type="xs:token"/>
|
||||
@@ -125,9 +124,7 @@
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="text">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexType mixed="true" name="message">
|
||||
<xs:sequence>
|
||||
<xs:element name="br" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType/>
|
||||
@@ -140,9 +137,7 @@
|
||||
<xs:attribute name="fromlist" default="none" type="xs:string"/>
|
||||
<xs:attributeGroup ref="rect-size"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="pict">
|
||||
<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"/>
|
||||
@@ -163,9 +158,7 @@
|
||||
<xs:attribute name="num" use="required" type="xs:integer"/>
|
||||
<xs:attributeGroup ref="rect-size"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="button">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexType mixed="true" name="button">
|
||||
<xs:sequence>
|
||||
<xs:element name="key" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType/>
|
||||
@@ -178,9 +171,7 @@
|
||||
<xs:attribute name="fromlist" default="none" type="xs:string"/>
|
||||
<xs:attributeGroup ref="rect-size"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="led">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="led">
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="name" use="required" type="xs:token"/>
|
||||
@@ -199,9 +190,7 @@
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="slider">
|
||||
<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"/>
|
||||
@@ -211,62 +200,55 @@
|
||||
<xs:attribute name="style" type="scrollStyle" default="led"/>
|
||||
<xs:attributeGroup ref="rect-size"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="group">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="ledGroup">
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="led"/>
|
||||
<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:element>
|
||||
<xs:element name="stack">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="stack">
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="field"/>
|
||||
<xs:element ref="text"/>
|
||||
<xs:element ref="pict"/>
|
||||
<xs:element ref="button"/>
|
||||
<xs:element ref="led"/>
|
||||
<xs:element ref="group"/>
|
||||
<xs:element ref="slider"/>
|
||||
<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:element>
|
||||
<xs:element name="pane">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="scrollPane">
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="field"/>
|
||||
<xs:element ref="text"/>
|
||||
<xs:element ref="pict"/>
|
||||
<xs:element ref="button"/>
|
||||
<xs:element ref="led"/>
|
||||
<xs:element ref="group"/>
|
||||
<xs:element ref="slider"/>
|
||||
<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>
|
||||
<xs:element name="dialog">
|
||||
<xs:complexType>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="field"/>
|
||||
<xs:element ref="text"/>
|
||||
<xs:element ref="pict"/>
|
||||
<xs:element ref="button"/>
|
||||
<xs:element ref="led"/>
|
||||
<xs:element ref="group"/>
|
||||
<xs:element ref="slider"/>
|
||||
<xs:element ref="stack"/>
|
||||
<xs:element ref="pane"/>
|
||||
<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:element name="stack" type="stack"/>
|
||||
<xs:element name="pane" type="scrollPane"/>
|
||||
</xs:choice>
|
||||
<xs:attribute name="skin" default="dark">
|
||||
<xs:simpleType>
|
||||
|
@@ -7,9 +7,7 @@
|
||||
<xs:maxInclusive value="6"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:element name="text" type="xs:string"/>
|
||||
<xs:element name="personality">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="personality">
|
||||
<xs:sequence>
|
||||
<xs:element name='title' type='xs:string'/>
|
||||
<xs:element name="look" type="xs:string"/>
|
||||
@@ -19,9 +17,7 @@
|
||||
</xs:sequence>
|
||||
<xs:attribute name="id" type="xs:integer" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="node">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="talkNode">
|
||||
<xs:sequence>
|
||||
<xs:element name="keyword" minOccurs="1" maxOccurs="2" type="xs:string"/>
|
||||
<xs:element name="type">
|
||||
@@ -36,12 +32,11 @@
|
||||
</xs:sequence>
|
||||
<xs:attribute name="for" type="xs:integer" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="dialogue">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="personality" minOccurs="0" maxOccurs="10"/>
|
||||
<xs:element ref="node" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="personality" type="personality" minOccurs="0" maxOccurs="10"/>
|
||||
<xs:element name="node" type="talkNode" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
|
@@ -64,8 +64,7 @@
|
||||
<xs:enumeration value="harm-all"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:element name="item">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="item">
|
||||
<xs:all>
|
||||
<xs:element name="variety" type="itemVariety"/>
|
||||
<xs:element name="level" type="xs:integer"/>
|
||||
@@ -115,11 +114,10 @@
|
||||
</xs:all>
|
||||
<xs:attribute name="id" type="xs:integer" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="items">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="item" type="item" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
|
@@ -59,8 +59,7 @@
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:element name="general">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="generalAbil">
|
||||
<xs:all>
|
||||
<xs:element name="type">
|
||||
<xs:simpleType>
|
||||
@@ -156,9 +155,7 @@
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="missile">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="missileAbil">
|
||||
<xs:all>
|
||||
<xs:element name="type">
|
||||
<xs:simpleType>
|
||||
@@ -190,9 +187,7 @@
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="summon">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="summonAbil">
|
||||
<xs:sequence>
|
||||
<xs:choice minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="type" type="xs:integer"/>
|
||||
@@ -212,9 +207,7 @@
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="radiate">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="radiateAbil">
|
||||
<xs:all>
|
||||
<xs:element name="type">
|
||||
<xs:simpleType>
|
||||
@@ -258,9 +251,7 @@
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="special">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="specialAbil">
|
||||
<xs:sequence>
|
||||
<xs:element name="param" type="xs:integer" minOccurs="0" maxOccurs="3"/>
|
||||
</xs:sequence>
|
||||
@@ -279,9 +270,7 @@
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="attack">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="attack">
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="dice">
|
||||
<xs:attribute name="type" use="required">
|
||||
@@ -303,9 +292,7 @@
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="monster">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="monster">
|
||||
<xs:all>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="level" type="xs:integer"/>
|
||||
@@ -323,11 +310,11 @@
|
||||
<xs:element name="invisible" minOccurs="0"/>
|
||||
<xs:element name="guard" minOccurs="0"/>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element ref="general" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element ref="missile" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element ref="summon" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element ref="radiate" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element ref="special" minOccurs="0" 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>
|
||||
@@ -339,7 +326,7 @@
|
||||
<xs:element name="attacks">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="attack" maxOccurs="3"/>
|
||||
<xs:element name="attack" type="attack" maxOccurs="3"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
@@ -387,11 +374,10 @@
|
||||
</xs:all>
|
||||
<xs:attribute name="id" type="xs:integer" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="monsters">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="monster" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="monster" type="monster" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
|
@@ -10,34 +10,26 @@
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
<xs:element name="icon">
|
||||
<xs:complexType mixed="true">
|
||||
<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:element>
|
||||
<xs:element name="version" type="xs:string"/>
|
||||
<xs:element name="author">
|
||||
<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:element>
|
||||
<xs:element name="text">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="scenText">
|
||||
<xs:sequence>
|
||||
<xs:element name="teaser" minOccurs="0" maxOccurs="2" type="xs:string"/>
|
||||
<xs:element ref="icon" minOccurs="0"/>
|
||||
<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:element>
|
||||
<xs:element name="ratings">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="ratings">
|
||||
<xs:all>
|
||||
<xs:element name="content">
|
||||
<xs:simpleType>
|
||||
@@ -59,27 +51,21 @@
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="flags">
|
||||
<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:element>
|
||||
<xs:element name="creator">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="creator">
|
||||
<xs:sequence>
|
||||
<xs:element name="type" type="xs:string"/>
|
||||
<xs:element ref="version"/>
|
||||
<xs:element name="version" type="xs:string"/>
|
||||
<xs:element name="os" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name='entries'>
|
||||
<xs:complexType>
|
||||
<xs:complexType name="shopEntries">
|
||||
<xs:choice minOccurs='0' maxOccurs='30'>
|
||||
<xs:element name='item'>
|
||||
<xs:complexType><xs:simpleContent>
|
||||
@@ -159,9 +145,7 @@
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="game">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="gameData">
|
||||
<xs:sequence>
|
||||
<xs:element name="num-towns" type="xs:integer"/>
|
||||
<xs:element name="out-width" type="xs:integer"/>
|
||||
@@ -260,7 +244,7 @@
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name='face' type='xs:integer'/>
|
||||
<xs:element ref='entries'/>
|
||||
<xs:element name='entries' type="shopEntries"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
@@ -285,9 +269,7 @@
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="editor">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="editorData">
|
||||
<xs:sequence>
|
||||
<xs:element name="default-ground" type="xs:integer"/>
|
||||
<xs:element name="last-out-section">
|
||||
@@ -345,22 +327,21 @@
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="scenario">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="title" type="xs:string"/>
|
||||
<xs:element ref="icon"/>
|
||||
<xs:element name="icon" type="scenIcon"/>
|
||||
<xs:element name="id" type="xs:string"/>
|
||||
<xs:element ref="version"/>
|
||||
<xs:element name="version" type="xs:string"/>
|
||||
<xs:element name="language" type="xs:language"/>
|
||||
<xs:element ref="author"/>
|
||||
<xs:element ref="text"/>
|
||||
<xs:element ref="ratings"/>
|
||||
<xs:element ref="flags"/>
|
||||
<xs:element ref="creator"/>
|
||||
<xs:element ref="game"/>
|
||||
<xs:element ref="editor"/>
|
||||
<xs:element name="author" type="author"/>
|
||||
<xs:element name="text" type="scenText"/>
|
||||
<xs:element name="ratings" type="ratings"/>
|
||||
<xs:element name="flags" type="scenFlags"/>
|
||||
<xs:element name="creator" type="creator"/>
|
||||
<xs:element name="game" type="gameData"/>
|
||||
<xs:element name="editor" type="editorData"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
|
@@ -80,8 +80,7 @@
|
||||
<xs:enumeration value="none"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:element name="editor">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="editorData">
|
||||
<xs:all>
|
||||
<xs:element name="shortcut" minOccurs="0" type="key"/>
|
||||
<xs:element name="frill" minOccurs="0">
|
||||
@@ -104,9 +103,7 @@
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="terrain">
|
||||
<xs:complexType>
|
||||
<xs:complexType name="terrain">
|
||||
<xs:all>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="pic" type="xs:integer"/>
|
||||
@@ -137,15 +134,14 @@
|
||||
<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:element name="editor" type="editorData" minOccurs="0"/>
|
||||
</xs:all>
|
||||
<xs:attribute name="id" type="xs:integer" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="terrains">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="terrain" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="terrain" type="terrain" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
|
Reference in New Issue
Block a user