summary refs log tree commit diff stats
path: root/res/maps.xsd
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2015-03-18 18:23:54 -0400
committerKelly Rauchenberger <fefferburbia@gmail.com>2015-03-18 18:23:54 -0400
commit103587c2d5f9deb20e549a86cdf5023b429cc6a1 (patch)
treef1e2fc60b86395e0cc40646ad1e4396a835b682f /res/maps.xsd
parent2ec163612042bfa5e4e1bf220b489506f7039677 (diff)
downloadtherapy-103587c2d5f9deb20e549a86cdf5023b429cc6a1.tar.gz
therapy-103587c2d5f9deb20e549a86cdf5023b429cc6a1.tar.bz2
therapy-103587c2d5f9deb20e549a86cdf5023b429cc6a1.zip
Wrote an XML Schema describing maps file and also changed the spec a bit
Diffstat (limited to 'res/maps.xsd')
-rw-r--r--res/maps.xsd92
1 files changed, 92 insertions, 0 deletions
diff --git a/res/maps.xsd b/res/maps.xsd new file mode 100644 index 0000000..9d36fab --- /dev/null +++ b/res/maps.xsd
@@ -0,0 +1,92 @@
1<?xml version="1.0"?>
2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3 <xs:simpleType name="map">
4 <xs:restriction base="xs:integer">
5 <xs:minInclusive value="0" />
6 </xs:restriction>
7 </xs:simpleType>
8
9 <xs:simpleType name="move-type">
10 <xs:restriction base="xs:string">
11 <xs:enumeration value="wall" />
12 <xs:enumeration value="wrap" />
13 <xs:enumeration value="warp" />
14 <xs:enumeration value="reverseWarp" />
15 </xs:restriction>
16 </xs:simpleType>
17
18 <xs:simpleType name="direction">
19 <xs:restriction base="xs:string">
20 <xs:enumeration value="left" />
21 <xs:enumeration value="right" />
22 <xs:enumeration value="up" />
23 <xs:enumeration value="down" />
24 </xs:restriction>
25 </xs:simpleType>
26
27 <xs:element name="world">
28 <xs:complexType>
29 <xs:sequence>
30 <xs:element name="root" type="map" maxOccurs="unbounded" />
31
32 <xs:element name="map" maxOccurs="unbounded">
33 <xs:complexType>
34 <xs:sequence>
35 <xs:element name="environment">
36 <xs:complexType>
37 <xs:simpleContent>
38 <xs:extension base="xs:string">
39 <xs:attribute name="type" use="required">
40 <xs:simpleType>
41 <xs:restriction base="xs:integer">
42 <xs:minInclusive value="0" />
43 <xs:maxExclusive value="5" />
44 </xs:restriction>
45 </xs:simpleType>
46 </xs:attribute>
47 </xs:extension>
48 </xs:simpleContent>
49 </xs:complexType>
50 </xs:element>
51
52 <xs:element name="entity" minOccurs="0" maxOccurs="unbounded">
53 <xs:complexType>
54 <xs:attribute name="type" type="xs:string" use="required" />
55 <xs:attribute name="x" type="xs:integer" use="required" />
56 <xs:attribute name="y" type="xs:integer" use="required" />
57 </xs:complexType>
58 </xs:element>
59
60 <xs:element name="adjacent" minOccurs="0" maxOccurs="4">
61 <xs:complexType>
62 <xs:attribute name="dir" type="direction" use="required" />
63 <xs:attribute name="type" type="move-type" use="required" />
64 <xs:attribute name="map" type="map" default="0" />
65 </xs:complexType>
66 </xs:element>
67
68 <xs:element name="child" type="map" minOccurs="0" maxOccurs="unbounded" />
69 </xs:sequence>
70
71 <xs:attribute name="id" type="xs:integer" use="required" />
72 <xs:attribute name="expanded" type="xs:boolean" default="false" />
73 <xs:attribute name="title" use="required">
74 <xs:simpleType>
75 <xs:restriction base="xs:string">
76 <xs:maxLength value="40" />
77 </xs:restriction>
78 </xs:simpleType>
79 </xs:attribute>
80 </xs:complexType>
81 </xs:element>
82 </xs:sequence>
83
84 <xs:attribute name="nextmap" type="map" default="0" />
85 <xs:attribute name="lastmap" type="map" default="0" />
86 <xs:attribute name="startx" type="xs:integer" use="required" />
87 <xs:attribute name="starty" type="xs:integer" use="required" />
88 <xs:attribute name="startmap" type="map" use="required" />
89 </xs:complexType>
90 </xs:element>
91
92</xs:schema>