Projekt

Obecné

Profil

Task #627 » SpaceTrafficStarSystemSchema.xsd

Upravené schema - Martin Štěpánek, 2011-08-23 17:59

 
1
<?xml version="1.0" encoding="utf-8" ?>
2
<!--Created with Liquid XML Studio 6.1.17.0 - FREE Community Edition (http://www.liquid-technologies.com)-->
3
<xs:schema xmlns="SpaceTrafficData" targetNamespace="SpaceTrafficData"
4
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
5
  xmlns:html="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd">
6
  <xs:element name="stdata">
7
    <xs:complexType>
8
      <xs:all>
9
        <xs:element name="starsystem" type="StarSystem">
10
          <xs:annotation>
11
            <xs:documentation>
12
    			Solarni system, ma jednoznacny a jediencny nazev, ktery
13
    			se vklada do atributu name
14
    		</xs:documentation>
15
          </xs:annotation>
16
        </xs:element>
17
      </xs:all>
18
      <xs:attribute default="1.0" name="version" type="xs:string" use="optional"/>
19
    </xs:complexType>
20
  </xs:element>
21
  <xs:complexType name="VisibleObject" abstract="true">
22
    <xs:sequence>
23
      <xs:element name="trajectory">
24
        <xs:complexType>
25
          <xs:choice>
26
            <xs:element name="circle">
27
              <xs:complexType>
28
                <xs:attribute name="radis" type="xs:int" use="required"/>
29
              </xs:complexType>
30
            </xs:element>
31
            <xs:element name="elipse">
32
              <xs:complexType>
33
                <xs:attribute name="rX" type="xs:int" use="required"/>
34
                <xs:attribute name="rY" type="xs:int" use="required"/>
35
              </xs:complexType>
36
            </xs:element>
37
            <xs:element name="point">
38
              <xs:complexType>
39
                <xs:attribute name="x" type="xs:int"/>
40
                <xs:attribute name="y" type="xs:int"/>
41
              </xs:complexType>
42
            </xs:element>
43
          </xs:choice>
44
          <xs:attribute name="velocity" type="xs:double" use="required"/>
45
          <xs:attribute default="clockwise" name="direction">
46
            <xs:simpleType>
47
              <xs:restriction base="xs:string">
48
                <xs:enumeration value="clockwise"/>
49
                <xs:enumeration value="counterclockwise"/>
50
              </xs:restriction>
51
            </xs:simpleType>
52
          </xs:attribute>
53
        </xs:complexType>
54
      </xs:element>
55
      <xs:element name="graphics">
56
        <xs:complexType>
57
          <xs:sequence>
58
            <xs:any namespace="##any"/>
59
          </xs:sequence>
60
        </xs:complexType>
61
      </xs:element>
62
    </xs:sequence>
63
  </xs:complexType>
64
  <xs:complexType name="WormholeEndpoint">
65
    <xs:complexContent mixed="false">
66
      <xs:extension base="VisibleObject">
67
        <xs:attribute name="id" use="required">
68
          <xs:simpleType>
69
            <xs:restriction base="xs:int">
70
              <xs:minInclusive value="0"/>
71
              <xs:maxInclusive value="6"/>
72
            </xs:restriction>
73
          </xs:simpleType>
74
        </xs:attribute>
75
      </xs:extension>
76
    </xs:complexContent>
77
  </xs:complexType>
78
  <xs:complexType name="Planet">
79
    <xs:complexContent mixed="false">
80
      <xs:extension base="VisibleObject">
81
        <xs:sequence>
82
          <xs:element name="planetInfo" type="PlanetInfo"/>
83
        </xs:sequence>
84
        <xs:attribute name="altName" use="optional">
85
          <xs:simpleType>
86
            <xs:restriction base="nameString">
87
              <xs:minLength value="1"/>
88
              <xs:maxLength value="10"/>
89
            </xs:restriction>
90
          </xs:simpleType>
91
        </xs:attribute>
92
        <xs:attribute name="name" use="required">
93
          <xs:simpleType>
94
            <xs:restriction base="nameString">
95
              <xs:minLength value="1"/>
96
              <xs:maxLength value="30"/>
97
            </xs:restriction>
98
          </xs:simpleType>
99
        </xs:attribute>
100
      </xs:extension>
101
    </xs:complexContent>
102
  </xs:complexType>
103
  <xs:complexType name="StarSystem">
104
    <xs:all>
105
      <xs:element name="star" type="VisibleObject">
106
        <xs:annotation>
107
          <xs:documentation>nevi jestli je vhodne definivat hvezdu jako planetu, ma celkem podobny popis</xs:documentation>
108
        </xs:annotation>
109
      </xs:element>
110
      <xs:element minOccurs="0" name="planets">
111
        <xs:complexType>
112
          <xs:sequence>
113
            <xs:element maxOccurs="10" name="planet" type="Planet"/>
114
          </xs:sequence>
115
        </xs:complexType>
116
      </xs:element>
117
      <xs:element minOccurs="0" name="wormholeEndpoints">
118
        <xs:complexType>
119
          <xs:sequence>
120
            <xs:element maxOccurs="5" name="wormholeEndpoint" type="WormholeEndpoint"/>
121
          </xs:sequence>
122
        </xs:complexType>
123
        <xs:unique name="newUnique">
124
          <xs:selector xpath="wormholeEndpoint"/>
125
          <xs:field xpath="id"/>
126
        </xs:unique>
127
      </xs:element>
128
    </xs:all>
129
    <xs:attribute name="name" type="xs:string" use="required"/>
130
  </xs:complexType>
131
  <xs:complexType name="elementDescription">
132
    <xs:choice>
133
      <xs:element name="src" type="xs:string"/>
134
      <xs:element name="href" type="xs:string"/>
135
      <xs:element name="width" type="xs:double"/>
136
      <xs:element name="height" type="xs:double"/>
137
      <xs:element name="class" type="xs:string"/>
138
      <xs:element name="id" type="xs:string"/>
139
      <xs:element name="startX" type="xs:double"/>
140
      <xs:element name="startY" type="xs:double"/>
141
      <xs:element name="nullPoint" type="xs:float">
142
        <xs:annotation>
143
          <xs:documentation>herni datum vzniku elementu, podle toho lze vypocitat kde aktualne objekt nachazi</xs:documentation>
144
        </xs:annotation>
145
      </xs:element>
146
    </xs:choice>
147
    <xs:attribute name="type" type="xs:string" use="required">
148
      <xs:annotation>
149
        <xs:documentation>
150
    				popisuje typ elementu (canvas, a, div), urcuje chovani objektu, podle tohe se predeluje akce onload, onready, click...
151
    			</xs:documentation>
152
      </xs:annotation>
153
    </xs:attribute>
154
  </xs:complexType>
155
  <xs:complexType name="LanguageSpecificData">
156
    <xs:attribute name="lang" type="xs:string"/>
157
  </xs:complexType>
158
  <xs:complexType name="PlanetInfo">
159
    <xs:sequence>
160
      <xs:element name="gravity" type="xs:float">
161
        <xs:annotation>
162
          <xs:documentation>
163
    					Sila ktera na planetu pusobi, ma vliv na
164
    					akceliraci, treba take muze mit vliv na
165
    					vzdalenost od hvezdy
166
    				</xs:documentation>
167
        </xs:annotation>
168
      </xs:element>
169
      <xs:element name="mass" type="xs:double">
170
        <xs:annotation>
171
          <xs:documentation>
172
    					massa planety v kg :), ma vliv na rychlost a akceleraci
173
    				</xs:documentation>
174
        </xs:annotation>
175
      </xs:element>
176
      <xs:element name="descritpion" maxOccurs="unbounded">
177
        <xs:complexType>
178
          <xs:complexContent>
179
            <xs:extension base="LanguageSpecificData">
180
              <xs:sequence>
181
                <xs:any namespace="##any"/>
182
              </xs:sequence>
183
            </xs:extension>
184
          </xs:complexContent>
185
        </xs:complexType>
186
      </xs:element>
187
    </xs:sequence>
188
  </xs:complexType>
189
  <xs:simpleType name="nameString">
190
    <xs:restriction base="xs:string">
191
      <xs:minLength value="1"/>
192
      <xs:maxLength value="30"/>
193
    </xs:restriction>
194
  </xs:simpleType>
195
</xs:schema>
(2-2/2)