un.real <battal84@gmail.com>:
[reactos.git] / reactos / lib / libxml2 / test / schemas / bug306806_1.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
3 <xs:element name="targetGeometry">
4 <xs:complexType>
5 <xs:group minOccurs="0" maxOccurs="unbounded" ref="geometry-element"/>
6 </xs:complexType>
7 </xs:element>
8 <xs:element name="geometryGroup" type="geometryGroup-content"/>
9 <xs:complexType name="geometryGroup-content">
10 <xs:group maxOccurs="unbounded" ref="geometry-element"/>
11 <xs:attribute name="name" use="required" type="xs:token"/>
12 </xs:complexType>
13 <xs:group name="geometry-element">
14 <xs:sequence>
15 <xs:choice minOccurs="0" maxOccurs="unbounded">
16 <xs:element ref="component"/>
17 <xs:element ref="geometryGroup"/>
18 </xs:choice>
19 </xs:sequence>
20 </xs:group>
21 <xs:element name="component">
22 <xs:complexType>
23 <xs:sequence>
24 <xs:element minOccurs="0" ref="description"/>
25 <xs:choice minOccurs="0" maxOccurs="unbounded">
26 <xs:element ref="cylinder"/>
27 <xs:element ref="ellipsoid"/>
28 <xs:element ref="faceSet"/>
29 <xs:element ref="tube"/>
30 <xs:element ref="sphere"/>
31 <xs:element ref="box"/>
32 <xs:element ref="extrusion"/>
33 </xs:choice>
34 </xs:sequence>
35 <xs:attributeGroup ref="name-attribute"/>
36 </xs:complexType>
37 </xs:element>
38 <xs:element name="translation">
39 <xs:complexType>
40 <xs:simpleContent>
41 <xs:extension base="three-doubles-list">
42 <xs:attributeGroup ref="dimension-attribute"/>
43 <xs:attributeGroup ref="Length-attribute"/>
44 </xs:extension>
45 </xs:simpleContent>
46 </xs:complexType>
47 </xs:element>
48 <xs:element name="rotation">
49 <xs:complexType>
50 <xs:simpleContent>
51 <xs:extension base="three-doubles-list">
52 <xs:attributeGroup ref="dimension-attribute"/>
53 <xs:attributeGroup ref="Length-attribute"/>
54 </xs:extension>
55 </xs:simpleContent>
56 </xs:complexType>
57 </xs:element>
58 <xs:element name="about">
59 <xs:complexType>
60 <xs:simpleContent>
61 <xs:extension base="three-doubles-list">
62 <xs:attributeGroup ref="dimension-attribute"/>
63 <xs:attributeGroup ref="Length-attribute"/>
64 </xs:extension>
65 </xs:simpleContent>
66 </xs:complexType>
67 </xs:element>
68 <xs:element name="length">
69 <xs:complexType>
70 <xs:simpleContent>
71 <xs:restriction base="xs:anyType">
72 <xs:simpleType>
73 <xs:restriction base="xs:double">
74 <xs:minExclusive value="0"/>
75 </xs:restriction>
76 </xs:simpleType>
77 <xs:attributeGroup ref="dimension-attribute"/>
78 <xs:attributeGroup ref="Length-attribute"/>
79 </xs:restriction>
80 </xs:simpleContent>
81 </xs:complexType>
82 </xs:element>
83 <xs:element name="radius">
84 <xs:complexType>
85 <xs:simpleContent>
86 <xs:restriction base="xs:anyType">
87 <xs:simpleType>
88 <xs:restriction base="xs:double">
89 <xs:minExclusive value="0"/>
90 </xs:restriction>
91 </xs:simpleType>
92 <xs:attributeGroup ref="dimension-attribute"/>
93 <xs:attributeGroup ref="Length-attribute"/>
94 </xs:restriction>
95 </xs:simpleContent>
96 </xs:complexType>
97 </xs:element>
98 <xs:element name="base1">
99 <xs:complexType>
100 <xs:simpleContent>
101 <xs:extension base="three-doubles-list">
102 <xs:attributeGroup ref="dimension-attribute"/>
103 <xs:attributeGroup ref="Length-attribute"/>
104 </xs:extension>
105 </xs:simpleContent>
106 </xs:complexType>
107 </xs:element>
108 <xs:element name="base2">
109 <xs:complexType>
110 <xs:simpleContent>
111 <xs:extension base="three-doubles-list">
112 <xs:attributeGroup ref="dimension-attribute"/>
113 <xs:attributeGroup ref="Length-attribute"/>
114 </xs:extension>
115 </xs:simpleContent>
116 </xs:complexType>
117 </xs:element>
118 <xs:element name="transform">
119 <xs:complexType>
120 <xs:sequence>
121 <xs:element minOccurs="0" ref="translation"/>
122 <xs:element minOccurs="0" ref="rotation"/>
123 <xs:element minOccurs="0" ref="about"/>
124 </xs:sequence>
125 </xs:complexType>
126 </xs:element>
127 <xs:element name="cyl-transform">
128 <xs:complexType>
129 <xs:sequence>
130 <xs:element ref="translation"/>
131 <xs:element minOccurs="0" ref="rotation"/>
132 <xs:element minOccurs="0" ref="about"/>
133 </xs:sequence>
134 </xs:complexType>
135 </xs:element>
136 <xs:element name="cylinder">
137 <xs:complexType>
138 <xs:choice minOccurs="0" maxOccurs="unbounded">
139 <xs:element ref="radius"/>
140 <xs:choice>
141 <xs:choice>
142 <xs:element ref="length"/>
143 <xs:element ref="cyl-transform"/>
144 </xs:choice>
145 <xs:choice>
146 <xs:element ref="base1"/>
147 <xs:element ref="base2"/>
148 <xs:element minOccurs="0" maxOccurs="unbounded" ref="transform"/>
149 </xs:choice>
150 </xs:choice>
151 <xs:element ref="description"/>
152 <xs:element ref="vMaterial"/>
153 </xs:choice>
154 <xs:attributeGroup ref="name-attribute"/>
155 </xs:complexType>
156 </xs:element>
157 <xs:element name="ellipsoid">
158 <xs:complexType>
159 <xs:choice minOccurs="0" maxOccurs="unbounded">
160 <xs:element name="radius">
161 <xs:complexType>
162 <xs:simpleContent>
163 <xs:extension base="three-doubles-list">
164 <xs:attributeGroup ref="length-attribute"/>
165 </xs:extension>
166 </xs:simpleContent>
167 </xs:complexType>
168 </xs:element>
169 <xs:element ref="vMaterial"/>
170 <xs:element ref="transform"/>
171 </xs:choice>
172 <xs:attributeGroup ref="name-attribute"/>
173 </xs:complexType>
174 </xs:element>
175 <xs:element name="faceSet">
176 <xs:complexType>
177 <xs:choice minOccurs="0" maxOccurs="unbounded">
178 <xs:element ref="description"/>
179 <xs:element ref="vertex_normals"/>
180 <xs:element ref="vertices"/>
181 <xs:element ref="facets"/>
182 <xs:group ref="optional-content"/>
183 </xs:choice>
184 <xs:attribute name="name" type="xs:token"/>
185 </xs:complexType>
186 </xs:element>
187 <xs:element name="facets" type="facets-content"/>
188 <xs:simpleType name="facets-content">
189 <xs:restriction base="integer-list"/>
190 </xs:simpleType>
191 <xs:element name="vertex_normals" type="vertex_normals-content"/>
192 <xs:complexType name="vertex_normals-content">
193 <xs:simpleContent>
194 <xs:restriction base="xs:anyType">
195 <xs:simpleType>
196 <xs:restriction>
197 <xs:simpleType>
198 <xs:list>
199 <xs:simpleType>
200 <xs:union>
201 <xs:simpleType>
202 <xs:union memberTypes="xs:double xs:double xs:double"/>
203 </xs:simpleType>
204 <xs:simpleType>
205 <xs:union memberTypes="xs:double xs:double xs:double"/>
206 </xs:simpleType>
207 <xs:simpleType>
208 <xs:union memberTypes="xs:double xs:double xs:double"/>
209 </xs:simpleType>
210 <xs:simpleType>
211 <xs:union memberTypes="xs:double xs:double xs:double"/>
212 </xs:simpleType>
213 </xs:union>
214 </xs:simpleType>
215 </xs:list>
216 </xs:simpleType>
217 <xs:minLength value="9"/>
218 </xs:restriction>
219 </xs:simpleType>
220 <xs:attributeGroup ref="length-attribute"/>
221 </xs:restriction>
222 </xs:simpleContent>
223 </xs:complexType>
224 <xs:element name="vertices" type="vertices-content"/>
225 <xs:complexType name="vertices-content">
226 <xs:simpleContent>
227 <xs:restriction base="xs:anyType">
228 <xs:simpleType>
229 <xs:restriction>
230 <xs:simpleType>
231 <xs:list>
232 <xs:simpleType>
233 <xs:union>
234 <xs:simpleType>
235 <xs:union memberTypes="xs:double xs:double xs:double"/>
236 </xs:simpleType>
237 <xs:simpleType>
238 <xs:union memberTypes="xs:double xs:double xs:double"/>
239 </xs:simpleType>
240 <xs:simpleType>
241 <xs:union memberTypes="xs:double xs:double xs:double"/>
242 </xs:simpleType>
243 <xs:simpleType>
244 <xs:union memberTypes="xs:double xs:double xs:double"/>
245 </xs:simpleType>
246 </xs:union>
247 </xs:simpleType>
248 </xs:list>
249 </xs:simpleType>
250 <xs:minLength value="9"/>
251 </xs:restriction>
252 </xs:simpleType>
253 <xs:attributeGroup ref="length-attribute"/>
254 </xs:restriction>
255 </xs:simpleContent>
256 </xs:complexType>
257 <xs:element name="tube" type="tube-content"/>
258 <xs:complexType name="tube-content">
259 <xs:choice minOccurs="0" maxOccurs="unbounded">
260 <xs:element ref="spine"/>
261 <xs:element ref="radius"/>
262 <xs:group ref="optional-content"/>
263 </xs:choice>
264 <xs:attributeGroup ref="name-attribute"/>
265 </xs:complexType>
266 <xs:element name="spine" type="spine-content"/>
267 <xs:complexType name="spine-content">
268 <xs:simpleContent>
269 <xs:restriction base="xs:anyType">
270 <xs:simpleType>
271 <xs:restriction>
272 <xs:simpleType>
273 <xs:list>
274 <xs:simpleType>
275 <xs:union>
276 <xs:simpleType>
277 <xs:union memberTypes="xs:double xs:double xs:double"/>
278 </xs:simpleType>
279 <xs:simpleType>
280 <xs:union memberTypes="xs:double xs:double xs:double"/>
281 </xs:simpleType>
282 </xs:union>
283 </xs:simpleType>
284 </xs:list>
285 </xs:simpleType>
286 <xs:minLength value="6"/>
287 </xs:restriction>
288 </xs:simpleType>
289 <xs:attributeGroup ref="length-attribute"/>
290 </xs:restriction>
291 </xs:simpleContent>
292 </xs:complexType>
293 <xs:element name="sphere" type="sphere-content"/>
294 <xs:complexType name="sphere-content">
295 <xs:choice minOccurs="0" maxOccurs="unbounded">
296 <xs:element ref="radius"/>
297 <xs:element ref="position"/>
298 </xs:choice>
299 <xs:attributeGroup ref="name-attribute"/>
300 </xs:complexType>
301 <xs:element name="position" type="position-content"/>
302 <xs:complexType name="position-content">
303 <xs:simpleContent>
304 <xs:extension base="three-doubles-list">
305 <xs:attributeGroup ref="length-attribute"/>
306 </xs:extension>
307 </xs:simpleContent>
308 </xs:complexType>
309 <xs:element name="box" type="box-content"/>
310 <xs:complexType name="box-content">
311 <xs:choice minOccurs="0" maxOccurs="unbounded">
312 <xs:element ref="size"/>
313 <xs:choice>
314 <xs:element ref="position"/>
315 <xs:element ref="transform"/>
316 </xs:choice>
317 </xs:choice>
318 <xs:attributeGroup ref="name-attribute"/>
319 </xs:complexType>
320 <xs:element name="size" type="size-content"/>
321 <xs:complexType name="size-content">
322 <xs:simpleContent>
323 <xs:extension base="three-doubles-list">
324 <xs:attributeGroup ref="length-attribute"/>
325 </xs:extension>
326 </xs:simpleContent>
327 </xs:complexType>
328 <xs:element name="extrusion" type="extrusion-content"/>
329 <xs:complexType name="extrusion-content">
330 <xs:choice minOccurs="0" maxOccurs="unbounded">
331 <xs:element ref="spine"/>
332 <xs:element ref="scale"/>
333 <xs:element ref="crossSection"/>
334 <xs:group ref="optional-content"/>
335 </xs:choice>
336 <xs:attributeGroup ref="name-attribute"/>
337 </xs:complexType>
338 <xs:element name="scale" type="scale-content"/>
339 <xs:simpleType name="scale-content">
340 <xs:restriction>
341 <xs:simpleType>
342 <xs:list>
343 <xs:simpleType>
344 <xs:union memberTypes="xs:double xs:double"/>
345 </xs:simpleType>
346 </xs:list>
347 </xs:simpleType>
348 <xs:minLength value="2"/>
349 </xs:restriction>
350 </xs:simpleType>
351 <xs:element name="crossSection" type="crossSection-content"/>
352 <xs:complexType name="crossSection-content">
353 <xs:simpleContent>
354 <xs:restriction base="xs:anyType">
355 <xs:simpleType>
356 <xs:restriction>
357 <xs:simpleType>
358 <xs:list>
359 <xs:simpleType>
360 <xs:union>
361 <xs:simpleType>
362 <xs:union memberTypes="xs:double xs:double xs:double"/>
363 </xs:simpleType>
364 <xs:simpleType>
365 <xs:union memberTypes="xs:double xs:double xs:double"/>
366 </xs:simpleType>
367 <xs:simpleType>
368 <xs:union memberTypes="xs:double xs:double xs:double"/>
369 </xs:simpleType>
370 </xs:union>
371 </xs:simpleType>
372 </xs:list>
373 </xs:simpleType>
374 <xs:minLength value="9"/>
375 </xs:restriction>
376 </xs:simpleType>
377 <xs:attributeGroup ref="length-attribute"/>
378 <xs:attributeGroup ref="closed-attribute"/>
379 </xs:restriction>
380 </xs:simpleContent>
381 </xs:complexType>
382 <xs:attributeGroup name="closed-attribute">
383 <xs:attribute name="closed" use="required" type="xs:boolean"/>
384 </xs:attributeGroup>
385 <xs:group name="optional-content">
386 <xs:annotation>
387 <xs:documentation>global #############</xs:documentation>
388 </xs:annotation>
389 <xs:sequence>
390 <xs:choice minOccurs="0" maxOccurs="unbounded">
391 <xs:element ref="transform"/>
392 <xs:element ref="vMaterial"/>
393 </xs:choice>
394 </xs:sequence>
395 </xs:group>
396 <xs:element name="description" type="xs:string"/>
397 <xs:attributeGroup name="length-attribute">
398 <xs:attributeGroup ref="dimension-attribute"/>
399 <xs:attributeGroup ref="Length-attribute"/>
400 </xs:attributeGroup>
401 <xs:attributeGroup name="dimension-attribute">
402 <xs:attribute name="dimension" use="required">
403 <xs:simpleType>
404 <xs:restriction base="xs:token">
405 <xs:enumeration value="L"/>
406 <xs:enumeration value="F"/>
407 <xs:enumeration value="M"/>
408 <xs:enumeration value="T"/>
409 <xs:enumeration value="F/L"/>
410 <xs:enumeration value="F/LL"/>
411 <xs:enumeration value="F/LLL"/>
412 <xs:enumeration value="F/T"/>
413 <xs:enumeration value="F/TT"/>
414 <xs:enumeration value="F/TTT"/>
415 <xs:enumeration value="L/T"/>
416 <xs:enumeration value="L/TT"/>
417 <xs:enumeration value="LLLLL"/>
418 <xs:enumeration value="D/D"/>
419 </xs:restriction>
420 </xs:simpleType>
421 </xs:attribute>
422 </xs:attributeGroup>
423 <xs:attributeGroup name="Length-attribute">
424 <xs:attribute name="Length" use="required">
425 <xs:simpleType>
426 <xs:restriction base="xs:token">
427 <xs:enumeration value="meter"/>
428 <xs:enumeration value="m"/>
429 <xs:enumeration value="foot"/>
430 <xs:enumeration value="f"/>
431 <xs:enumeration value="inch"/>
432 <xs:enumeration value="in"/>
433 <xs:enumeration value="centimeter"/>
434 <xs:enumeration value="cm"/>
435 <xs:enumeration value="decimeter"/>
436 <xs:enumeration value="dm"/>
437 <xs:enumeration value="millimeter"/>
438 <xs:enumeration value="mm"/>
439 <xs:enumeration value="degree"/>
440 </xs:restriction>
441 </xs:simpleType>
442 </xs:attribute>
443 </xs:attributeGroup>
444 <xs:attributeGroup name="Time-attribute">
445 <xs:attribute name="Time" use="required">
446 <xs:simpleType>
447 <xs:restriction base="xs:token">
448 <xs:enumeration value="second"/>
449 <xs:enumeration value="s"/>
450 <xs:enumeration value="sec"/>
451 <xs:enumeration value="minute"/>
452 <xs:enumeration value="min"/>
453 <xs:enumeration value="hour"/>
454 <xs:enumeration value="hr"/>
455 </xs:restriction>
456 </xs:simpleType>
457 </xs:attribute>
458 </xs:attributeGroup>
459 <xs:attributeGroup name="Force-attribute">
460 <xs:attribute name="Force" use="required">
461 <xs:simpleType>
462 <xs:restriction base="xs:token">
463 <xs:enumeration value="newton"/>
464 <xs:enumeration value="n"/>
465 <xs:enumeration value="pound"/>
466 <xs:enumeration value="grain"/>
467 </xs:restriction>
468 </xs:simpleType>
469 </xs:attribute>
470 </xs:attributeGroup>
471 <xs:attributeGroup name="Mass-attribute">
472 <xs:attribute name="Mass" use="required">
473 <xs:simpleType>
474 <xs:restriction base="xs:token">
475 <xs:enumeration value="kilogram"/>
476 <xs:enumeration value="kg"/>
477 <xs:enumeration value="gram"/>
478 </xs:restriction>
479 </xs:simpleType>
480 </xs:attribute>
481 </xs:attributeGroup>
482 <xs:attributeGroup name="Dimensionless-attribute">
483 <xs:attribute name="Dimensionless" use="required">
484 <xs:simpleType>
485 <xs:restriction base="xs:token">
486 <xs:enumeration value="radian"/>
487 <xs:enumeration value="rad"/>
488 </xs:restriction>
489 </xs:simpleType>
490 </xs:attribute>
491 </xs:attributeGroup>
492 <xs:simpleType name="three-doubles-list">
493 <xs:restriction>
494 <xs:simpleType>
495 <xs:list>
496 <xs:simpleType>
497 <xs:union memberTypes="xs:double xs:double xs:double"/>
498 </xs:simpleType>
499 </xs:list>
500 </xs:simpleType>
501 <xs:length value="3"/>
502 </xs:restriction>
503 </xs:simpleType>
504 <xs:simpleType name="integer-list">
505 <xs:restriction>
506 <xs:simpleType>
507 <xs:list>
508 <xs:simpleType>
509 <xs:union memberTypes="xs:integer xs:integer"/>
510 </xs:simpleType>
511 </xs:list>
512 </xs:simpleType>
513 <xs:minLength value="1"/>
514 </xs:restriction>
515 </xs:simpleType>
516 <xs:attributeGroup name="name-attribute">
517 <xs:attribute name="name" use="required" type="xs:token"/>
518 </xs:attributeGroup>
519 <xs:attributeGroup name="description-attribute">
520 <xs:attribute name="description" use="required"/>
521 </xs:attributeGroup>
522 <xs:element name="vMaterial">
523 <xs:complexType>
524 <xs:sequence>
525 <xs:element minOccurs="0" ref="diffuseColor"/>
526 <xs:element minOccurs="0" ref="emissiveColor"/>
527 <xs:element minOccurs="0" ref="specularColor"/>
528 <xs:element minOccurs="0" ref="shininess"/>
529 <xs:element minOccurs="0" ref="transparency"/>
530 <xs:element minOccurs="0" ref="ambientIntensity"/>
531 <xs:element minOccurs="0" ref="DEF"/>
532 <xs:element minOccurs="0" ref="USE"/>
533 </xs:sequence>
534 </xs:complexType>
535 </xs:element>
536 <xs:element name="diffuseColor" type="xs:string"/>
537 <xs:element name="emissiveColor" type="xs:string"/>
538 <xs:element name="specularColor" type="xs:string"/>
539 <xs:element name="shininess" type="xs:string"/>
540 <xs:element name="transparency" type="xs:string"/>
541 <xs:element name="ambientIntensity" type="xs:string"/>
542 <xs:element name="DEF" type="xs:string"/>
543 <xs:element name="USE" type="xs:string"/>
544 </xs:schema>