~ubuntu-branches/ubuntu/wily/opencollada/wily-proposed

« back to all changes in this revision

Viewing changes to xsd2cppsax/collada_schema_1_4.xsd

  • Committer: Package Import Robot
  • Author(s): Matteo F. Vescovi
  • Date: 2015-05-14 17:23:27 UTC
  • Revision ID: package-import@ubuntu.com-20150514172327-f862u8envms01fra
Tags: upstream-0.1.0~20140703.ddf8f47+dfsg1
ImportĀ upstreamĀ versionĀ 0.1.0~20140703.ddf8f47+dfsg1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="utf-8"?>
 
2
<xs:schema xmlns="http://www.collada.org/2005/11/COLLADASchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.collada.org/2005/11/COLLADASchema" elementFormDefault="qualified" version="1.4.1" xml:lang="EN" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd">
 
3
        <!-- BEGIN COLLADA Format Schema -->
 
4
        <xs:annotation>
 
5
                <xs:documentation>
 
6
                         COLLADA Schema
 
7
                         Version 1.4.1 (June 23, 2006)
 
8
 
 
9
                         Copyright (C) 2005, 2006 The Khronos Group Inc., Sony Computer Entertainment Inc.
 
10
                         All Rights Reserved.
 
11
 
 
12
                         Khronos is a trademark of The Khronos Group Inc.
 
13
                         COLLADA is a trademark of Sony Computer Entertainment Inc. used by permission by Khronos.
 
14
 
 
15
                         Note that this software document is distributed on an "AS IS" basis, with ALL EXPRESS AND 
 
16
                         IMPLIED WARRANTIES AND CONDITIONS DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
 
17
                         WARRANTIES AND CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR 
 
18
                         PURPOSE, AND NON-INFRINGEMENT.
 
19
                </xs:documentation>
 
20
        </xs:annotation>
 
21
        <!-- import needed for xml:base attribute-->
 
22
        <!-- 
 
23
        <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
 
24
         -->
 
25
        <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
 
26
        <!-- Root Element -->
 
27
        <xs:element name="COLLADA">
 
28
                <xs:annotation>
 
29
                        <xs:appinfo>enable-xmlns</xs:appinfo>
 
30
                        <xs:documentation>
 
31
                        The COLLADA element declares the root of the document that comprises some of the content 
 
32
                        in the COLLADA schema.
 
33
                        </xs:documentation>
 
34
                </xs:annotation>
 
35
                <xs:complexType>
 
36
                        <xs:sequence>
 
37
                                <xs:element ref="asset">
 
38
                                        <xs:annotation>
 
39
                                                <xs:documentation>
 
40
                                                The COLLADA element must contain an asset element.
 
41
                                                </xs:documentation>
 
42
                                        </xs:annotation>
 
43
                                </xs:element>
 
44
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
45
                                        <xs:element ref="library_animations">
 
46
                                                <xs:annotation>
 
47
                                                        <xs:documentation>
 
48
                                                        The COLLADA element may contain any number of library_animations elements.
 
49
                                                        </xs:documentation>
 
50
                                                </xs:annotation>
 
51
                                        </xs:element>
 
52
                                        <xs:element ref="library_animation_clips">
 
53
                                                <xs:annotation>
 
54
                                                        <xs:documentation>
 
55
                                                        The COLLADA element may contain any number of library_animation_clips elements.
 
56
                                                        </xs:documentation>
 
57
                                                </xs:annotation>
 
58
                                        </xs:element>
 
59
                                        <xs:element ref="library_cameras">
 
60
                                                <xs:annotation>
 
61
                                                        <xs:documentation>
 
62
                                                        The COLLADA element may contain any number of library_cameras elements.
 
63
                                                        </xs:documentation>
 
64
                                                </xs:annotation>
 
65
                                        </xs:element>
 
66
                                        <xs:element ref="library_controllers">
 
67
                                                <xs:annotation>
 
68
                                                        <xs:documentation>
 
69
                                                        The COLLADA element may contain any number of library_controllerss elements.
 
70
                                                        </xs:documentation>
 
71
                                                </xs:annotation>
 
72
                                        </xs:element>
 
73
                                        <xs:element ref="library_geometries">
 
74
                                                <xs:annotation>
 
75
                                                        <xs:documentation>
 
76
                                                        The COLLADA element may contain any number of library_geometriess elements.
 
77
                                                        </xs:documentation>
 
78
                                                </xs:annotation>
 
79
                                        </xs:element>
 
80
                                        <xs:element ref="library_effects">
 
81
                                                <xs:annotation>
 
82
                                                        <xs:documentation>
 
83
                                                        The COLLADA element may contain any number of library_effects elements.
 
84
                                                        </xs:documentation>
 
85
                                                </xs:annotation>
 
86
                                        </xs:element>
 
87
                                        <xs:element ref="library_force_fields">
 
88
                                                <xs:annotation>
 
89
                                                        <xs:documentation>
 
90
                                                        The COLLADA element may contain any number of library_force_fields elements.
 
91
                                                        </xs:documentation>
 
92
                                                </xs:annotation>
 
93
                                        </xs:element>
 
94
                                        <xs:element ref="library_images">
 
95
                                                <xs:annotation>
 
96
                                                        <xs:documentation>
 
97
                                                        The COLLADA element may contain any number of library_images elements.
 
98
                                                        </xs:documentation>
 
99
                                                </xs:annotation>
 
100
                                        </xs:element>
 
101
                                        <xs:element ref="library_lights">
 
102
                                                <xs:annotation>
 
103
                                                        <xs:documentation>
 
104
                                                        The COLLADA element may contain any number of library_lights elements.
 
105
                                                        </xs:documentation>
 
106
                                                </xs:annotation>
 
107
                                        </xs:element>
 
108
                                        <xs:element ref="library_materials">
 
109
                                                <xs:annotation>
 
110
                                                        <xs:documentation>
 
111
                                                        The COLLADA element may contain any number of library_materials elements.
 
112
                                                        </xs:documentation>
 
113
                                                </xs:annotation>
 
114
                                        </xs:element>
 
115
                                        <xs:element ref="library_nodes">
 
116
                                                <xs:annotation>
 
117
                                                        <xs:documentation>
 
118
                                                        The COLLADA element may contain any number of library_nodes elements.
 
119
                                                        </xs:documentation>
 
120
                                                </xs:annotation>
 
121
                                        </xs:element>
 
122
                                        <xs:element ref="library_physics_materials">
 
123
                                                <xs:annotation>
 
124
                                                        <xs:documentation>
 
125
                                                        The COLLADA element may contain any number of library_materials elements.
 
126
                                                        </xs:documentation>
 
127
                                                </xs:annotation>
 
128
                                        </xs:element>
 
129
                                        <xs:element ref="library_physics_models">
 
130
                                                <xs:annotation>
 
131
                                                        <xs:documentation>
 
132
                                                        The COLLADA element may contain any number of library_physics_models elements.
 
133
                                                        </xs:documentation>
 
134
                                                </xs:annotation>
 
135
                                        </xs:element>
 
136
                                        <xs:element ref="library_physics_scenes">
 
137
                                                <xs:annotation>
 
138
                                                        <xs:documentation>
 
139
                                                        The COLLADA element may contain any number of library_physics_scenes elements.
 
140
                                                        </xs:documentation>
 
141
                                                </xs:annotation>
 
142
                                        </xs:element>
 
143
                                        <xs:element ref="library_visual_scenes">
 
144
                                                <xs:annotation>
 
145
                                                        <xs:documentation>
 
146
                                                        The COLLADA element may contain any number of library_visual_scenes elements.
 
147
                                                        </xs:documentation>
 
148
                                                </xs:annotation>
 
149
                                        </xs:element>
 
150
                                </xs:choice>
 
151
                                <xs:element name="scene" minOccurs="0">
 
152
                                        <xs:annotation>
 
153
                                                <xs:documentation>
 
154
                                                The scene embodies the entire set of information that can be visualized from the 
 
155
                                                contents of a COLLADA resource. The scene element declares the base of the scene 
 
156
                                                hierarchy or scene graph. The scene contains elements that comprise much of the 
 
157
                                                visual and transformational information content as created by the authoring tools.
 
158
                                                </xs:documentation>
 
159
                                        </xs:annotation>
 
160
                                        <xs:complexType>
 
161
                                                <xs:sequence>
 
162
                                                        <xs:element name="instance_physics_scene" type="InstanceWithExtra" minOccurs="0" maxOccurs="unbounded">
 
163
                                                                <xs:annotation>
 
164
                                                                        <xs:documentation>
 
165
                                                                        The instance_physics_scene element declares the instantiation of a COLLADA physics_scene resource.
 
166
                                                                        The instance_physics_scene element may appear any number of times.
 
167
                                                                        </xs:documentation>
 
168
                                                                </xs:annotation>
 
169
                                                        </xs:element>
 
170
                                                        <xs:element name="instance_visual_scene" type="InstanceWithExtra" minOccurs="0">
 
171
                                                                <xs:annotation>
 
172
                                                                        <xs:documentation>
 
173
                                                                        The instance_visual_scene element declares the instantiation of a COLLADA visual_scene resource.
 
174
                                                                        The instance_visual_scene element may only appear once.
 
175
                                                                        </xs:documentation>
 
176
                                                                </xs:annotation>
 
177
                                                        </xs:element>
 
178
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
179
                                                                <xs:annotation>
 
180
                                                                        <xs:documentation>
 
181
                                                                        The extra element may appear any number of times.
 
182
                                                                        </xs:documentation>
 
183
                                                                </xs:annotation>
 
184
                                                        </xs:element>
 
185
                                                </xs:sequence>
 
186
                                        </xs:complexType>
 
187
                                </xs:element>
 
188
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
189
                                        <xs:annotation>
 
190
                                                <xs:documentation>
 
191
                                                The extra element may appear any number of times.
 
192
                                                </xs:documentation>
 
193
                                        </xs:annotation>
 
194
                                </xs:element>
 
195
                        </xs:sequence>
 
196
                        <xs:attribute name="version" type="VersionType" use="required">
 
197
                                <xs:annotation>
 
198
                                        <xs:documentation>
 
199
                                                The version attribute is the COLLADA schema revision with which the instance document 
 
200
                                                conforms. Required Attribute.
 
201
                                        </xs:documentation>
 
202
                                </xs:annotation>
 
203
                        </xs:attribute>
 
204
                        <xs:attribute ref="xml:base">
 
205
                                <xs:annotation>
 
206
                                        <xs:documentation>
 
207
                                        The xml:base attribute allows you to define the base URI for this COLLADA document. See
 
208
                                        http://www.w3.org/TR/xmlbase/ for more information.
 
209
                                        </xs:documentation>
 
210
                                </xs:annotation>
 
211
                        </xs:attribute>
 
212
                </xs:complexType>
 
213
        </xs:element>
 
214
        <!-- Simple Types -->
 
215
        <!-- Primitive Types -->
 
216
        <xs:simpleType name="bool">
 
217
                <xs:restriction base="xs:boolean"/>
 
218
        </xs:simpleType>
 
219
        <xs:simpleType name="dateTime">
 
220
                <xs:restriction base="xs:dateTime"/>
 
221
        </xs:simpleType>
 
222
        <xs:simpleType name="float">
 
223
                <xs:restriction base="xs:double"/>
 
224
        </xs:simpleType>
 
225
        <xs:simpleType name="int">
 
226
                <xs:restriction base="xs:long"/>
 
227
        </xs:simpleType>
 
228
        <xs:simpleType name="Name">
 
229
                <xs:restriction base="xs:Name"/>
 
230
        </xs:simpleType>
 
231
        <xs:simpleType name="string">
 
232
                <xs:restriction base="xs:string"/>
 
233
        </xs:simpleType>
 
234
        <xs:simpleType name="token">
 
235
                <xs:restriction base="xs:token"/>
 
236
        </xs:simpleType>
 
237
        <xs:simpleType name="uint">
 
238
                <xs:restriction base="xs:unsignedLong"/>
 
239
        </xs:simpleType>
 
240
        <!-- Container Types -->
 
241
        <xs:simpleType name="ListOfBools">
 
242
                <xs:list itemType="bool"/>
 
243
        </xs:simpleType>
 
244
        <xs:simpleType name="ListOfFloats">
 
245
                <xs:list itemType="float"/>
 
246
        </xs:simpleType>
 
247
        <xs:simpleType name="ListOfHexBinary">
 
248
                <xs:list itemType="xs:hexBinary"/>
 
249
        </xs:simpleType>
 
250
        <xs:simpleType name="ListOfInts">
 
251
                <xs:list itemType="int"/>
 
252
        </xs:simpleType>
 
253
        <xs:simpleType name="ListOfNames">
 
254
                <xs:list itemType="Name"/>
 
255
        </xs:simpleType>
 
256
        <xs:simpleType name="ListOfTokens">
 
257
                <xs:list itemType="token"/>
 
258
        </xs:simpleType>
 
259
        <xs:simpleType name="ListOfUInts">
 
260
                <xs:list itemType="uint"/>
 
261
        </xs:simpleType>
 
262
        <!-- Aggregate Types -->
 
263
        <xs:simpleType name="bool2">
 
264
                <xs:restriction base="ListOfBools">
 
265
                        <xs:minLength value="2"/>
 
266
                        <xs:maxLength value="2"/>
 
267
                </xs:restriction>
 
268
        </xs:simpleType>
 
269
        <xs:simpleType name="bool3">
 
270
                <xs:restriction base="ListOfBools">
 
271
                        <xs:minLength value="3"/>
 
272
                        <xs:maxLength value="3"/>
 
273
                </xs:restriction>
 
274
        </xs:simpleType>
 
275
        <xs:simpleType name="bool4">
 
276
                <xs:restriction base="ListOfBools">
 
277
                        <xs:minLength value="4"/>
 
278
                        <xs:maxLength value="4"/>
 
279
                </xs:restriction>
 
280
        </xs:simpleType>
 
281
        <xs:simpleType name="float2">
 
282
                <xs:restriction base="ListOfFloats">
 
283
                        <xs:minLength value="2"/>
 
284
                        <xs:maxLength value="2"/>
 
285
                </xs:restriction>
 
286
        </xs:simpleType>
 
287
        <xs:simpleType name="float3">
 
288
                <xs:restriction base="ListOfFloats">
 
289
                        <xs:minLength value="3"/>
 
290
                        <xs:maxLength value="3"/>
 
291
                </xs:restriction>
 
292
        </xs:simpleType>
 
293
        <xs:simpleType name="float4">
 
294
                <xs:restriction base="ListOfFloats">
 
295
                        <xs:minLength value="4"/>
 
296
                        <xs:maxLength value="4"/>
 
297
                </xs:restriction>
 
298
        </xs:simpleType>
 
299
        <xs:simpleType name="float7">
 
300
                <xs:restriction base="ListOfFloats">
 
301
                        <xs:minLength value="7"/>
 
302
                        <xs:maxLength value="7"/>
 
303
                </xs:restriction>
 
304
        </xs:simpleType>
 
305
        <xs:simpleType name="float2x2">
 
306
                <xs:restriction base="ListOfFloats">
 
307
                        <xs:minLength value="4"/>
 
308
                        <xs:maxLength value="4"/>
 
309
                </xs:restriction>
 
310
        </xs:simpleType>
 
311
        <xs:simpleType name="float3x3">
 
312
                <xs:restriction base="ListOfFloats">
 
313
                        <xs:minLength value="9"/>
 
314
                        <xs:maxLength value="9"/>
 
315
                </xs:restriction>
 
316
        </xs:simpleType>
 
317
        <xs:simpleType name="float4x4">
 
318
                <xs:restriction base="ListOfFloats">
 
319
                        <xs:minLength value="16"/>
 
320
                        <xs:maxLength value="16"/>
 
321
                </xs:restriction>
 
322
        </xs:simpleType>
 
323
        <xs:simpleType name="float2x3">
 
324
                <xs:restriction base="ListOfFloats">
 
325
                        <xs:minLength value="6"/>
 
326
                        <xs:maxLength value="6"/>
 
327
                </xs:restriction>
 
328
        </xs:simpleType>
 
329
        <xs:simpleType name="float2x4">
 
330
                <xs:restriction base="ListOfFloats">
 
331
                        <xs:minLength value="8"/>
 
332
                        <xs:maxLength value="8"/>
 
333
                </xs:restriction>
 
334
        </xs:simpleType>
 
335
        <xs:simpleType name="float3x2">
 
336
                <xs:restriction base="ListOfFloats">
 
337
                        <xs:minLength value="6"/>
 
338
                        <xs:maxLength value="6"/>
 
339
                </xs:restriction>
 
340
        </xs:simpleType>
 
341
        <xs:simpleType name="float3x4">
 
342
                <xs:restriction base="ListOfFloats">
 
343
                        <xs:minLength value="12"/>
 
344
                        <xs:maxLength value="12"/>
 
345
                </xs:restriction>
 
346
        </xs:simpleType>
 
347
        <xs:simpleType name="float4x2">
 
348
                <xs:restriction base="ListOfFloats">
 
349
                        <xs:minLength value="8"/>
 
350
                        <xs:maxLength value="8"/>
 
351
                </xs:restriction>
 
352
        </xs:simpleType>
 
353
        <xs:simpleType name="float4x3">
 
354
                <xs:restriction base="ListOfFloats">
 
355
                        <xs:minLength value="12"/>
 
356
                        <xs:maxLength value="12"/>
 
357
                </xs:restriction>
 
358
        </xs:simpleType>
 
359
        <xs:simpleType name="int2">
 
360
                <xs:restriction base="ListOfInts">
 
361
                        <xs:minLength value="2"/>
 
362
                        <xs:maxLength value="2"/>
 
363
                </xs:restriction>
 
364
        </xs:simpleType>
 
365
        <xs:simpleType name="int3">
 
366
                <xs:restriction base="ListOfInts">
 
367
                        <xs:minLength value="3"/>
 
368
                        <xs:maxLength value="3"/>
 
369
                </xs:restriction>
 
370
        </xs:simpleType>
 
371
        <xs:simpleType name="int4">
 
372
                <xs:restriction base="ListOfInts">
 
373
                        <xs:minLength value="4"/>
 
374
                        <xs:maxLength value="4"/>
 
375
                </xs:restriction>
 
376
        </xs:simpleType>
 
377
        <xs:simpleType name="int2x2">
 
378
                <xs:restriction base="ListOfInts">
 
379
                        <xs:minLength value="4"/>
 
380
                        <xs:maxLength value="4"/>
 
381
                </xs:restriction>
 
382
        </xs:simpleType>
 
383
        <xs:simpleType name="int3x3">
 
384
                <xs:restriction base="ListOfInts">
 
385
                        <xs:minLength value="9"/>
 
386
                        <xs:maxLength value="9"/>
 
387
                </xs:restriction>
 
388
        </xs:simpleType>
 
389
        <xs:simpleType name="int4x4">
 
390
                <xs:restriction base="ListOfInts">
 
391
                        <xs:minLength value="16"/>
 
392
                        <xs:maxLength value="16"/>
 
393
                </xs:restriction>
 
394
        </xs:simpleType>
 
395
        <!-- Basic Enumerations -->
 
396
        <xs:simpleType name="MorphMethodType">
 
397
                <xs:annotation>
 
398
                        <xs:documentation>
 
399
                        An enumuerated type specifying the acceptable morph methods.
 
400
                        </xs:documentation>
 
401
                </xs:annotation>
 
402
                <xs:restriction base="xs:string">
 
403
                        <xs:enumeration value="NORMALIZED"/>
 
404
                        <xs:enumeration value="RELATIVE"/>
 
405
                </xs:restriction>
 
406
        </xs:simpleType>
 
407
        <xs:simpleType name="NodeType">
 
408
                <xs:annotation>
 
409
                        <xs:documentation>
 
410
                        An enumerated type specifying the acceptable node types.
 
411
                        </xs:documentation>
 
412
                </xs:annotation>
 
413
                <xs:restriction base="xs:string">
 
414
                        <xs:enumeration value="JOINT"/>
 
415
                        <xs:enumeration value="NODE"/>
 
416
                </xs:restriction>
 
417
        </xs:simpleType>
 
418
        <xs:simpleType name="URIFragmentType">
 
419
                <xs:annotation>
 
420
                        <xs:documentation>
 
421
                        This type is used for URI reference which can only reference a resource declared within it's same document.
 
422
                        </xs:documentation>
 
423
                </xs:annotation>
 
424
                <xs:restriction base="xs:string">
 
425
                        <xs:pattern value="(#(.*))"/>
 
426
                </xs:restriction>
 
427
        </xs:simpleType>
 
428
        <xs:simpleType name="UpAxisType">
 
429
                <xs:annotation>
 
430
                        <xs:documentation>
 
431
                        An enumerated type specifying the acceptable up-axis values.
 
432
                        </xs:documentation>
 
433
                </xs:annotation>
 
434
                <xs:restriction base="xs:string">
 
435
                        <xs:enumeration value="X_UP"/>
 
436
                        <xs:enumeration value="Y_UP"/>
 
437
                        <xs:enumeration value="Z_UP"/>
 
438
                </xs:restriction>
 
439
        </xs:simpleType>
 
440
        <xs:simpleType name="VersionType">
 
441
                <xs:annotation>
 
442
                        <xs:documentation>
 
443
                        An enumerated type specifying the acceptable document versions.
 
444
                        </xs:documentation>
 
445
                </xs:annotation>
 
446
                <xs:restriction base="xs:string">
 
447
                        <xs:enumeration value="1.4.0"/>
 
448
                        <xs:enumeration value="1.4.1"/>
 
449
                </xs:restriction>
 
450
        </xs:simpleType>
 
451
        <!-- Complex Types -->
 
452
        <xs:complexType name="InputGlobal">
 
453
                <xs:annotation>
 
454
                        <xs:documentation>
 
455
                        The InputGlobal type is used to represent inputs that can reference external resources.
 
456
                        </xs:documentation>
 
457
                </xs:annotation>
 
458
                <xs:attribute name="semantic" type="xs:NMTOKEN" use="required">
 
459
                        <xs:annotation>
 
460
                                <xs:documentation>
 
461
                                The semantic attribute is the user-defined meaning of the input connection. Required attribute.
 
462
                                </xs:documentation>
 
463
                        </xs:annotation>
 
464
                </xs:attribute>
 
465
                <xs:attribute name="source" type="xs:anyURI" use="required">
 
466
                        <xs:annotation>
 
467
                                <xs:documentation>
 
468
                                The source attribute indicates the location of the data source. Required attribute.
 
469
                                </xs:documentation>
 
470
                        </xs:annotation>
 
471
                </xs:attribute>
 
472
        </xs:complexType>
 
473
        <xs:complexType name="InputLocal">
 
474
                <xs:annotation>
 
475
                        <xs:documentation>
 
476
                        The InputLocal type is used to represent inputs that can only reference resources declared in the same document.
 
477
                        </xs:documentation>
 
478
                </xs:annotation>
 
479
                <xs:attribute name="semantic" type="xs:NMTOKEN" use="required">
 
480
                        <xs:annotation>
 
481
                                <xs:documentation>
 
482
                                The semantic attribute is the user-defined meaning of the input connection. Required attribute.
 
483
                                </xs:documentation>
 
484
                        </xs:annotation>
 
485
                </xs:attribute>
 
486
                <xs:attribute name="source" type="URIFragmentType" use="required">
 
487
                        <xs:annotation>
 
488
                                <xs:documentation>
 
489
                                The source attribute indicates the location of the data source. Required attribute.
 
490
                                </xs:documentation>
 
491
                        </xs:annotation>
 
492
                </xs:attribute>
 
493
        </xs:complexType>
 
494
        <xs:complexType name="InputLocalOffset">
 
495
                <xs:annotation>
 
496
                        <xs:documentation>
 
497
                        The InputLocalOffset type is used to represent indexed inputs that can only reference resources declared in the same document.
 
498
                        </xs:documentation>
 
499
                </xs:annotation>
 
500
                <xs:attribute name="offset" type="uint" use="required">
 
501
                        <xs:annotation>
 
502
                                <xs:documentation>
 
503
                                The offset attribute represents the offset into the list of indices.  If two input elements share 
 
504
                                the same offset, they will be indexed the same.  This works as a simple form of compression for the 
 
505
                                list of indices as well as defining the order the inputs should be used in.  Required attribute.
 
506
                                </xs:documentation>
 
507
                        </xs:annotation>
 
508
                </xs:attribute>
 
509
                <xs:attribute name="semantic" type="xs:NMTOKEN" use="required">
 
510
                        <xs:annotation>
 
511
                                <xs:documentation>
 
512
                                The semantic attribute is the user-defined meaning of the input connection. Required attribute.
 
513
                                </xs:documentation>
 
514
                        </xs:annotation>
 
515
                </xs:attribute>
 
516
                <xs:attribute name="source" type="URIFragmentType" use="required">
 
517
                        <xs:annotation>
 
518
                                <xs:documentation>
 
519
                                The source attribute indicates the location of the data source. Required attribute.
 
520
                                </xs:documentation>
 
521
                        </xs:annotation>
 
522
                </xs:attribute>
 
523
                <xs:attribute name="set" type="uint">
 
524
                        <xs:annotation>
 
525
                                <xs:documentation>
 
526
                                The set attribute indicates which inputs should be grouped together as a single set. This is helpful 
 
527
                                when multiple inputs share the same semantics. 
 
528
                                </xs:documentation>
 
529
                        </xs:annotation>
 
530
                </xs:attribute>
 
531
        </xs:complexType>
 
532
        <xs:complexType name="InstanceWithExtra">
 
533
                <xs:annotation>
 
534
                        <xs:documentation>
 
535
                        The InstanceWithExtra type is used for all generic instance elements. A generic instance element 
 
536
                        is one which does not have any specific child elements declared.
 
537
                        </xs:documentation>
 
538
                </xs:annotation>
 
539
                <xs:sequence>
 
540
                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
541
                                <xs:annotation>
 
542
                                        <xs:documentation>
 
543
                                        The extra element may occur any number of times.
 
544
                                        </xs:documentation>
 
545
                                </xs:annotation>
 
546
                        </xs:element>
 
547
                </xs:sequence>
 
548
                <xs:attribute name="url" type="xs:anyURI" use="required">
 
549
                        <xs:annotation>
 
550
                                <xs:documentation>
 
551
                                The url attribute refers to resource to instantiate. This may refer to a local resource using a 
 
552
                                relative URL fragment identifier that begins with the ā€œ#ā€ character. The url attribute may refer 
 
553
                                to an external resource using an absolute or relative URL.
 
554
                                </xs:documentation>
 
555
                        </xs:annotation>
 
556
                </xs:attribute>
 
557
                <xs:attribute name="sid" type="xs:NCName">
 
558
                        <xs:annotation>
 
559
                                <xs:documentation>
 
560
                                The sid attribute is a text string value containing the sub-identifier of this element. This 
 
561
                                value must be unique within the scope of the parent element. Optional attribute.
 
562
                                </xs:documentation>
 
563
                        </xs:annotation>
 
564
                </xs:attribute>
 
565
                <xs:attribute name="name" type="xs:NCName">
 
566
                        <xs:annotation>
 
567
                                <xs:documentation>
 
568
                                The name attribute is the text string name of this element. Optional attribute.
 
569
                                </xs:documentation>
 
570
                        </xs:annotation>
 
571
                </xs:attribute>
 
572
        </xs:complexType>
 
573
        <xs:complexType name="TargetableFloat">
 
574
                <xs:annotation>
 
575
                        <xs:documentation>
 
576
                        The TargetableFloat type is used to represent elements which contain a single float value which can 
 
577
                        be targeted for animation.
 
578
                        </xs:documentation>
 
579
                </xs:annotation>
 
580
                <xs:simpleContent>
 
581
                        <xs:extension base="float">
 
582
                                <xs:attribute name="sid" type="xs:NCName">
 
583
                                        <xs:annotation>
 
584
                                                <xs:documentation>
 
585
                                                The sid attribute is a text string value containing the sub-identifier of this element. This 
 
586
                                                value must be unique within the scope of the parent element. Optional attribute.
 
587
                                                </xs:documentation>
 
588
                                        </xs:annotation>
 
589
                                </xs:attribute>
 
590
                        </xs:extension>
 
591
                </xs:simpleContent>
 
592
        </xs:complexType>
 
593
        <xs:complexType name="TargetableFloat3">
 
594
                <xs:annotation>
 
595
                        <xs:documentation>
 
596
                        The TargetableFloat3 type is used to represent elements which contain a float3 value which can 
 
597
                        be targeted for animation.
 
598
                        </xs:documentation>
 
599
                </xs:annotation>
 
600
                <xs:simpleContent>
 
601
                        <xs:extension base="float3">
 
602
                                <xs:attribute name="sid" type="xs:NCName">
 
603
                                        <xs:annotation>
 
604
                                                <xs:documentation>
 
605
                                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
606
                                                This value must be unique within the scope of the parent element. Optional attribute.
 
607
                                                </xs:documentation>
 
608
                                        </xs:annotation>
 
609
                                </xs:attribute>
 
610
                        </xs:extension>
 
611
                </xs:simpleContent>
 
612
        </xs:complexType>
 
613
        <!--Typed Array Elements-->
 
614
        <xs:element name="IDREF_array">
 
615
                <xs:annotation>
 
616
                        <xs:documentation>
 
617
                        The IDREF_array element declares the storage for a homogenous array of ID reference values.
 
618
                        </xs:documentation>
 
619
                </xs:annotation>
 
620
                <xs:complexType>
 
621
                        <xs:simpleContent>
 
622
                                <xs:extension base="xs:IDREFS">
 
623
                                        <xs:attribute name="id" type="xs:ID">
 
624
                                                <xs:annotation>
 
625
                                                        <xs:documentation>
 
626
                                                        The id attribute is a text string containing the unique identifier of this element. This value 
 
627
                                                        must be unique within the instance document. Optional attribute.
 
628
                                                        </xs:documentation>
 
629
                                                </xs:annotation>
 
630
                                        </xs:attribute>
 
631
                                        <xs:attribute name="name" type="xs:NCName">
 
632
                                                <xs:annotation>
 
633
                                                        <xs:documentation>
 
634
                                                        The name attribute is the text string name of this element. Optional attribute.
 
635
                                                        </xs:documentation>
 
636
                                                </xs:annotation>
 
637
                                        </xs:attribute>
 
638
                                        <xs:attribute name="count" type="uint" use="required">
 
639
                                                <xs:annotation>
 
640
                                                        <xs:documentation>
 
641
                                                        The count attribute indicates the number of values in the array. Required attribute.
 
642
                                                        </xs:documentation>
 
643
                                                </xs:annotation>
 
644
                                        </xs:attribute>
 
645
                                </xs:extension>
 
646
                        </xs:simpleContent>
 
647
                </xs:complexType>
 
648
        </xs:element>
 
649
        <xs:element name="Name_array">
 
650
                <xs:annotation>
 
651
                        <xs:documentation>
 
652
                        The Name_array element declares the storage for a homogenous array of Name string values.
 
653
                        </xs:documentation>
 
654
                </xs:annotation>
 
655
                <xs:complexType>
 
656
                        <xs:simpleContent>
 
657
                                <xs:extension base="ListOfNames">
 
658
                                        <xs:attribute name="id" type="xs:ID">
 
659
                                                <xs:annotation>
 
660
                                                        <xs:documentation>
 
661
                                                        The id attribute is a text string containing the unique identifier of this element. 
 
662
                                                        This value must be unique within the instance document. Optional attribute.
 
663
                                                        </xs:documentation>
 
664
                                                </xs:annotation>
 
665
                                        </xs:attribute>
 
666
                                        <xs:attribute name="name" type="xs:NCName">
 
667
                                                <xs:annotation>
 
668
                                                        <xs:documentation>
 
669
                                                        The name attribute is the text string name of this element. Optional attribute.
 
670
                                                        </xs:documentation>
 
671
                                                </xs:annotation>
 
672
                                        </xs:attribute>
 
673
                                        <xs:attribute name="count" type="uint" use="required">
 
674
                                                <xs:annotation>
 
675
                                                        <xs:documentation>
 
676
                                                        The count attribute indicates the number of values in the array. Required attribute.
 
677
                                                        </xs:documentation>
 
678
                                                </xs:annotation>
 
679
                                        </xs:attribute>
 
680
                                </xs:extension>
 
681
                        </xs:simpleContent>
 
682
                </xs:complexType>
 
683
        </xs:element>
 
684
        <xs:element name="bool_array">
 
685
                <xs:annotation>
 
686
                        <xs:documentation>
 
687
                        The bool_array element declares the storage for a homogenous array of boolean values.
 
688
                        </xs:documentation>
 
689
                </xs:annotation>
 
690
                <xs:complexType>
 
691
                        <xs:simpleContent>
 
692
                                <xs:extension base="ListOfBools">
 
693
                                        <xs:attribute name="id" type="xs:ID">
 
694
                                                <xs:annotation>
 
695
                                                        <xs:documentation>
 
696
                                                        The id attribute is a text string containing the unique identifier of this element. 
 
697
                                                        This value must be unique within the instance document. Optional attribute.
 
698
                                                        </xs:documentation>
 
699
                                                </xs:annotation>
 
700
                                        </xs:attribute>
 
701
                                        <xs:attribute name="name" type="xs:NCName">
 
702
                                                <xs:annotation>
 
703
                                                        <xs:documentation>
 
704
                                                        The name attribute is the text string name of this element. Optional attribute.
 
705
                                                        </xs:documentation>
 
706
                                                </xs:annotation>
 
707
                                        </xs:attribute>
 
708
                                        <xs:attribute name="count" type="uint" use="required">
 
709
                                                <xs:annotation>
 
710
                                                        <xs:documentation>
 
711
                                                        The count attribute indicates the number of values in the array. Required attribute.
 
712
                                                        </xs:documentation>
 
713
                                                </xs:annotation>
 
714
                                        </xs:attribute>
 
715
                                </xs:extension>
 
716
                        </xs:simpleContent>
 
717
                </xs:complexType>
 
718
        </xs:element>
 
719
        <xs:element name="float_array">
 
720
                <xs:annotation>
 
721
                        <xs:documentation>
 
722
                        The float_array element declares the storage for a homogenous array of floating point values.
 
723
                        </xs:documentation>
 
724
                </xs:annotation>
 
725
                <xs:complexType>
 
726
                        <xs:simpleContent>
 
727
                                <xs:extension base="ListOfFloats">
 
728
                                        <xs:attribute name="id" type="xs:ID">
 
729
                                                <xs:annotation>
 
730
                                                        <xs:documentation>
 
731
                                                        The id attribute is a text string containing the unique identifier of this element. This value 
 
732
                                                        must be unique within the instance document. Optional attribute.
 
733
                                                        </xs:documentation>
 
734
                                                </xs:annotation>
 
735
                                        </xs:attribute>
 
736
                                        <xs:attribute name="name" type="xs:NCName">
 
737
                                                <xs:annotation>
 
738
                                                        <xs:documentation>
 
739
                                                        The name attribute is the text string name of this element. Optional attribute.
 
740
                                                        </xs:documentation>
 
741
                                                </xs:annotation>
 
742
                                        </xs:attribute>
 
743
                                        <xs:attribute name="count" type="uint" use="required">
 
744
                                                <xs:annotation>
 
745
                                                        <xs:documentation>
 
746
                                                        The count attribute indicates the number of values in the array. Required attribute.
 
747
                                                        </xs:documentation>
 
748
                                                </xs:annotation>
 
749
                                        </xs:attribute>
 
750
                                        <xs:attribute name="digits" type="xs:short" default="6">
 
751
                                                <xs:annotation>
 
752
                                                        <xs:documentation>
 
753
                                                        The digits attribute indicates the number of significant decimal digits of the float values that 
 
754
                                                        can be contained in the array. The default value is 6. Optional attribute.
 
755
                                                        </xs:documentation>
 
756
                                                </xs:annotation>
 
757
                                        </xs:attribute>
 
758
                                        <xs:attribute name="magnitude" type="xs:short" default="38">
 
759
                                                <xs:annotation>
 
760
                                                        <xs:documentation>
 
761
                                                        The magnitude attribute indicates the largest exponent of the float values that can be contained 
 
762
                                                        in the array. The default value is 38. Optional attribute.
 
763
                                                        </xs:documentation>
 
764
                                                </xs:annotation>
 
765
                                        </xs:attribute>
 
766
                                </xs:extension>
 
767
                        </xs:simpleContent>
 
768
                </xs:complexType>
 
769
        </xs:element>
 
770
        <xs:element name="int_array">
 
771
                <xs:annotation>
 
772
                        <xs:documentation>
 
773
                        The int_array element declares the storage for a homogenous array of integer values.
 
774
                        </xs:documentation>
 
775
                </xs:annotation>
 
776
                <xs:complexType>
 
777
                        <xs:simpleContent>
 
778
                                <xs:extension base="ListOfInts">
 
779
                                        <xs:attribute name="id" type="xs:ID">
 
780
                                                <xs:annotation>
 
781
                                                        <xs:documentation>
 
782
                                                        The id attribute is a text string containing the unique identifier of this element. 
 
783
                                                        This value must be unique within the instance document. Optional attribute.
 
784
                                                        </xs:documentation>
 
785
                                                </xs:annotation>
 
786
                                        </xs:attribute>
 
787
                                        <xs:attribute name="name" type="xs:NCName">
 
788
                                                <xs:annotation>
 
789
                                                        <xs:documentation>
 
790
                                                        The name attribute is the text string name of this element. Optional attribute.
 
791
                                                        </xs:documentation>
 
792
                                                </xs:annotation>
 
793
                                        </xs:attribute>
 
794
                                        <xs:attribute name="count" type="uint" use="required">
 
795
                                                <xs:annotation>
 
796
                                                        <xs:documentation>
 
797
                                                        The count attribute indicates the number of values in the array. Required attribute.
 
798
                                                        </xs:documentation>
 
799
                                                </xs:annotation>
 
800
                                        </xs:attribute>
 
801
                                        <xs:attribute name="minInclusive" type="xs:integer" default="-2147483648">
 
802
                                                <xs:annotation>
 
803
                                                        <xs:documentation>
 
804
                                                        The minInclusive attribute indicates the smallest integer value that can be contained in 
 
805
                                                        the array. The default value is ā€“2147483648. Optional attribute.
 
806
                                                        </xs:documentation>
 
807
                                                </xs:annotation>
 
808
                                        </xs:attribute>
 
809
                                        <xs:attribute name="maxInclusive" type="xs:integer" default="2147483647">
 
810
                                                <xs:annotation>
 
811
                                                        <xs:documentation>
 
812
                                                        The maxInclusive attribute indicates the largest integer value that can be contained in 
 
813
                                                        the array. The default value is 2147483647. Optional attribute.
 
814
                                                        </xs:documentation>
 
815
                                                </xs:annotation>
 
816
                                        </xs:attribute>
 
817
                                </xs:extension>
 
818
                        </xs:simpleContent>
 
819
                </xs:complexType>
 
820
        </xs:element>
 
821
        <!-- Dataflow Elements -->
 
822
        <xs:element name="accessor">
 
823
                <xs:annotation>
 
824
                        <xs:documentation>
 
825
                        The accessor element declares an access pattern to one of the array elements: float_array, 
 
826
                        int_array, Name_array, bool_array, and IDREF_array. The accessor element describes access 
 
827
                        to arrays that are organized in either an interleaved or non-interleaved manner, depending 
 
828
                        on the offset and stride attributes.
 
829
                        </xs:documentation>
 
830
                </xs:annotation>
 
831
                <xs:complexType>
 
832
                        <xs:sequence>
 
833
                                <xs:element ref="param" minOccurs="0" maxOccurs="unbounded">
 
834
                                        <xs:annotation>
 
835
                                                <xs:documentation>
 
836
                                                The accessor element may have any number of param elements.
 
837
                                                </xs:documentation>
 
838
                                        </xs:annotation>
 
839
                                </xs:element>
 
840
                        </xs:sequence>
 
841
                        <xs:attribute name="count" type="uint" use="required">
 
842
                                <xs:annotation>
 
843
                                        <xs:documentation>
 
844
                                        The count attribute indicates the number of times the array is accessed. Required attribute.
 
845
                                        </xs:documentation>
 
846
                                </xs:annotation>
 
847
                        </xs:attribute>
 
848
                        <xs:attribute name="offset" type="uint" default="0">
 
849
                                <xs:annotation>
 
850
                                        <xs:documentation>
 
851
                                        The offset attribute indicates the index of the first value to be read from the array. 
 
852
                                        The default value is 0. Optional attribute.
 
853
                                        </xs:documentation>
 
854
                                </xs:annotation>
 
855
                        </xs:attribute>
 
856
                        <xs:attribute name="source" type="xs:anyURI">
 
857
                                <xs:annotation>
 
858
                                        <xs:documentation>
 
859
                                        The source attribute indicates the location of the array to access using a URL expression. Required attribute.
 
860
                                        </xs:documentation>
 
861
                                </xs:annotation>
 
862
                        </xs:attribute>
 
863
                        <xs:attribute name="stride" type="uint" default="1">
 
864
                                <xs:annotation>
 
865
                                        <xs:documentation>
 
866
                                        The stride attribute indicates number of values to be considered a unit during each access to 
 
867
                                        the array. The default value is 1, indicating that a single value is accessed. Optional attribute.
 
868
                                        </xs:documentation>
 
869
                                </xs:annotation>
 
870
                        </xs:attribute>
 
871
                </xs:complexType>
 
872
        </xs:element>
 
873
        <xs:element name="param">
 
874
                <xs:annotation>
 
875
                        <xs:documentation>
 
876
                        The param element declares parametric information regarding its parent element.
 
877
                        </xs:documentation>
 
878
                </xs:annotation>
 
879
                <xs:complexType>
 
880
                        <xs:simpleContent>
 
881
                                <xs:extension base="xs:string">
 
882
                                        <xs:attribute name="name" type="xs:NCName">
 
883
                                                <xs:annotation>
 
884
                                                        <xs:documentation>
 
885
                                                        The name attribute is the text string name of this element. Optional attribute.
 
886
                                                        </xs:documentation>
 
887
                                                </xs:annotation>
 
888
                                        </xs:attribute>
 
889
                                        <xs:attribute name="sid" type="xs:NCName">
 
890
                                                <xs:annotation>
 
891
                                                        <xs:documentation>
 
892
                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
893
                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
894
                                                        </xs:documentation>
 
895
                                                </xs:annotation>
 
896
                                        </xs:attribute>
 
897
                                        <xs:attribute name="semantic" type="xs:NMTOKEN">
 
898
                                                <xs:annotation>
 
899
                                                        <xs:documentation>
 
900
                                                        The semantic attribute is the user-defined meaning of the parameter. Optional attribute.
 
901
                                                        </xs:documentation>
 
902
                                                </xs:annotation>
 
903
                                        </xs:attribute>
 
904
                                        <xs:attribute name="type" type="xs:NMTOKEN" use="required">
 
905
                                                <xs:annotation>
 
906
                                                        <xs:documentation>
 
907
                                                        The type attribute indicates the type of the value data. This text string must be understood 
 
908
                                                        by the application. Required attribute.
 
909
                                                        </xs:documentation>
 
910
                                                </xs:annotation>
 
911
                                        </xs:attribute>
 
912
                                </xs:extension>
 
913
                        </xs:simpleContent>
 
914
                </xs:complexType>
 
915
        </xs:element>
 
916
        <xs:element name="source">
 
917
                <xs:annotation>
 
918
                        <xs:documentation>
 
919
                        The source element declares a data repository that provides values according to the semantics of an 
 
920
                        input element that refers to it.
 
921
                        </xs:documentation>
 
922
                </xs:annotation>
 
923
                <xs:complexType>
 
924
                        <xs:sequence>
 
925
                                <xs:element ref="asset" minOccurs="0">
 
926
                                        <xs:annotation>
 
927
                                                <xs:documentation>
 
928
                                                The source element may contain an asset element.
 
929
                                                </xs:documentation>
 
930
                                        </xs:annotation>
 
931
                                </xs:element>
 
932
                                <xs:choice minOccurs="0">
 
933
                                        <xs:element ref="IDREF_array">
 
934
                                                <xs:annotation>
 
935
                                                        <xs:documentation>
 
936
                                                        The source element may contain an IDREF_array.
 
937
                                                        </xs:documentation>
 
938
                                                </xs:annotation>
 
939
                                        </xs:element>
 
940
                                        <xs:element ref="Name_array">
 
941
                                                <xs:annotation>
 
942
                                                        <xs:documentation>
 
943
                                                        The source element may contain a Name_array.
 
944
                                                        </xs:documentation>
 
945
                                                </xs:annotation>
 
946
                                        </xs:element>
 
947
                                        <xs:element ref="bool_array">
 
948
                                                <xs:annotation>
 
949
                                                        <xs:documentation>
 
950
                                                        The source element may contain a bool_array.
 
951
                                                        </xs:documentation>
 
952
                                                </xs:annotation>
 
953
                                        </xs:element>
 
954
                                        <xs:element ref="float_array">
 
955
                                                <xs:annotation>
 
956
                                                        <xs:documentation>
 
957
                                                        The source element may contain a float_array.
 
958
                                                        </xs:documentation>
 
959
                                                </xs:annotation>
 
960
                                        </xs:element>
 
961
                                        <xs:element ref="int_array">
 
962
                                                <xs:annotation>
 
963
                                                        <xs:documentation>
 
964
                                                        The source element may contain an int_array.
 
965
                                                        </xs:documentation>
 
966
                                                </xs:annotation>
 
967
                                        </xs:element>
 
968
                                </xs:choice>
 
969
                                <xs:element name="technique_common" minOccurs="0">
 
970
                                        <xs:annotation>
 
971
                                                <xs:documentation>
 
972
                                                The technique common specifies the common method for accessing this source element's data.
 
973
                                                </xs:documentation>
 
974
                                        </xs:annotation>
 
975
                                        <xs:complexType>
 
976
                                                <xs:sequence>
 
977
                                                        <xs:element ref="accessor">
 
978
                                                                <xs:annotation>
 
979
                                                                        <xs:documentation>
 
980
                                                                        The source's technique_common must have one and only one accessor.
 
981
                                                                        </xs:documentation>
 
982
                                                                </xs:annotation>
 
983
                                                        </xs:element>
 
984
                                                </xs:sequence>
 
985
                                        </xs:complexType>
 
986
                                </xs:element>
 
987
                                <xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
 
988
                                        <xs:annotation>
 
989
                                                <xs:documentation>
 
990
                                                This element may contain any number of non-common profile techniques.
 
991
                                                </xs:documentation>
 
992
                                        </xs:annotation>
 
993
                                </xs:element>
 
994
                        </xs:sequence>
 
995
                        <xs:attribute name="id" type="xs:ID" use="required">
 
996
                                <xs:annotation>
 
997
                                        <xs:documentation>
 
998
                                        The id attribute is a text string containing the unique identifier of this element. 
 
999
                                        This value must be unique within the instance document. Required attribute.
 
1000
                                        </xs:documentation>
 
1001
                                </xs:annotation>
 
1002
                        </xs:attribute>
 
1003
                        <xs:attribute name="name" type="xs:NCName">
 
1004
                                <xs:annotation>
 
1005
                                        <xs:documentation>
 
1006
                                        The name attribute is the text string name of this element. Optional attribute.
 
1007
                                        </xs:documentation>
 
1008
                                </xs:annotation>
 
1009
                        </xs:attribute>
 
1010
                </xs:complexType>
 
1011
        </xs:element>
 
1012
        <!-- Geometry Elements -->
 
1013
        <xs:element name="geometry">
 
1014
                <xs:annotation>
 
1015
                        <xs:documentation>
 
1016
                        Geometry describes the visual shape and appearance of an object in the scene.
 
1017
                        The geometry element categorizes the declaration of geometric information. Geometry is a 
 
1018
                        branch of mathematics that deals with the measurement, properties, and relationships of 
 
1019
                        points, lines, angles, surfaces, and solids.
 
1020
                        </xs:documentation>
 
1021
                </xs:annotation>
 
1022
                <xs:complexType>
 
1023
                        <xs:sequence>
 
1024
                                <xs:element ref="asset" minOccurs="0">
 
1025
                                        <xs:annotation>
 
1026
                                                <xs:documentation>
 
1027
                                                The geometry element may contain an asset element.
 
1028
                                                </xs:documentation>
 
1029
                                        </xs:annotation>
 
1030
                                </xs:element>
 
1031
                                <xs:choice>
 
1032
                                        <xs:element ref="convex_mesh">
 
1033
                                                <xs:annotation>
 
1034
                                                        <xs:documentation>
 
1035
                                                        The geometry element may contain only one mesh or convex_mesh.
 
1036
                                                        </xs:documentation>
 
1037
                                                </xs:annotation>
 
1038
                                        </xs:element>
 
1039
                                        <xs:element ref="mesh">
 
1040
                                                <xs:annotation>
 
1041
                                                        <xs:documentation>
 
1042
                                                        The geometry element may contain only one mesh or convex_mesh.
 
1043
                                                        </xs:documentation>
 
1044
                                                </xs:annotation>
 
1045
                                        </xs:element>
 
1046
                                        <xs:element ref="spline"/>
 
1047
                                </xs:choice>
 
1048
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1049
                                        <xs:annotation>
 
1050
                                                <xs:documentation>
 
1051
                                                The extra element may appear any number of times.
 
1052
                                                </xs:documentation>
 
1053
                                        </xs:annotation>
 
1054
                                </xs:element>
 
1055
                        </xs:sequence>
 
1056
                        <xs:attribute name="id" type="xs:ID">
 
1057
                                <xs:annotation>
 
1058
                                        <xs:documentation>
 
1059
                                        The id attribute is a text string containing the unique identifier of this element. 
 
1060
                                        This value must be unique within the instance document. Optional attribute.
 
1061
                                        </xs:documentation>
 
1062
                                </xs:annotation>
 
1063
                        </xs:attribute>
 
1064
                        <xs:attribute name="name" type="xs:NCName">
 
1065
                                <xs:annotation>
 
1066
                                        <xs:documentation>
 
1067
                                        The name attribute is the text string name of this element. Optional attribute.
 
1068
                                        </xs:documentation>
 
1069
                                </xs:annotation>
 
1070
                        </xs:attribute>
 
1071
                </xs:complexType>
 
1072
        </xs:element>
 
1073
        <xs:element name="mesh">
 
1074
                <xs:annotation>
 
1075
                        <xs:documentation>
 
1076
                        The mesh element contains vertex and primitive information sufficient to describe basic geometric meshes.
 
1077
                        </xs:documentation>
 
1078
                </xs:annotation>
 
1079
                <xs:complexType>
 
1080
                        <xs:sequence>
 
1081
                                <xs:element ref="source" maxOccurs="unbounded">
 
1082
                                        <xs:annotation>
 
1083
                                                <xs:documentation>
 
1084
                                                The mesh element must contain one or more source elements.
 
1085
                                                </xs:documentation>
 
1086
                                        </xs:annotation>
 
1087
                                </xs:element>
 
1088
                                <xs:element ref="vertices">
 
1089
                                        <xs:annotation>
 
1090
                                                <xs:documentation>
 
1091
                                                The mesh element must contain one vertices element.
 
1092
                                                </xs:documentation>
 
1093
                                        </xs:annotation>
 
1094
                                </xs:element>
 
1095
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
1096
                                        <xs:element ref="lines">
 
1097
                                                <xs:annotation>
 
1098
                                                        <xs:documentation>
 
1099
                                                        The mesh element may contain any number of lines elements.
 
1100
                                                        </xs:documentation>
 
1101
                                                </xs:annotation>
 
1102
                                        </xs:element>
 
1103
                                        <xs:element ref="linestrips">
 
1104
                                                <xs:annotation>
 
1105
                                                        <xs:documentation>
 
1106
                                                        The mesh element may contain any number of linestrips elements.
 
1107
                                                        </xs:documentation>
 
1108
                                                </xs:annotation>
 
1109
                                        </xs:element>
 
1110
                                        <xs:element ref="polygons">
 
1111
                                                <xs:annotation>
 
1112
                                                        <xs:documentation>
 
1113
                                                        The mesh element may contain any number of polygons elements.
 
1114
                                                        </xs:documentation>
 
1115
                                                </xs:annotation>
 
1116
                                        </xs:element>
 
1117
                                        <xs:element ref="polylist">
 
1118
                                                <xs:annotation>
 
1119
                                                        <xs:documentation>
 
1120
                                                        The mesh element may contain any number of polylist elements.
 
1121
                                                        </xs:documentation>
 
1122
                                                </xs:annotation>
 
1123
                                        </xs:element>
 
1124
                                        <xs:element ref="triangles">
 
1125
                                                <xs:annotation>
 
1126
                                                        <xs:documentation>
 
1127
                                                        The mesh element may contain any number of triangles elements.
 
1128
                                                        </xs:documentation>
 
1129
                                                </xs:annotation>
 
1130
                                        </xs:element>
 
1131
                                        <xs:element ref="trifans">
 
1132
                                                <xs:annotation>
 
1133
                                                        <xs:documentation>
 
1134
                                                        The mesh element may contain any number of trifans elements.
 
1135
                                                        </xs:documentation>
 
1136
                                                </xs:annotation>
 
1137
                                        </xs:element>
 
1138
                                        <xs:element ref="tristrips">
 
1139
                                                <xs:annotation>
 
1140
                                                        <xs:documentation>
 
1141
                                                        The mesh element may contain any number of tristrips elements.
 
1142
                                                        </xs:documentation>
 
1143
                                                </xs:annotation>
 
1144
                                        </xs:element>
 
1145
                                </xs:choice>
 
1146
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1147
                                        <xs:annotation>
 
1148
                                                <xs:documentation>
 
1149
                                                The extra element may appear any number of times.
 
1150
                                                </xs:documentation>
 
1151
                                        </xs:annotation>
 
1152
                                </xs:element>
 
1153
                        </xs:sequence>
 
1154
                </xs:complexType>
 
1155
        </xs:element>
 
1156
        <xs:element name="spline">
 
1157
                <xs:annotation>
 
1158
                        <xs:documentation>
 
1159
                        The spline element contains control vertex information sufficient to describe basic splines.
 
1160
                        </xs:documentation>
 
1161
                </xs:annotation>
 
1162
                <xs:complexType>
 
1163
                        <xs:sequence>
 
1164
                                <xs:element ref="source" maxOccurs="unbounded">
 
1165
                                        <xs:annotation>
 
1166
                                                <xs:documentation>
 
1167
                                                The mesh element must contain one or more source elements.
 
1168
                                                </xs:documentation>
 
1169
                                        </xs:annotation>
 
1170
                                </xs:element>
 
1171
                                <xs:element name="control_vertices">
 
1172
                                        <xs:annotation>
 
1173
                                                <xs:documentation>The control vertices element  must occur  exactly one time. It is used to describe the CVs of the spline.</xs:documentation>
 
1174
                                        </xs:annotation>
 
1175
                                        <xs:complexType>
 
1176
                                                <xs:sequence>
 
1177
                                                        <xs:element name="input" type="InputLocal" maxOccurs="unbounded">
 
1178
                                                                <xs:annotation>
 
1179
                                                                        <xs:documentation>
 
1180
                                                The input element must occur at least one time. These inputs are local inputs.
 
1181
                                                </xs:documentation>
 
1182
                                                                </xs:annotation>
 
1183
                                                        </xs:element>
 
1184
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1185
                                                                <xs:annotation>
 
1186
                                                                        <xs:documentation>
 
1187
                                                The extra element may appear any number of times.
 
1188
                                                </xs:documentation>
 
1189
                                                                </xs:annotation>
 
1190
                                                        </xs:element>
 
1191
                                                </xs:sequence>
 
1192
                                        </xs:complexType>
 
1193
                                </xs:element>
 
1194
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1195
                                        <xs:annotation>
 
1196
                                                <xs:documentation>
 
1197
                                                The extra element may appear any number of times.
 
1198
                                                </xs:documentation>
 
1199
                                        </xs:annotation>
 
1200
                                </xs:element>
 
1201
                        </xs:sequence>
 
1202
                        <xs:attribute name="closed" type="bool" default="false"/>
 
1203
                </xs:complexType>
 
1204
        </xs:element>
 
1205
        <!-- Collation Elements -->
 
1206
        <xs:element name="p" type="ListOfUInts">
 
1207
                <xs:annotation>
 
1208
                        <xs:documentation>
 
1209
                        The p element represents primitive data for the primitive types (lines, linestrips, polygons, 
 
1210
                        polylist, triangles, trifans, tristrips). The p element contains indices that reference into 
 
1211
                        the parent's source elements referenced by the input elements.
 
1212
                        </xs:documentation>
 
1213
                </xs:annotation>
 
1214
        </xs:element>
 
1215
        <xs:element name="lines">
 
1216
                <xs:annotation>
 
1217
                        <xs:documentation>
 
1218
                        The lines element provides the information needed to bind vertex attributes together and then 
 
1219
                        organize those vertices into individual lines. Each line described by the mesh has two vertices. 
 
1220
                        The first line is formed from first and second vertices. The second line is formed from the 
 
1221
                        third and fourth vertices and so on.
 
1222
                        </xs:documentation>
 
1223
                </xs:annotation>
 
1224
                <xs:complexType>
 
1225
                        <xs:sequence>
 
1226
                                <xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
 
1227
                                        <xs:annotation>
 
1228
                                                <xs:documentation>
 
1229
                                                The input element may occur any number of times. This input is a local input with the offset 
 
1230
                                                and set attributes.
 
1231
                                                </xs:documentation>
 
1232
                                        </xs:annotation>
 
1233
                                </xs:element>
 
1234
                                <xs:element ref="p" minOccurs="0">
 
1235
                                        <xs:annotation>
 
1236
                                                <xs:documentation>
 
1237
                                                The p element may occur once.
 
1238
                                                </xs:documentation>
 
1239
                                        </xs:annotation>
 
1240
                                </xs:element>
 
1241
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1242
                                        <xs:annotation>
 
1243
                                                <xs:documentation>
 
1244
                                                The extra element may appear any number of times.
 
1245
                                                </xs:documentation>
 
1246
                                        </xs:annotation>
 
1247
                                </xs:element>
 
1248
                        </xs:sequence>
 
1249
                        <xs:attribute name="name" type="xs:NCName">
 
1250
                                <xs:annotation>
 
1251
                                        <xs:documentation>
 
1252
                                        The name attribute is the text string name of this element. Optional attribute.
 
1253
                                        </xs:documentation>
 
1254
                                </xs:annotation>
 
1255
                        </xs:attribute>
 
1256
                        <xs:attribute name="count" type="uint" use="required">
 
1257
                                <xs:annotation>
 
1258
                                        <xs:documentation>
 
1259
                                        The count attribute indicates the number of line primitives. Required attribute.
 
1260
                                        </xs:documentation>
 
1261
                                </xs:annotation>
 
1262
                        </xs:attribute>
 
1263
                        <xs:attribute name="material" type="xs:NCName">
 
1264
                                <xs:annotation>
 
1265
                                        <xs:documentation>
 
1266
                                        The material attribute declares a symbol for a material. This symbol is bound to a material at 
 
1267
                                        the time of instantiation. If the material attribute is not specified then the lighting and 
 
1268
                                        shading results are application defined. Optional attribute.
 
1269
                                        </xs:documentation>
 
1270
                                </xs:annotation>
 
1271
                        </xs:attribute>
 
1272
                </xs:complexType>
 
1273
        </xs:element>
 
1274
        <xs:element name="linestrips">
 
1275
                <xs:annotation>
 
1276
                        <xs:documentation>
 
1277
                        The linestrips element provides the information needed to bind vertex attributes together and 
 
1278
                        then organize those vertices into connected line-strips. Each line-strip described by the mesh 
 
1279
                        has an arbitrary number of vertices. Each line segment within the line-strip is formed from the 
 
1280
                        current vertex and the preceding vertex.
 
1281
                        </xs:documentation>
 
1282
                </xs:annotation>
 
1283
                <xs:complexType>
 
1284
                        <xs:sequence>
 
1285
                                <xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
 
1286
                                        <xs:annotation>
 
1287
                                                <xs:documentation>
 
1288
                                                The input element may occur any number of times. This input is a local input with the offset 
 
1289
                                                and set attributes.
 
1290
                                                </xs:documentation>
 
1291
                                        </xs:annotation>
 
1292
                                </xs:element>
 
1293
                                <xs:element ref="p" minOccurs="0" maxOccurs="unbounded">
 
1294
                                        <xs:annotation>
 
1295
                                                <xs:documentation>
 
1296
                                                The linestrips element may have any number of p elements.
 
1297
                                                </xs:documentation>
 
1298
                                        </xs:annotation>
 
1299
                                </xs:element>
 
1300
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1301
                                        <xs:annotation>
 
1302
                                                <xs:documentation>
 
1303
                                                The extra element may appear any number of times.
 
1304
                                                </xs:documentation>
 
1305
                                        </xs:annotation>
 
1306
                                </xs:element>
 
1307
                        </xs:sequence>
 
1308
                        <xs:attribute name="name" type="xs:NCName">
 
1309
                                <xs:annotation>
 
1310
                                        <xs:documentation>
 
1311
                                        The name attribute is the text string name of this element. Optional attribute.
 
1312
                                        </xs:documentation>
 
1313
                                </xs:annotation>
 
1314
                        </xs:attribute>
 
1315
                        <xs:attribute name="count" type="uint" use="required">
 
1316
                                <xs:annotation>
 
1317
                                        <xs:documentation>
 
1318
                                        The count attribute indicates the number of linestrip primitives. Required attribute.
 
1319
                                        </xs:documentation>
 
1320
                                </xs:annotation>
 
1321
                        </xs:attribute>
 
1322
                        <xs:attribute name="material" type="xs:NCName">
 
1323
                                <xs:annotation>
 
1324
                                        <xs:documentation>
 
1325
                                        The material attribute declares a symbol for a material. This symbol is bound to a material 
 
1326
                                        at the time of instantiation. If the material attribute is not specified then the lighting 
 
1327
                                        and shading results are application defined. Optional attribute.
 
1328
                                        </xs:documentation>
 
1329
                                </xs:annotation>
 
1330
                        </xs:attribute>
 
1331
                </xs:complexType>
 
1332
        </xs:element>
 
1333
        <xs:element name="polygons">
 
1334
                <xs:annotation>
 
1335
                        <xs:documentation>
 
1336
                        The polygons element provides the information needed to bind vertex attributes together and 
 
1337
                        then organize those vertices into individual polygons. The polygons described can contain 
 
1338
                        arbitrary numbers of vertices. These polygons may be self intersecting and may also contain holes.
 
1339
                        </xs:documentation>
 
1340
                </xs:annotation>
 
1341
                <xs:complexType>
 
1342
                        <xs:sequence>
 
1343
                                <xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
 
1344
                                        <xs:annotation>
 
1345
                                                <xs:documentation>
 
1346
                                                The input element may occur any number of times. This input is a local input with the 
 
1347
                                                offset and set attributes.
 
1348
                                                </xs:documentation>
 
1349
                                        </xs:annotation>
 
1350
                                </xs:element>
 
1351
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
1352
                                        <xs:element ref="p">
 
1353
                                                <xs:annotation>
 
1354
                                                        <xs:documentation>
 
1355
                                                        The p element may occur any number of times.
 
1356
                                                        </xs:documentation>
 
1357
                                                </xs:annotation>
 
1358
                                        </xs:element>
 
1359
                                        <xs:element name="ph">
 
1360
                                                <xs:annotation>
 
1361
                                                        <xs:documentation>
 
1362
                                                        The ph element descripes a polygon with holes.
 
1363
                                                        </xs:documentation>
 
1364
                                                </xs:annotation>
 
1365
                                                <xs:complexType>
 
1366
                                                        <xs:sequence>
 
1367
                                                                <xs:element ref="p">
 
1368
                                                                        <xs:annotation>
 
1369
                                                                                <xs:documentation>
 
1370
                                                                                Theere may only be one p element.
 
1371
                                                                                </xs:documentation>
 
1372
                                                                        </xs:annotation>
 
1373
                                                                </xs:element>
 
1374
                                                                <xs:element name="h" type="ListOfUInts" maxOccurs="unbounded">
 
1375
                                                                        <xs:annotation>
 
1376
                                                                                <xs:documentation>
 
1377
                                                                                The h element represents a hole in the polygon specified. There must be at least one h element.
 
1378
                                                                                </xs:documentation>
 
1379
                                                                        </xs:annotation>
 
1380
                                                                </xs:element>
 
1381
                                                        </xs:sequence>
 
1382
                                                </xs:complexType>
 
1383
                                        </xs:element>
 
1384
                                </xs:choice>
 
1385
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1386
                                        <xs:annotation>
 
1387
                                                <xs:documentation>
 
1388
                                                The extra element may appear any number of times.
 
1389
                                                </xs:documentation>
 
1390
                                        </xs:annotation>
 
1391
                                </xs:element>
 
1392
                        </xs:sequence>
 
1393
                        <xs:attribute name="name" type="xs:NCName">
 
1394
                                <xs:annotation>
 
1395
                                        <xs:documentation>
 
1396
                                        The name attribute is the text string name of this element. Optional attribute.
 
1397
                                        </xs:documentation>
 
1398
                                </xs:annotation>
 
1399
                        </xs:attribute>
 
1400
                        <xs:attribute name="count" type="uint" use="required">
 
1401
                                <xs:annotation>
 
1402
                                        <xs:documentation>
 
1403
                                        The count attribute indicates the number of polygon primitives. Required attribute.
 
1404
                                        </xs:documentation>
 
1405
                                </xs:annotation>
 
1406
                        </xs:attribute>
 
1407
                        <xs:attribute name="material" type="xs:NCName">
 
1408
                                <xs:annotation>
 
1409
                                        <xs:documentation>
 
1410
                                        The material attribute declares a symbol for a material. This symbol is bound to a material 
 
1411
                                        at the time of instantiation. If the material attribute is not specified then the lighting 
 
1412
                                        and shading results are application defined. Optional attribute. 
 
1413
                                        </xs:documentation>
 
1414
                                </xs:annotation>
 
1415
                        </xs:attribute>
 
1416
                </xs:complexType>
 
1417
        </xs:element>
 
1418
        <xs:element name="polylist">
 
1419
                <xs:annotation>
 
1420
                        <xs:documentation>
 
1421
                        The polylist element provides the information needed to bind vertex attributes together and 
 
1422
                        then organize those vertices into individual polygons. The polygons described in polylist can 
 
1423
                        contain arbitrary numbers of vertices. Unlike the polygons element, the polylist element cannot 
 
1424
                        contain polygons with holes.
 
1425
                        </xs:documentation>
 
1426
                </xs:annotation>
 
1427
                <xs:complexType>
 
1428
                        <xs:sequence>
 
1429
                                <xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
 
1430
                                        <xs:annotation>
 
1431
                                                <xs:documentation>
 
1432
                                                The input element may occur any number of times. This input is a local input with the 
 
1433
                                                offset and set attributes.
 
1434
                                                </xs:documentation>
 
1435
                                        </xs:annotation>
 
1436
                                </xs:element>
 
1437
                                <xs:element name="vcount" type="ListOfUInts" minOccurs="0">
 
1438
                                        <xs:annotation>
 
1439
                                                <xs:documentation>
 
1440
                                                The vcount element contains a list of integers describing the number of sides for each polygon 
 
1441
                                                described by the polylist element. The vcount element may occur once.
 
1442
                                                </xs:documentation>
 
1443
                                        </xs:annotation>
 
1444
                                </xs:element>
 
1445
                                <xs:element ref="p" minOccurs="0">
 
1446
                                        <xs:annotation>
 
1447
                                                <xs:documentation>
 
1448
                                                The p element may occur once.
 
1449
                                                </xs:documentation>
 
1450
                                        </xs:annotation>
 
1451
                                </xs:element>
 
1452
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1453
                                        <xs:annotation>
 
1454
                                                <xs:documentation>
 
1455
                                                The extra element may appear any number of times.
 
1456
                                                </xs:documentation>
 
1457
                                        </xs:annotation>
 
1458
                                </xs:element>
 
1459
                        </xs:sequence>
 
1460
                        <xs:attribute name="name" type="xs:NCName">
 
1461
                                <xs:annotation>
 
1462
                                        <xs:documentation>
 
1463
                                        The name attribute is the text string name of this element. Optional attribute.
 
1464
                                        </xs:documentation>
 
1465
                                </xs:annotation>
 
1466
                        </xs:attribute>
 
1467
                        <xs:attribute name="count" type="uint" use="required">
 
1468
                                <xs:annotation>
 
1469
                                        <xs:documentation>
 
1470
                                        The count attribute indicates the number of polygon primitives. Required attribute.
 
1471
                                        </xs:documentation>
 
1472
                                </xs:annotation>
 
1473
                        </xs:attribute>
 
1474
                        <xs:attribute name="material" type="xs:NCName">
 
1475
                                <xs:annotation>
 
1476
                                        <xs:documentation>
 
1477
                                        The material attribute declares a symbol for a material. This symbol is bound to a material at 
 
1478
                                        the time of instantiation. If the material attribute is not specified then the lighting and 
 
1479
                                        shading results are application defined. Optional attribute.
 
1480
                                        </xs:documentation>
 
1481
                                </xs:annotation>
 
1482
                        </xs:attribute>
 
1483
                </xs:complexType>
 
1484
        </xs:element>
 
1485
        <xs:element name="triangles">
 
1486
                <xs:annotation>
 
1487
                        <xs:documentation>
 
1488
                        The triangles element provides the information needed to bind vertex attributes together and 
 
1489
                        then organize those vertices into individual triangles. Each triangle described by the mesh has 
 
1490
                        three vertices. The first triangle is formed from the first, second, and third vertices. The 
 
1491
                        second triangle is formed from the fourth, fifth, and sixth vertices, and so on.
 
1492
                        </xs:documentation>
 
1493
                </xs:annotation>
 
1494
                <xs:complexType>
 
1495
                        <xs:sequence>
 
1496
                                <xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
 
1497
                                        <xs:annotation>
 
1498
                                                <xs:documentation>
 
1499
                                                The input element may occur any number of times. This input is a local input with the 
 
1500
                                                offset and set attributes.
 
1501
                                                </xs:documentation>
 
1502
                                        </xs:annotation>
 
1503
                                </xs:element>
 
1504
                                <xs:element ref="p" minOccurs="0">
 
1505
                                        <xs:annotation>
 
1506
                                                <xs:documentation>
 
1507
                                                The triangles element may have any number of p elements.
 
1508
                                                </xs:documentation>
 
1509
                                        </xs:annotation>
 
1510
                                </xs:element>
 
1511
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1512
                                        <xs:annotation>
 
1513
                                                <xs:documentation>
 
1514
                                                The extra element may appear any number of times.
 
1515
                                                </xs:documentation>
 
1516
                                        </xs:annotation>
 
1517
                                </xs:element>
 
1518
                        </xs:sequence>
 
1519
                        <xs:attribute name="name" type="xs:NCName">
 
1520
                                <xs:annotation>
 
1521
                                        <xs:documentation>
 
1522
                                        The name attribute is the text string name of this element. Optional attribute.
 
1523
                                        </xs:documentation>
 
1524
                                </xs:annotation>
 
1525
                        </xs:attribute>
 
1526
                        <xs:attribute name="count" type="uint" use="required">
 
1527
                                <xs:annotation>
 
1528
                                        <xs:documentation>
 
1529
                                        The count attribute indicates the number of triangle primitives. Required attribute.
 
1530
                                        </xs:documentation>
 
1531
                                </xs:annotation>
 
1532
                        </xs:attribute>
 
1533
                        <xs:attribute name="material" type="xs:NCName">
 
1534
                                <xs:annotation>
 
1535
                                        <xs:documentation>
 
1536
                                        The material attribute declares a symbol for a material. This symbol is bound to a material at 
 
1537
                                        the time of instantiation. Optional attribute. If the material attribute is not specified then 
 
1538
                                        the lighting and shading results are application defined.
 
1539
                                        </xs:documentation>
 
1540
                                </xs:annotation>
 
1541
                        </xs:attribute>
 
1542
                </xs:complexType>
 
1543
        </xs:element>
 
1544
        <xs:element name="trifans">
 
1545
                <xs:annotation>
 
1546
                        <xs:documentation>
 
1547
                        The trifans element provides the information needed to bind vertex attributes together and then 
 
1548
                        organize those vertices into connected triangles. Each triangle described by the mesh has three 
 
1549
                        vertices. The first triangle is formed from first, second, and third vertices. Each subsequent 
 
1550
                        triangle is formed from the current vertex, reusing the first and the previous vertices.
 
1551
                        </xs:documentation>
 
1552
                </xs:annotation>
 
1553
                <xs:complexType>
 
1554
                        <xs:sequence>
 
1555
                                <xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
 
1556
                                        <xs:annotation>
 
1557
                                                <xs:documentation>
 
1558
                                                The input element may occur any number of times. This input is a local input with the 
 
1559
                                                offset and set attributes.
 
1560
                                                </xs:documentation>
 
1561
                                        </xs:annotation>
 
1562
                                </xs:element>
 
1563
                                <xs:element ref="p" minOccurs="0" maxOccurs="unbounded">
 
1564
                                        <xs:annotation>
 
1565
                                                <xs:documentation>
 
1566
                                                The trifans element may have any number of p elements.
 
1567
                                                </xs:documentation>
 
1568
                                        </xs:annotation>
 
1569
                                </xs:element>
 
1570
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1571
                                        <xs:annotation>
 
1572
                                                <xs:documentation>
 
1573
                                                The extra element may appear any number of times.
 
1574
                                                </xs:documentation>
 
1575
                                        </xs:annotation>
 
1576
                                </xs:element>
 
1577
                        </xs:sequence>
 
1578
                        <xs:attribute name="name" type="xs:NCName">
 
1579
                                <xs:annotation>
 
1580
                                        <xs:documentation>
 
1581
                                        The name attribute is the text string name of this element. Optional attribute.
 
1582
                                        </xs:documentation>
 
1583
                                </xs:annotation>
 
1584
                        </xs:attribute>
 
1585
                        <xs:attribute name="count" type="uint" use="required">
 
1586
                                <xs:annotation>
 
1587
                                        <xs:documentation>
 
1588
                                        The count attribute indicates the number of triangle fan primitives. Required attribute.
 
1589
                                        </xs:documentation>
 
1590
                                </xs:annotation>
 
1591
                        </xs:attribute>
 
1592
                        <xs:attribute name="material" type="xs:NCName">
 
1593
                                <xs:annotation>
 
1594
                                        <xs:documentation>
 
1595
                                        The material attribute declares a symbol for a material. This symbol is bound to a material 
 
1596
                                        at the time of instantiation. If the material attribute is not specified then the lighting 
 
1597
                                        and shading results are application defined. Optional attribute.
 
1598
                                        </xs:documentation>
 
1599
                                </xs:annotation>
 
1600
                        </xs:attribute>
 
1601
                </xs:complexType>
 
1602
        </xs:element>
 
1603
        <xs:element name="tristrips">
 
1604
                <xs:annotation>
 
1605
                        <xs:documentation>
 
1606
                        The tristrips element provides the information needed to bind vertex attributes together and then 
 
1607
                        organize those vertices into connected triangles. Each triangle described by the mesh has three 
 
1608
                        vertices. The first triangle is formed from first, second, and third vertices. Each subsequent 
 
1609
                        triangle is formed from the current vertex, reusing the previous two vertices.
 
1610
                        </xs:documentation>
 
1611
                </xs:annotation>
 
1612
                <xs:complexType>
 
1613
                        <xs:sequence>
 
1614
                                <xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
 
1615
                                        <xs:annotation>
 
1616
                                                <xs:documentation>
 
1617
                                                The input element may occur any number of times. This input is a local input with the offset 
 
1618
                                                and set attributes.
 
1619
                                                </xs:documentation>
 
1620
                                        </xs:annotation>
 
1621
                                </xs:element>
 
1622
                                <xs:element ref="p" minOccurs="0" maxOccurs="unbounded">
 
1623
                                        <xs:annotation>
 
1624
                                                <xs:documentation>
 
1625
                                                The tristrips element may have any number of p elements.
 
1626
                                                </xs:documentation>
 
1627
                                        </xs:annotation>
 
1628
                                </xs:element>
 
1629
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1630
                                        <xs:annotation>
 
1631
                                                <xs:documentation>
 
1632
                                                The extra element may appear any number of times.
 
1633
                                                </xs:documentation>
 
1634
                                        </xs:annotation>
 
1635
                                </xs:element>
 
1636
                        </xs:sequence>
 
1637
                        <xs:attribute name="name" type="xs:NCName">
 
1638
                                <xs:annotation>
 
1639
                                        <xs:documentation>
 
1640
                                        The name attribute is the text string name of this element. Optional attribute.
 
1641
                                        </xs:documentation>
 
1642
                                </xs:annotation>
 
1643
                        </xs:attribute>
 
1644
                        <xs:attribute name="count" type="uint" use="required">
 
1645
                                <xs:annotation>
 
1646
                                        <xs:documentation>
 
1647
                                        The count attribute indicates the number of triangle strip primitives. Required attribute.
 
1648
                                        </xs:documentation>
 
1649
                                </xs:annotation>
 
1650
                        </xs:attribute>
 
1651
                        <xs:attribute name="material" type="xs:NCName">
 
1652
                                <xs:annotation>
 
1653
                                        <xs:documentation>
 
1654
                                        The material attribute declares a symbol for a material. This symbol is bound to a material 
 
1655
                                        at the time of instantiation. If the material attribute is not specified then the lighting 
 
1656
                                        and shading results are application defined. Optional attribute.
 
1657
                                        </xs:documentation>
 
1658
                                </xs:annotation>
 
1659
                        </xs:attribute>
 
1660
                </xs:complexType>
 
1661
        </xs:element>
 
1662
        <xs:element name="vertices">
 
1663
                <xs:annotation>
 
1664
                        <xs:documentation>
 
1665
                        The vertices element declares the attributes and identity of mesh-vertices. The vertices element
 
1666
                        describes mesh-vertices in a mesh geometry. The mesh-vertices represent the position (identity) 
 
1667
                        of the vertices comprising the mesh and other vertex attributes that are invariant to tessellation.
 
1668
                        </xs:documentation>
 
1669
                </xs:annotation>
 
1670
                <xs:complexType>
 
1671
                        <xs:sequence>
 
1672
                                <xs:element name="input" type="InputLocal" maxOccurs="unbounded">
 
1673
                                        <xs:annotation>
 
1674
                                                <xs:documentation>
 
1675
                                                The input element must occur at least one time. These inputs are local inputs.
 
1676
                                                </xs:documentation>
 
1677
                                        </xs:annotation>
 
1678
                                </xs:element>
 
1679
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1680
                                        <xs:annotation>
 
1681
                                                <xs:documentation>
 
1682
                                                The extra element may appear any number of times.
 
1683
                                                </xs:documentation>
 
1684
                                        </xs:annotation>
 
1685
                                </xs:element>
 
1686
                        </xs:sequence>
 
1687
                        <xs:attribute name="id" type="xs:ID" use="required">
 
1688
                                <xs:annotation>
 
1689
                                        <xs:documentation>
 
1690
                                        The id attribute is a text string containing the unique identifier of this element. This 
 
1691
                                        value must be unique within the instance document. Required attribute.
 
1692
                                        </xs:documentation>
 
1693
                                </xs:annotation>
 
1694
                        </xs:attribute>
 
1695
                        <xs:attribute name="name" type="xs:NCName">
 
1696
                                <xs:annotation>
 
1697
                                        <xs:documentation>
 
1698
                                        The name attribute is the text string name of this element. Optional attribute.
 
1699
                                        </xs:documentation>
 
1700
                                </xs:annotation>
 
1701
                        </xs:attribute>
 
1702
                </xs:complexType>
 
1703
        </xs:element>
 
1704
        <!-- Transformational Elements -->
 
1705
        <xs:element name="lookat">
 
1706
                <xs:annotation>
 
1707
                        <xs:documentation>
 
1708
                        The lookat element contains a position and orientation transformation suitable for aiming a camera.
 
1709
                        The lookat element contains three mathematical vectors within it that describe: 
 
1710
                        1.      The position of the object;
 
1711
                        2.      The position of the interest point;
 
1712
                        3.      The direction that points up.
 
1713
                        </xs:documentation>
 
1714
                </xs:annotation>
 
1715
                <xs:complexType>
 
1716
                        <xs:simpleContent>
 
1717
                                <xs:extension base="float3x3">
 
1718
                                        <xs:attribute name="sid" type="xs:NCName">
 
1719
                                                <xs:annotation>
 
1720
                                                        <xs:documentation>
 
1721
                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
1722
                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
1723
                                                        </xs:documentation>
 
1724
                                                </xs:annotation>
 
1725
                                        </xs:attribute>
 
1726
                                </xs:extension>
 
1727
                        </xs:simpleContent>
 
1728
                </xs:complexType>
 
1729
        </xs:element>
 
1730
        <xs:element name="matrix">
 
1731
                <xs:annotation>
 
1732
                        <xs:documentation>
 
1733
                        Matrix transformations embody mathematical changes to points within a coordinate systems or the 
 
1734
                        coordinate system itself. The matrix element contains a 4-by-4 matrix of floating-point values.
 
1735
                        </xs:documentation>
 
1736
                </xs:annotation>
 
1737
                <xs:complexType>
 
1738
                        <xs:simpleContent>
 
1739
                                <xs:extension base="float4x4">
 
1740
                                        <xs:attribute name="sid" type="xs:NCName">
 
1741
                                                <xs:annotation>
 
1742
                                                        <xs:documentation>
 
1743
                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
1744
                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
1745
                                                        </xs:documentation>
 
1746
                                                </xs:annotation>
 
1747
                                        </xs:attribute>
 
1748
                                </xs:extension>
 
1749
                        </xs:simpleContent>
 
1750
                </xs:complexType>
 
1751
        </xs:element>
 
1752
        <xs:element name="rotate">
 
1753
                <xs:annotation>
 
1754
                        <xs:documentation>
 
1755
                        The rotate element contains an angle and a mathematical vector that represents the axis of rotation.
 
1756
                        </xs:documentation>
 
1757
                </xs:annotation>
 
1758
                <xs:complexType>
 
1759
                        <xs:simpleContent>
 
1760
                                <xs:extension base="float4">
 
1761
                                        <xs:attribute name="sid" type="xs:NCName">
 
1762
                                                <xs:annotation>
 
1763
                                                        <xs:documentation>
 
1764
                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
1765
                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
1766
                                                        </xs:documentation>
 
1767
                                                </xs:annotation>
 
1768
                                        </xs:attribute>
 
1769
                                </xs:extension>
 
1770
                        </xs:simpleContent>
 
1771
                </xs:complexType>
 
1772
        </xs:element>
 
1773
        <xs:element name="scale" type="TargetableFloat3">
 
1774
                <xs:annotation>
 
1775
                        <xs:documentation>
 
1776
                        The scale element contains a mathematical vector that represents the relative proportions of the 
 
1777
                        X, Y and Z axes of a coordinated system.
 
1778
                        </xs:documentation>
 
1779
                </xs:annotation>
 
1780
        </xs:element>
 
1781
        <xs:element name="skew">
 
1782
                <xs:annotation>
 
1783
                        <xs:documentation>
 
1784
                        The skew element contains an angle and two mathematical vectors that represent the axis of 
 
1785
                        rotation and the axis of translation.
 
1786
                        </xs:documentation>
 
1787
                </xs:annotation>
 
1788
                <xs:complexType>
 
1789
                        <xs:simpleContent>
 
1790
                                <xs:extension base="float7">
 
1791
                                        <xs:attribute name="sid" type="xs:NCName">
 
1792
                                                <xs:annotation>
 
1793
                                                        <xs:documentation>
 
1794
                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
1795
                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
1796
                                                        </xs:documentation>
 
1797
                                                </xs:annotation>
 
1798
                                        </xs:attribute>
 
1799
                                </xs:extension>
 
1800
                        </xs:simpleContent>
 
1801
                </xs:complexType>
 
1802
        </xs:element>
 
1803
        <xs:element name="translate" type="TargetableFloat3">
 
1804
                <xs:annotation>
 
1805
                        <xs:documentation>
 
1806
                        The translate element contains a mathematical vector that represents the distance along the 
 
1807
                        X, Y and Z-axes.
 
1808
                        </xs:documentation>
 
1809
                </xs:annotation>
 
1810
        </xs:element>
 
1811
        <!-- Lighting and Shading Elements -->
 
1812
        <xs:element name="image">
 
1813
                <xs:annotation>
 
1814
                        <xs:documentation>
 
1815
                        The image element declares the storage for the graphical representation of an object. 
 
1816
                        The image element best describes raster image data, but can conceivably handle other 
 
1817
                        forms of imagery. The image elements allows for specifying an external image file with 
 
1818
                        the init_from element or embed image data with the data element.
 
1819
                        </xs:documentation>
 
1820
                </xs:annotation>
 
1821
                <xs:complexType>
 
1822
                        <xs:sequence>
 
1823
                                <xs:element ref="asset" minOccurs="0">
 
1824
                                        <xs:annotation>
 
1825
                                                <xs:documentation>
 
1826
                                                The image element may contain an asset element.
 
1827
                                                </xs:documentation>
 
1828
                                        </xs:annotation>
 
1829
                                </xs:element>
 
1830
                                <xs:choice>
 
1831
                                        <xs:element name="data" type="ListOfHexBinary">
 
1832
                                                <xs:annotation>
 
1833
                                                        <xs:documentation>
 
1834
                                                        The data child element contains a sequence of hexadecimal encoded  binary octets representing 
 
1835
                                                        the embedded image data.
 
1836
                                                        </xs:documentation>
 
1837
                                                </xs:annotation>
 
1838
                                        </xs:element>
 
1839
                                        <xs:element name="init_from" type="xs:anyURI">
 
1840
                                                <xs:annotation>
 
1841
                                                        <xs:documentation>
 
1842
                                                        The init_from element allows you to specify an external image file to use for the image element.
 
1843
                                                        </xs:documentation>
 
1844
                                                </xs:annotation>
 
1845
                                        </xs:element>
 
1846
                                </xs:choice>
 
1847
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
1848
                                        <xs:annotation>
 
1849
                                                <xs:documentation>
 
1850
                                                The extra element may appear any number of times.
 
1851
                                                </xs:documentation>
 
1852
                                        </xs:annotation>
 
1853
                                </xs:element>
 
1854
                        </xs:sequence>
 
1855
                        <xs:attribute name="id" type="xs:ID">
 
1856
                                <xs:annotation>
 
1857
                                        <xs:documentation>
 
1858
                                        The id attribute is a text string containing the unique identifier of this element. This value 
 
1859
                                        must be unique within the instance document. Optional attribute.
 
1860
                                        </xs:documentation>
 
1861
                                </xs:annotation>
 
1862
                        </xs:attribute>
 
1863
                        <xs:attribute name="name" type="xs:NCName">
 
1864
                                <xs:annotation>
 
1865
                                        <xs:documentation>
 
1866
                                        The name attribute is the text string name of this element. Optional attribute.
 
1867
                                        </xs:documentation>
 
1868
                                </xs:annotation>
 
1869
                        </xs:attribute>
 
1870
                        <xs:attribute name="format" type="xs:token">
 
1871
                                <xs:annotation>
 
1872
                                        <xs:documentation>
 
1873
                                        The format attribute is a text string value that indicates the image format. Optional attribute.
 
1874
                                        </xs:documentation>
 
1875
                                </xs:annotation>
 
1876
                        </xs:attribute>
 
1877
                        <xs:attribute name="height" type="uint">
 
1878
                                <xs:annotation>
 
1879
                                        <xs:documentation>
 
1880
                                        The height attribute is an integer value that indicates the height of the image in pixel 
 
1881
                                        units. Optional attribute.
 
1882
                                        </xs:documentation>
 
1883
                                </xs:annotation>
 
1884
                        </xs:attribute>
 
1885
                        <xs:attribute name="width" type="uint">
 
1886
                                <xs:annotation>
 
1887
                                        <xs:documentation>
 
1888
                                        The width attribute is an integer value that indicates the width of the image in pixel units. 
 
1889
                                        Optional attribute.
 
1890
                                        </xs:documentation>
 
1891
                                </xs:annotation>
 
1892
                        </xs:attribute>
 
1893
                        <xs:attribute name="depth" type="uint" default="1">
 
1894
                                <xs:annotation>
 
1895
                                        <xs:documentation>
 
1896
                                        The depth attribute is an integer value that indicates the depth of the image in pixel units. 
 
1897
                                        A 2-D image has a depth of 1, which is also the default value. Optional attribute.
 
1898
                                        </xs:documentation>
 
1899
                                </xs:annotation>
 
1900
                        </xs:attribute>
 
1901
                </xs:complexType>
 
1902
        </xs:element>
 
1903
        <xs:element name="light">
 
1904
                <xs:annotation>
 
1905
                        <xs:documentation>
 
1906
                        The light element declares a light source that illuminates the scene.
 
1907
                        Light sources have many different properties and radiate light in many different patterns and 
 
1908
                        frequencies.
 
1909
                        </xs:documentation>
 
1910
                </xs:annotation>
 
1911
                <xs:complexType>
 
1912
                        <xs:sequence>
 
1913
                                <xs:element ref="asset" minOccurs="0">
 
1914
                                        <xs:annotation>
 
1915
                                                <xs:documentation>
 
1916
                                                The light element may contain an asset element.
 
1917
                                                </xs:documentation>
 
1918
                                        </xs:annotation>
 
1919
                                </xs:element>
 
1920
                                <xs:element name="technique_common">
 
1921
                                        <xs:annotation>
 
1922
                                                <xs:documentation>
 
1923
                                                The technique_common element specifies the light information for the common profile which all 
 
1924
                                                COLLADA implementations need to support.
 
1925
                                                </xs:documentation>
 
1926
                                        </xs:annotation>
 
1927
                                        <xs:complexType>
 
1928
                                                <xs:choice>
 
1929
                                                        <xs:element name="ambient">
 
1930
                                                                <xs:annotation>
 
1931
                                                                        <xs:documentation>
 
1932
                                                                        The ambient element declares the parameters required to describe an ambient light source.  
 
1933
                                                                        An ambient light is one that lights everything evenly, regardless of location or orientation.
 
1934
                                                                        </xs:documentation>
 
1935
                                                                </xs:annotation>
 
1936
                                                                <xs:complexType>
 
1937
                                                                        <xs:sequence>
 
1938
                                                                                <xs:element name="color" type="TargetableFloat3">
 
1939
                                                                                        <xs:annotation>
 
1940
                                                                                                <xs:documentation>
 
1941
                                                                                                The color element contains three floating point numbers specifying the color of the light.
 
1942
                                                                                                The color element must occur exactly once.  
 
1943
                                                                                                </xs:documentation>
 
1944
                                                                                        </xs:annotation>
 
1945
                                                                                </xs:element>
 
1946
                                                                        </xs:sequence>
 
1947
                                                                </xs:complexType>
 
1948
                                                        </xs:element>
 
1949
                                                        <xs:element name="directional">
 
1950
                                                                <xs:annotation>
 
1951
                                                                        <xs:documentation>
 
1952
                                                                        The directional element declares the parameters required to describe a directional light source.  
 
1953
                                                                        A directional light is one that lights everything from the same direction, regardless of location.  
 
1954
                                                                        The lightā€™s default direction vector in local coordinates is [0,0,-1], pointing down the -Z axis. 
 
1955
                                                                        The actual direction of the light is defined by the transform of the node where the light is 
 
1956
                                                                        instantiated.
 
1957
                                                                        </xs:documentation>
 
1958
                                                                </xs:annotation>
 
1959
                                                                <xs:complexType>
 
1960
                                                                        <xs:sequence>
 
1961
                                                                                <xs:element name="color" type="TargetableFloat3">
 
1962
                                                                                        <xs:annotation>
 
1963
                                                                                                <xs:documentation>
 
1964
                                                                                                The color element contains three floating point numbers specifying the color of the light.
 
1965
                                                                                                The color element must occur exactly once.  
 
1966
                                                                                                </xs:documentation>
 
1967
                                                                                        </xs:annotation>
 
1968
                                                                                </xs:element>
 
1969
                                                                        </xs:sequence>
 
1970
                                                                </xs:complexType>
 
1971
                                                        </xs:element>
 
1972
                                                        <xs:element name="point">
 
1973
                                                                <xs:annotation>
 
1974
                                                                        <xs:documentation>
 
1975
                                                                        The point element declares the parameters required to describe a point light source.  A point light 
 
1976
                                                                        source radiates light in all directions from a known location in space. The intensity of a point 
 
1977
                                                                        light source is attenuated as the distance to the light source increases. The position of the light 
 
1978
                                                                        is defined by the transform of the node in which it is instantiated.
 
1979
                                                                        </xs:documentation>
 
1980
                                                                </xs:annotation>
 
1981
                                                                <xs:complexType>
 
1982
                                                                        <xs:sequence>
 
1983
                                                                                <xs:element name="color" type="TargetableFloat3">
 
1984
                                                                                        <xs:annotation>
 
1985
                                                                                                <xs:documentation>
 
1986
                                                                                                The color element contains three floating point numbers specifying the color of the light.
 
1987
                                                                                                The color element must occur exactly once.  
 
1988
                                                                                                </xs:documentation>
 
1989
                                                                                        </xs:annotation>
 
1990
                                                                                </xs:element>
 
1991
                                                                                <xs:element name="constant_attenuation" type="TargetableFloat" default="1.0" minOccurs="0">
 
1992
                                                                                        <xs:annotation>
 
1993
                                                                                                <xs:documentation>
 
1994
                                                                                                The constant_attenuation is used to calculate the total attenuation of this light given a distance. 
 
1995
                                                                                                The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. 
 
1996
                                                                                                </xs:documentation>
 
1997
                                                                                        </xs:annotation>
 
1998
                                                                                </xs:element>
 
1999
                                                                                <xs:element name="linear_attenuation" type="TargetableFloat" default="0.0" minOccurs="0">
 
2000
                                                                                        <xs:annotation>
 
2001
                                                                                                <xs:documentation>
 
2002
                                                                                                The linear_attenuation is used to calculate the total attenuation of this light given a distance. 
 
2003
                                                                                                The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. 
 
2004
                                                                                                </xs:documentation>
 
2005
                                                                                        </xs:annotation>
 
2006
                                                                                </xs:element>
 
2007
                                                                                <xs:element name="quadratic_attenuation" type="TargetableFloat" default="0.0" minOccurs="0">
 
2008
                                                                                        <xs:annotation>
 
2009
                                                                                                <xs:documentation>
 
2010
                                                                                                The quadratic_attenuation is used to calculate the total attenuation of this light given a distance. 
 
2011
                                                                                                The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. 
 
2012
                                                                                                </xs:documentation>
 
2013
                                                                                        </xs:annotation>
 
2014
                                                                                </xs:element>
 
2015
                                                                        </xs:sequence>
 
2016
                                                                </xs:complexType>
 
2017
                                                        </xs:element>
 
2018
                                                        <xs:element name="spot">
 
2019
                                                                <xs:annotation>
 
2020
                                                                        <xs:documentation>
 
2021
                                                                        The spot element declares the parameters required to describe a spot light source.  A spot light 
 
2022
                                                                        source radiates light in one direction from a known location in space. The light radiates from 
 
2023
                                                                        the spot light source in a cone shape. The intensity of the light is attenuated as the radiation 
 
2024
                                                                        angle increases away from the direction of the light source. The intensity of a spot light source 
 
2025
                                                                        is also attenuated as the distance to the light source increases. The position of the light is 
 
2026
                                                                        defined by the transform of the node in which it is instantiated. The lightā€™s default direction 
 
2027
                                                                        vector in local coordinates is [0,0,-1], pointing down the -Z axis. The actual direction of the 
 
2028
                                                                        light is defined by the transform of the node where the light is instantiated.
 
2029
                                                                        </xs:documentation>
 
2030
                                                                </xs:annotation>
 
2031
                                                                <xs:complexType>
 
2032
                                                                        <xs:sequence>
 
2033
                                                                                <xs:element name="color" type="TargetableFloat3">
 
2034
                                                                                        <xs:annotation>
 
2035
                                                                                                <xs:documentation>
 
2036
                                                                                                The color element contains three floating point numbers specifying the color of the light.
 
2037
                                                                                                The color element must occur exactly once.  
 
2038
                                                                                                </xs:documentation>
 
2039
                                                                                        </xs:annotation>
 
2040
                                                                                </xs:element>
 
2041
                                                                                <xs:element name="constant_attenuation" type="TargetableFloat" default="1.0" minOccurs="0">
 
2042
                                                                                        <xs:annotation>
 
2043
                                                                                                <xs:documentation>
 
2044
                                                                                                The constant_attenuation is used to calculate the total attenuation of this light given a distance. 
 
2045
                                                                                                The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. 
 
2046
                                                                                                </xs:documentation>
 
2047
                                                                                        </xs:annotation>
 
2048
                                                                                </xs:element>
 
2049
                                                                                <xs:element name="linear_attenuation" type="TargetableFloat" default="0.0" minOccurs="0">
 
2050
                                                                                        <xs:annotation>
 
2051
                                                                                                <xs:documentation>
 
2052
                                                                                                The linear_attenuation is used to calculate the total attenuation of this light given a distance. 
 
2053
                                                                                                The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. 
 
2054
                                                                                                </xs:documentation>
 
2055
                                                                                        </xs:annotation>
 
2056
                                                                                </xs:element>
 
2057
                                                                                <xs:element name="quadratic_attenuation" type="TargetableFloat" default="0.0" minOccurs="0">
 
2058
                                                                                        <xs:annotation>
 
2059
                                                                                                <xs:documentation>
 
2060
                                                                                                The quadratic_attenuation is used to calculate the total attenuation of this light given a distance. 
 
2061
                                                                                                The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. 
 
2062
                                                                                                </xs:documentation>
 
2063
                                                                                        </xs:annotation>
 
2064
                                                                                </xs:element>
 
2065
                                                                                <xs:element name="falloff_angle" type="TargetableFloat" default="180.0" minOccurs="0">
 
2066
                                                                                        <xs:annotation>
 
2067
                                                                                                <xs:documentation>
 
2068
                                                                                                The falloff_angle is used to specify the amount of attenuation based on the direction of the light.
 
2069
                                                                                                </xs:documentation>
 
2070
                                                                                        </xs:annotation>
 
2071
                                                                                </xs:element>
 
2072
                                                                                <xs:element name="falloff_exponent" type="TargetableFloat" default="0.0" minOccurs="0">
 
2073
                                                                                        <xs:annotation>
 
2074
                                                                                                <xs:documentation>
 
2075
                                                                                                The falloff_exponent is used to specify the amount of attenuation based on the direction of the light.
 
2076
                                                                                                </xs:documentation>
 
2077
                                                                                        </xs:annotation>
 
2078
                                                                                </xs:element>
 
2079
                                                                        </xs:sequence>
 
2080
                                                                </xs:complexType>
 
2081
                                                        </xs:element>
 
2082
                                                </xs:choice>
 
2083
                                        </xs:complexType>
 
2084
                                </xs:element>
 
2085
                                <xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
 
2086
                                        <xs:annotation>
 
2087
                                                <xs:documentation>
 
2088
                                                This element may contain any number of non-common profile techniques.
 
2089
                                                </xs:documentation>
 
2090
                                        </xs:annotation>
 
2091
                                </xs:element>
 
2092
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2093
                                        <xs:annotation>
 
2094
                                                <xs:documentation>
 
2095
                                                The extra element may appear any number of times.
 
2096
                                                </xs:documentation>
 
2097
                                        </xs:annotation>
 
2098
                                </xs:element>
 
2099
                        </xs:sequence>
 
2100
                        <xs:attribute name="id" type="xs:ID">
 
2101
                                <xs:annotation>
 
2102
                                        <xs:documentation>
 
2103
                                        The id attribute is a text string containing the unique identifier of this element. 
 
2104
                                        This value must be unique within the instance document. Optional attribute.
 
2105
                                        </xs:documentation>
 
2106
                                </xs:annotation>
 
2107
                        </xs:attribute>
 
2108
                        <xs:attribute name="name" type="xs:NCName">
 
2109
                                <xs:annotation>
 
2110
                                        <xs:documentation>
 
2111
                                        The name attribute is the text string name of this element. Optional attribute.
 
2112
                                        </xs:documentation>
 
2113
                                </xs:annotation>
 
2114
                        </xs:attribute>
 
2115
                </xs:complexType>
 
2116
        </xs:element>
 
2117
        <xs:element name="material">
 
2118
                <xs:annotation>
 
2119
                        <xs:documentation>
 
2120
                        Materials describe the visual appearance of a geometric object.
 
2121
                        </xs:documentation>
 
2122
                </xs:annotation>
 
2123
                <xs:complexType>
 
2124
                        <xs:sequence>
 
2125
                                <xs:element ref="asset" minOccurs="0">
 
2126
                                        <xs:annotation>
 
2127
                                                <xs:documentation>
 
2128
                                                The material element may contain an asset element.
 
2129
                                                </xs:documentation>
 
2130
                                        </xs:annotation>
 
2131
                                </xs:element>
 
2132
                                <xs:element ref="instance_effect">
 
2133
                                        <xs:annotation>
 
2134
                                                <xs:documentation>
 
2135
                                                The material must instance an effect.
 
2136
                                                </xs:documentation>
 
2137
                                        </xs:annotation>
 
2138
                                </xs:element>
 
2139
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2140
                                        <xs:annotation>
 
2141
                                                <xs:documentation>
 
2142
                                                The extra element may appear any number of times.
 
2143
                                                </xs:documentation>
 
2144
                                        </xs:annotation>
 
2145
                                </xs:element>
 
2146
                        </xs:sequence>
 
2147
                        <xs:attribute name="id" type="xs:ID">
 
2148
                                <xs:annotation>
 
2149
                                        <xs:documentation>
 
2150
                                        The id attribute is a text string containing the unique identifier of this element. This value 
 
2151
                                        must be unique within the instance document. Optional attribute.
 
2152
                                        </xs:documentation>
 
2153
                                </xs:annotation>
 
2154
                        </xs:attribute>
 
2155
                        <xs:attribute name="name" type="xs:NCName">
 
2156
                                <xs:annotation>
 
2157
                                        <xs:documentation>
 
2158
                                        The name attribute is the text string name of this element. Optional attribute.
 
2159
                                        </xs:documentation>
 
2160
                                </xs:annotation>
 
2161
                        </xs:attribute>
 
2162
                </xs:complexType>
 
2163
        </xs:element>
 
2164
        <!-- Object Elements -->
 
2165
        <xs:element name="camera">
 
2166
                <xs:annotation>
 
2167
                        <xs:documentation>
 
2168
                        The camera element declares a view into the scene hierarchy or scene graph. The camera contains 
 
2169
                        elements that describe the cameraā€™s optics and imager.
 
2170
                        </xs:documentation>
 
2171
                </xs:annotation>
 
2172
                <xs:complexType>
 
2173
                        <xs:sequence>
 
2174
                                <xs:element ref="asset" minOccurs="0">
 
2175
                                        <xs:annotation>
 
2176
                                                <xs:documentation>
 
2177
                                                The camera element may contain an asset element.
 
2178
                                                </xs:documentation>
 
2179
                                        </xs:annotation>
 
2180
                                </xs:element>
 
2181
                                <xs:element name="optics">
 
2182
                                        <xs:annotation>
 
2183
                                                <xs:documentation>
 
2184
                                                Optics represents the apparatus on a camera that projects the image onto the image sensor.
 
2185
                                                </xs:documentation>
 
2186
                                        </xs:annotation>
 
2187
                                        <xs:complexType>
 
2188
                                                <xs:sequence>
 
2189
                                                        <xs:element name="technique_common">
 
2190
                                                                <xs:annotation>
 
2191
                                                                        <xs:documentation>
 
2192
                                                                        The technique_common element specifies the optics information for the common profile 
 
2193
                                                                        which all COLLADA implementations need to support.
 
2194
                                                                        </xs:documentation>
 
2195
                                                                </xs:annotation>
 
2196
                                                                <xs:complexType>
 
2197
                                                                        <xs:choice>
 
2198
                                                                                <xs:element name="orthographic">
 
2199
                                                                                        <xs:annotation>
 
2200
                                                                                                <xs:documentation>
 
2201
                                                                                                The orthographic element describes the field of view of an orthographic camera.
 
2202
                                                                                                </xs:documentation>
 
2203
                                                                                        </xs:annotation>
 
2204
                                                                                        <xs:complexType>
 
2205
                                                                                                <xs:sequence>
 
2206
                                                                                                        <xs:choice>
 
2207
                                                                                                                <xs:sequence>
 
2208
                                                                                                                        <xs:element name="xmag" type="TargetableFloat">
 
2209
                                                                                                                                <xs:annotation>
 
2210
                                                                                                                                        <xs:documentation>
 
2211
                                                                                                                                        The xmag element contains a floating point number describing the horizontal 
 
2212
                                                                                                                                        magnification of the view.
 
2213
                                                                                                                                        </xs:documentation>
 
2214
                                                                                                                                </xs:annotation>
 
2215
                                                                                                                        </xs:element>
 
2216
                                                                                                                        <xs:choice minOccurs="0">
 
2217
                                                                                                                                <xs:element name="ymag" type="TargetableFloat">
 
2218
                                                                                                                                        <xs:annotation>
 
2219
                                                                                                                                                <xs:documentation>
 
2220
                                                                                                                                                The ymag element contains a floating point number describing the vertical 
 
2221
                                                                                                                                                magnification of the view.  It can also have a sid.
 
2222
                                                                                                                                                </xs:documentation>
 
2223
                                                                                                                                        </xs:annotation>
 
2224
                                                                                                                                </xs:element>
 
2225
                                                                                                                                <xs:element name="aspect_ratio" type="TargetableFloat">
 
2226
                                                                                                                                        <xs:annotation>
 
2227
                                                                                                                                                <xs:documentation>
 
2228
                                                                                                                                                The aspect_ratio element contains a floating point number describing the aspect ratio of 
 
2229
                                                                                                                                                the field of view. If the aspect_ratio element is not present the aspect ratio is to be 
 
2230
                                                                                                                                                calculated from the xmag or ymag elements and the current viewport.
 
2231
                                                                                                                                                </xs:documentation>
 
2232
                                                                                                                                        </xs:annotation>
 
2233
                                                                                                                                </xs:element>
 
2234
                                                                                                                        </xs:choice>
 
2235
                                                                                                                </xs:sequence>
 
2236
                                                                                                                <xs:sequence>
 
2237
                                                                                                                        <xs:element name="ymag" type="TargetableFloat"/>
 
2238
                                                                                                                        <xs:element name="aspect_ratio" type="TargetableFloat" minOccurs="0"/>
 
2239
                                                                                                                </xs:sequence>
 
2240
                                                                                                        </xs:choice>
 
2241
                                                                                                        <xs:element name="znear" type="TargetableFloat">
 
2242
                                                                                                                <xs:annotation>
 
2243
                                                                                                                        <xs:documentation>
 
2244
                                                                                                                        The znear element contains a floating point number that describes the distance to the near 
 
2245
                                                                                                                        clipping plane. The znear element must occur exactly once.
 
2246
                                                                                                                        </xs:documentation>
 
2247
                                                                                                                </xs:annotation>
 
2248
                                                                                                        </xs:element>
 
2249
                                                                                                        <xs:element name="zfar" type="TargetableFloat">
 
2250
                                                                                                                <xs:annotation>
 
2251
                                                                                                                        <xs:documentation>
 
2252
                                                                                                                        The zfar element contains a floating point number that describes the distance to the far 
 
2253
                                                                                                                        clipping plane. The zfar element must occur exactly once.
 
2254
                                                                                                                        </xs:documentation>
 
2255
                                                                                                                </xs:annotation>
 
2256
                                                                                                        </xs:element>
 
2257
                                                                                                </xs:sequence>
 
2258
                                                                                        </xs:complexType>
 
2259
                                                                                </xs:element>
 
2260
                                                                                <xs:element name="perspective">
 
2261
                                                                                        <xs:annotation>
 
2262
                                                                                                <xs:documentation>
 
2263
                                                                                                The perspective element describes the optics of a perspective camera.
 
2264
                                                                                                </xs:documentation>
 
2265
                                                                                        </xs:annotation>
 
2266
                                                                                        <xs:complexType>
 
2267
                                                                                                <xs:sequence>
 
2268
                                                                                                        <xs:choice>
 
2269
                                                                                                                <xs:sequence>
 
2270
                                                                                                                        <xs:element name="xfov" type="TargetableFloat">
 
2271
                                                                                                                                <xs:annotation>
 
2272
                                                                                                                                        <xs:documentation>
 
2273
                                                                                                                                        The xfov element contains a floating point number describing the horizontal field of view in degrees.
 
2274
                                                                                                                                        </xs:documentation>
 
2275
                                                                                                                                </xs:annotation>
 
2276
                                                                                                                        </xs:element>
 
2277
                                                                                                                        <xs:choice minOccurs="0">
 
2278
                                                                                                                                <xs:element name="yfov" type="TargetableFloat">
 
2279
                                                                                                                                        <xs:annotation>
 
2280
                                                                                                                                                <xs:documentation>
 
2281
                                                                                                                                                The yfov element contains a floating point number describing the verticle field of view in degrees.
 
2282
                                                                                                                                                </xs:documentation>
 
2283
                                                                                                                                        </xs:annotation>
 
2284
                                                                                                                                </xs:element>
 
2285
                                                                                                                                <xs:element name="aspect_ratio" type="TargetableFloat">
 
2286
                                                                                                                                        <xs:annotation>
 
2287
                                                                                                                                                <xs:documentation>
 
2288
                                                                                                                                                The aspect_ratio element contains a floating point number describing the aspect ratio of the field 
 
2289
                                                                                                                                                of view. If the aspect_ratio element is not present the aspect ratio is to be calculated from the 
 
2290
                                                                                                                                                xfov or yfov elements and the current viewport.
 
2291
                                                                                                                                                </xs:documentation>
 
2292
                                                                                                                                        </xs:annotation>
 
2293
                                                                                                                                </xs:element>
 
2294
                                                                                                                        </xs:choice>
 
2295
                                                                                                                </xs:sequence>
 
2296
                                                                                                                <xs:sequence>
 
2297
                                                                                                                        <xs:element name="yfov" type="TargetableFloat"/>
 
2298
                                                                                                                        <xs:element name="aspect_ratio" type="TargetableFloat" minOccurs="0"/>
 
2299
                                                                                                                </xs:sequence>
 
2300
                                                                                                        </xs:choice>
 
2301
                                                                                                        <xs:element name="znear" type="TargetableFloat">
 
2302
                                                                                                                <xs:annotation>
 
2303
                                                                                                                        <xs:documentation>
 
2304
                                                                                                                        The znear element contains a floating point number that describes the distance to the near 
 
2305
                                                                                                                        clipping plane. The znear element must occur exactly once.
 
2306
                                                                                                                        </xs:documentation>
 
2307
                                                                                                                </xs:annotation>
 
2308
                                                                                                        </xs:element>
 
2309
                                                                                                        <xs:element name="zfar" type="TargetableFloat">
 
2310
                                                                                                                <xs:annotation>
 
2311
                                                                                                                        <xs:documentation>
 
2312
                                                                                                                        The zfar element contains a floating point number that describes the distance to the far 
 
2313
                                                                                                                        clipping plane. The zfar element must occur exactly once.
 
2314
                                                                                                                        </xs:documentation>
 
2315
                                                                                                                </xs:annotation>
 
2316
                                                                                                        </xs:element>
 
2317
                                                                                                </xs:sequence>
 
2318
                                                                                        </xs:complexType>
 
2319
                                                                                </xs:element>
 
2320
                                                                        </xs:choice>
 
2321
                                                                </xs:complexType>
 
2322
                                                        </xs:element>
 
2323
                                                        <xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
 
2324
                                                                <xs:annotation>
 
2325
                                                                        <xs:documentation>
 
2326
                                                                        This element may contain any number of non-common profile techniques.
 
2327
                                                                        </xs:documentation>
 
2328
                                                                </xs:annotation>
 
2329
                                                        </xs:element>
 
2330
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2331
                                                                <xs:annotation>
 
2332
                                                                        <xs:documentation>
 
2333
                                                                        The extra element may appear any number of times.
 
2334
                                                                        </xs:documentation>
 
2335
                                                                </xs:annotation>
 
2336
                                                        </xs:element>
 
2337
                                                </xs:sequence>
 
2338
                                        </xs:complexType>
 
2339
                                </xs:element>
 
2340
                                <xs:element name="imager" minOccurs="0">
 
2341
                                        <xs:annotation>
 
2342
                                                <xs:documentation>
 
2343
                                                Imagers represent the image sensor of a camera (for example film or CCD).
 
2344
                                                </xs:documentation>
 
2345
                                        </xs:annotation>
 
2346
                                        <xs:complexType>
 
2347
                                                <xs:sequence>
 
2348
                                                        <xs:element ref="technique" maxOccurs="unbounded">
 
2349
                                                                <xs:annotation>
 
2350
                                                                        <xs:documentation>
 
2351
                                                                        This element may contain any number of non-common profile techniques.
 
2352
                                                                        There is no common technique for imager.
 
2353
                                                                        </xs:documentation>
 
2354
                                                                </xs:annotation>
 
2355
                                                        </xs:element>
 
2356
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2357
                                                                <xs:annotation>
 
2358
                                                                        <xs:documentation>
 
2359
                                                                        The extra element may appear any number of times.
 
2360
                                                                        </xs:documentation>
 
2361
                                                                </xs:annotation>
 
2362
                                                        </xs:element>
 
2363
                                                </xs:sequence>
 
2364
                                        </xs:complexType>
 
2365
                                </xs:element>
 
2366
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2367
                                        <xs:annotation>
 
2368
                                                <xs:documentation>
 
2369
                                                The extra element may appear any number of times.
 
2370
                                                </xs:documentation>
 
2371
                                        </xs:annotation>
 
2372
                                </xs:element>
 
2373
                        </xs:sequence>
 
2374
                        <xs:attribute name="id" type="xs:ID">
 
2375
                                <xs:annotation>
 
2376
                                        <xs:documentation>
 
2377
                                        The id attribute is a text string containing the unique identifier of this element. This value 
 
2378
                                        must be unique within the instance document. Optional attribute.
 
2379
                                        </xs:documentation>
 
2380
                                </xs:annotation>
 
2381
                        </xs:attribute>
 
2382
                        <xs:attribute name="name" type="xs:NCName">
 
2383
                                <xs:annotation>
 
2384
                                        <xs:documentation>
 
2385
                                        The name attribute is the text string name of this element. Optional attribute.
 
2386
                                        </xs:documentation>
 
2387
                                </xs:annotation>
 
2388
                        </xs:attribute>
 
2389
                </xs:complexType>
 
2390
        </xs:element>
 
2391
        <!-- Animation Elements -->
 
2392
        <xs:element name="animation">
 
2393
                <xs:annotation>
 
2394
                        <xs:documentation>
 
2395
                        The animation element categorizes the declaration of animation information. The animation 
 
2396
                        hierarchy contains elements that describe the animationā€™s key-frame data and sampler functions, 
 
2397
                        ordered in such a way to group together animations that should be executed together.
 
2398
                        </xs:documentation>
 
2399
                </xs:annotation>
 
2400
                <xs:complexType>
 
2401
                        <xs:sequence>
 
2402
                                <xs:element ref="asset" minOccurs="0">
 
2403
                                        <xs:annotation>
 
2404
                                                <xs:documentation>
 
2405
                                                The animation element may contain an asset element.
 
2406
                                                </xs:documentation>
 
2407
                                        </xs:annotation>
 
2408
                                </xs:element>
 
2409
                                <xs:choice>
 
2410
                                        <xs:sequence>
 
2411
                                                <xs:element ref="source" maxOccurs="unbounded">
 
2412
                                                        <xs:annotation>
 
2413
                                                                <xs:documentation>
 
2414
                                                                The animation element may contain any number of source elements.
 
2415
                                                                </xs:documentation>
 
2416
                                                        </xs:annotation>
 
2417
                                                </xs:element>
 
2418
                                                <xs:choice>
 
2419
                                                        <xs:sequence>
 
2420
                                                                <xs:element ref="sampler" maxOccurs="unbounded">
 
2421
                                                                        <xs:annotation>
 
2422
                                                                                <xs:documentation>
 
2423
                                                                                The animation element may contain any number of sampler elements.
 
2424
                                                                                </xs:documentation>
 
2425
                                                                        </xs:annotation>
 
2426
                                                                </xs:element>
 
2427
                                                                <xs:element ref="channel" maxOccurs="unbounded">
 
2428
                                                                        <xs:annotation>
 
2429
                                                                                <xs:documentation>
 
2430
                                                                                The animation element may contain any number of channel elements.
 
2431
                                                                                </xs:documentation>
 
2432
                                                                        </xs:annotation>
 
2433
                                                                </xs:element>
 
2434
                                                                <xs:element ref="animation" minOccurs="0" maxOccurs="unbounded">
 
2435
                                                                        <xs:annotation>
 
2436
                                                                                <xs:documentation>
 
2437
                                                                                The animation may be hierarchical and may contain any number of other animation elements.
 
2438
                                                                                </xs:documentation>
 
2439
                                                                        </xs:annotation>
 
2440
                                                                </xs:element>
 
2441
                                                        </xs:sequence>
 
2442
                                                        <xs:element ref="animation" maxOccurs="unbounded"/>
 
2443
                                                </xs:choice>
 
2444
                                        </xs:sequence>
 
2445
                                        <xs:sequence>
 
2446
                                                <xs:element ref="sampler" maxOccurs="unbounded"/>
 
2447
                                                <xs:element ref="channel" maxOccurs="unbounded"/>
 
2448
                                                <xs:element ref="animation" minOccurs="0" maxOccurs="unbounded"/>
 
2449
                                        </xs:sequence>
 
2450
                                        <xs:element ref="animation" maxOccurs="unbounded"/>
 
2451
                                </xs:choice>
 
2452
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2453
                                        <xs:annotation>
 
2454
                                                <xs:documentation>
 
2455
                                                The extra element may appear any number of times.
 
2456
                                                </xs:documentation>
 
2457
                                        </xs:annotation>
 
2458
                                </xs:element>
 
2459
                        </xs:sequence>
 
2460
                        <xs:attribute name="id" type="xs:ID">
 
2461
                                <xs:annotation>
 
2462
                                        <xs:documentation>
 
2463
                                        The id attribute is a text string containing the unique identifier of this element. This value 
 
2464
                                        must be unique within the instance document. Optional attribute.
 
2465
                                        </xs:documentation>
 
2466
                                </xs:annotation>
 
2467
                        </xs:attribute>
 
2468
                        <xs:attribute name="name" type="xs:NCName">
 
2469
                                <xs:annotation>
 
2470
                                        <xs:documentation>
 
2471
                                        The name attribute is the text string name of this element. Optional attribute.
 
2472
                                        </xs:documentation>
 
2473
                                </xs:annotation>
 
2474
                        </xs:attribute>
 
2475
                </xs:complexType>
 
2476
        </xs:element>
 
2477
        <xs:element name="animation_clip">
 
2478
                <xs:annotation>
 
2479
                        <xs:documentation>
 
2480
                        The animation_clip element defines a section of the animation curves to be used together as 
 
2481
                        an animation clip.
 
2482
                        </xs:documentation>
 
2483
                </xs:annotation>
 
2484
                <xs:complexType>
 
2485
                        <xs:sequence>
 
2486
                                <xs:element ref="asset" minOccurs="0">
 
2487
                                        <xs:annotation>
 
2488
                                                <xs:documentation>
 
2489
                                                The animation_clip element may contain an asset element.
 
2490
                                                </xs:documentation>
 
2491
                                        </xs:annotation>
 
2492
                                </xs:element>
 
2493
                                <xs:element name="instance_animation" type="InstanceWithExtra" maxOccurs="unbounded">
 
2494
                                        <xs:annotation>
 
2495
                                                <xs:documentation>
 
2496
                                                The animation_clip must instance at least one animation element.
 
2497
                                                </xs:documentation>
 
2498
                                        </xs:annotation>
 
2499
                                </xs:element>
 
2500
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2501
                                        <xs:annotation>
 
2502
                                                <xs:documentation>
 
2503
                                                The extra element may appear any number of times.
 
2504
                                                </xs:documentation>
 
2505
                                        </xs:annotation>
 
2506
                                </xs:element>
 
2507
                        </xs:sequence>
 
2508
                        <xs:attribute name="id" type="xs:ID">
 
2509
                                <xs:annotation>
 
2510
                                        <xs:documentation>
 
2511
                                        The id attribute is a text string containing the unique identifier of this element. 
 
2512
                                        This value must be unique within the instance document. Optional attribute.
 
2513
                                        </xs:documentation>
 
2514
                                </xs:annotation>
 
2515
                        </xs:attribute>
 
2516
                        <xs:attribute name="name" type="xs:NCName">
 
2517
                                <xs:annotation>
 
2518
                                        <xs:documentation>
 
2519
                                        The name attribute is the text string name of this element. Optional attribute.
 
2520
                                        </xs:documentation>
 
2521
                                </xs:annotation>
 
2522
                        </xs:attribute>
 
2523
                        <xs:attribute name="start" type="xs:double" default="0.0">
 
2524
                                <xs:annotation>
 
2525
                                        <xs:documentation>
 
2526
                                        The start attribute is the time in seconds of the beginning of the clip.  This time is 
 
2527
                                        the same as that used in the key-frame data and is used to determine which set of 
 
2528
                                        key-frames will be included in the clip.  The start time does not specify when the clip 
 
2529
                                        will be played.  If the time falls between two keyframes of a referenced animation, an 
 
2530
                                        interpolated value should be used.  The default value is 0.0.  Optional attribute.
 
2531
                                        </xs:documentation>
 
2532
                                </xs:annotation>
 
2533
                        </xs:attribute>
 
2534
                        <xs:attribute name="end" type="xs:double">
 
2535
                                <xs:annotation>
 
2536
                                        <xs:documentation>
 
2537
                                        The end attribute is the time in seconds of the end of the clip.  This is used in the 
 
2538
                                        same way as the start time.  If end is not specified, the value is taken to be the end 
 
2539
                                        time of the longest animation.  Optional attribute.
 
2540
                                        </xs:documentation>
 
2541
                                </xs:annotation>
 
2542
                        </xs:attribute>
 
2543
                </xs:complexType>
 
2544
        </xs:element>
 
2545
        <xs:element name="channel">
 
2546
                <xs:annotation>
 
2547
                        <xs:documentation>
 
2548
                        The channel element declares an output channel of an animation.
 
2549
                        </xs:documentation>
 
2550
                </xs:annotation>
 
2551
                <xs:complexType>
 
2552
                        <xs:attribute name="source" type="URIFragmentType" use="required">
 
2553
                                <xs:annotation>
 
2554
                                        <xs:documentation>
 
2555
                                        The source attribute indicates the location of the sampler using a URL expression. 
 
2556
                                        The sampler must be declared within the same document. Required attribute.
 
2557
                                        </xs:documentation>
 
2558
                                </xs:annotation>
 
2559
                        </xs:attribute>
 
2560
                        <xs:attribute name="target" type="xs:token" use="required">
 
2561
                                <xs:annotation>
 
2562
                                        <xs:documentation>
 
2563
                                        The target attribute indicates the location of the element bound to the output of the sampler. 
 
2564
                                        This text string is a path-name following a simple syntax described in Address Syntax. 
 
2565
                                        Required attribute.
 
2566
                                        </xs:documentation>
 
2567
                                </xs:annotation>
 
2568
                        </xs:attribute>
 
2569
                </xs:complexType>
 
2570
        </xs:element>
 
2571
        <xs:element name="sampler">
 
2572
                <xs:annotation>
 
2573
                        <xs:documentation>
 
2574
                        The sampler element declares an N-dimensional function used for animation. Animation function curves 
 
2575
                        are represented by 1-D sampler elements in COLLADA. The sampler defines sampling points and how to 
 
2576
                        interpolate between them.
 
2577
                        </xs:documentation>
 
2578
                </xs:annotation>
 
2579
                <xs:complexType>
 
2580
                        <xs:sequence>
 
2581
                                <xs:element name="input" type="InputLocal" maxOccurs="unbounded">
 
2582
                                        <xs:annotation>
 
2583
                                                <xs:documentation>
 
2584
                                                The input element must occur at least one time. These inputs are local inputs.
 
2585
                                                </xs:documentation>
 
2586
                                        </xs:annotation>
 
2587
                                </xs:element>
 
2588
                        </xs:sequence>
 
2589
                        <xs:attribute name="id" type="xs:ID">
 
2590
                                <xs:annotation>
 
2591
                                        <xs:documentation>
 
2592
                                        The id attribute is a text string containing the unique identifier of this element. This value 
 
2593
                                        must be unique within the instance document. Optional attribute.
 
2594
                                        </xs:documentation>
 
2595
                                </xs:annotation>
 
2596
                        </xs:attribute>
 
2597
                </xs:complexType>
 
2598
        </xs:element>
 
2599
        <!-- Controller Elements -->
 
2600
        <xs:element name="controller">
 
2601
                <xs:annotation>
 
2602
                        <xs:documentation>
 
2603
                        The controller element categorizes the declaration of generic control information.
 
2604
                        A controller is a device or mechanism that manages and directs the operations of another object.
 
2605
                        </xs:documentation>
 
2606
                </xs:annotation>
 
2607
                <xs:complexType>
 
2608
                        <xs:sequence>
 
2609
                                <xs:element ref="asset" minOccurs="0">
 
2610
                                        <xs:annotation>
 
2611
                                                <xs:documentation>
 
2612
                                                The controller element may contain an asset element.
 
2613
                                                </xs:documentation>
 
2614
                                        </xs:annotation>
 
2615
                                </xs:element>
 
2616
                                <xs:choice>
 
2617
                                        <xs:element ref="skin">
 
2618
                                                <xs:annotation>
 
2619
                                                        <xs:documentation>
 
2620
                                                        The controller element may contain either a skin element or a morph element.
 
2621
                                                        </xs:documentation>
 
2622
                                                </xs:annotation>
 
2623
                                        </xs:element>
 
2624
                                        <xs:element ref="morph">
 
2625
                                                <xs:annotation>
 
2626
                                                        <xs:documentation>
 
2627
                                                        The controller element may contain either a skin element or a morph element.
 
2628
                                                        </xs:documentation>
 
2629
                                                </xs:annotation>
 
2630
                                        </xs:element>
 
2631
                                </xs:choice>
 
2632
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2633
                                        <xs:annotation>
 
2634
                                                <xs:documentation>
 
2635
                                                The extra element may appear any number of times.
 
2636
                                                </xs:documentation>
 
2637
                                        </xs:annotation>
 
2638
                                </xs:element>
 
2639
                        </xs:sequence>
 
2640
                        <xs:attribute name="id" type="xs:ID">
 
2641
                                <xs:annotation>
 
2642
                                        <xs:documentation>
 
2643
                                        The id attribute is a text string containing the unique identifier of this element. This value 
 
2644
                                        must be unique within the instance document. Optional attribute.
 
2645
                                        </xs:documentation>
 
2646
                                </xs:annotation>
 
2647
                        </xs:attribute>
 
2648
                        <xs:attribute name="name" type="xs:NCName">
 
2649
                                <xs:annotation>
 
2650
                                        <xs:documentation>
 
2651
                                        The name attribute is the text string name of this element. Optional attribute.
 
2652
                                        </xs:documentation>
 
2653
                                </xs:annotation>
 
2654
                        </xs:attribute>
 
2655
                </xs:complexType>
 
2656
        </xs:element>
 
2657
        <xs:element name="skin">
 
2658
                <xs:annotation>
 
2659
                        <xs:documentation>
 
2660
                        The skin element contains vertex and primitive information sufficient to describe blend-weight skinning.
 
2661
                        </xs:documentation>
 
2662
                </xs:annotation>
 
2663
                <xs:complexType>
 
2664
                        <xs:sequence>
 
2665
                                <xs:element name="bind_shape_matrix" type="float4x4" minOccurs="0">
 
2666
                                        <xs:annotation>
 
2667
                                                <xs:documentation>
 
2668
                                                This provides extra information about the position and orientation of the base mesh before binding. 
 
2669
                                                If bind_shape_matrix is not specified then an identity matrix may be used as the bind_shape_matrix.
 
2670
                                                The bind_shape_matrix element may occur zero or one times.
 
2671
                                                </xs:documentation>
 
2672
                                        </xs:annotation>
 
2673
                                </xs:element>
 
2674
                                <xs:element ref="source" minOccurs="3" maxOccurs="unbounded">
 
2675
                                        <xs:annotation>
 
2676
                                                <xs:documentation>
 
2677
                                                The skin element must contain at least three source elements.
 
2678
                                                </xs:documentation>
 
2679
                                        </xs:annotation>
 
2680
                                </xs:element>
 
2681
                                <xs:element name="joints">
 
2682
                                        <xs:annotation>
 
2683
                                                <xs:documentation>
 
2684
                                                The joints element associates joint, or skeleton, nodes with attribute data.  
 
2685
                                                In COLLADA, this is specified by the inverse bind matrix of each joint (influence) in the skeleton.
 
2686
                                                </xs:documentation>
 
2687
                                        </xs:annotation>
 
2688
                                        <xs:complexType>
 
2689
                                                <xs:sequence>
 
2690
                                                        <xs:element name="input" type="InputLocal" minOccurs="2" maxOccurs="unbounded">
 
2691
                                                                <xs:annotation>
 
2692
                                                                        <xs:documentation>
 
2693
                                                                        The input element must occur at least twice. These inputs are local inputs.
 
2694
                                                                        </xs:documentation>
 
2695
                                                                </xs:annotation>
 
2696
                                                        </xs:element>
 
2697
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2698
                                                                <xs:annotation>
 
2699
                                                                        <xs:documentation>
 
2700
                                                                        The extra element may appear any number of times.
 
2701
                                                                        </xs:documentation>
 
2702
                                                                </xs:annotation>
 
2703
                                                        </xs:element>
 
2704
                                                </xs:sequence>
 
2705
                                        </xs:complexType>
 
2706
                                </xs:element>
 
2707
                                <xs:element name="vertex_weights">
 
2708
                                        <xs:annotation>
 
2709
                                                <xs:documentation>
 
2710
                                                The vertex_weights element associates a set of joint-weight pairs with each vertex in the base mesh.
 
2711
                                                </xs:documentation>
 
2712
                                        </xs:annotation>
 
2713
                                        <xs:complexType>
 
2714
                                                <xs:sequence>
 
2715
                                                        <xs:element name="input" type="InputLocalOffset" minOccurs="2" maxOccurs="unbounded">
 
2716
                                                                <xs:annotation>
 
2717
                                                                        <xs:documentation>
 
2718
                                                                        The input element must occur at least twice.
 
2719
                                                                        </xs:documentation>
 
2720
                                                                </xs:annotation>
 
2721
                                                        </xs:element>
 
2722
                                                        <xs:element name="vcount" type="ListOfUInts" minOccurs="0">
 
2723
                                                                <xs:annotation>
 
2724
                                                                        <xs:documentation>
 
2725
                                                                        The vcount element contains a list of integers describing the number of influences for each vertex.
 
2726
                                                                        The vcount element may occur once.
 
2727
                                                                        </xs:documentation>
 
2728
                                                                </xs:annotation>
 
2729
                                                        </xs:element>
 
2730
                                                        <xs:element name="v" type="ListOfInts" minOccurs="0">
 
2731
                                                                <xs:annotation>
 
2732
                                                                        <xs:documentation>
 
2733
                                                                        The v element describes which bones and attributes are associated with each vertex.  An index 
 
2734
                                                                        of ā€“1 into the array of joints refers to the bind shape.  Weights should be normalized before use.
 
2735
                                                                        The v element must occur zero or one times.
 
2736
                                                                        </xs:documentation>
 
2737
                                                                </xs:annotation>
 
2738
                                                        </xs:element>
 
2739
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2740
                                                                <xs:annotation>
 
2741
                                                                        <xs:documentation>
 
2742
                                                                        The extra element may appear any number of times.
 
2743
                                                                        </xs:documentation>
 
2744
                                                                </xs:annotation>
 
2745
                                                        </xs:element>
 
2746
                                                </xs:sequence>
 
2747
                                                <xs:attribute name="count" type="uint" use="required">
 
2748
                                                        <xs:annotation>
 
2749
                                                                <xs:documentation>
 
2750
                                                                The count attribute describes the number of vertices in the base mesh. Required element. 
 
2751
                                                                </xs:documentation>
 
2752
                                                        </xs:annotation>
 
2753
                                                </xs:attribute>
 
2754
                                        </xs:complexType>
 
2755
                                </xs:element>
 
2756
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2757
                                        <xs:annotation>
 
2758
                                                <xs:documentation>
 
2759
                                                The extra element may appear any number of times.
 
2760
                                                </xs:documentation>
 
2761
                                        </xs:annotation>
 
2762
                                </xs:element>
 
2763
                        </xs:sequence>
 
2764
                        <xs:attribute name="source" type="xs:anyURI" use="required">
 
2765
                                <xs:annotation>
 
2766
                                        <xs:documentation>
 
2767
                                        The source attribute contains a URI reference to the base mesh, (a static mesh or a morphed mesh).
 
2768
                                        This also provides the bind-shape of the skinned mesh.  Required attribute.
 
2769
                                        </xs:documentation>
 
2770
                                </xs:annotation>
 
2771
                        </xs:attribute>
 
2772
                </xs:complexType>
 
2773
        </xs:element>
 
2774
        <xs:element name="morph">
 
2775
                <xs:annotation>
 
2776
                        <xs:documentation>
 
2777
                        The morph element describes the data required to blend between sets of static meshes. Each 
 
2778
                        possible mesh that can be blended (a morph target) must be specified.
 
2779
                        </xs:documentation>
 
2780
                </xs:annotation>
 
2781
                <xs:complexType>
 
2782
                        <xs:sequence>
 
2783
                                <xs:element ref="source" minOccurs="2" maxOccurs="unbounded">
 
2784
                                        <xs:annotation>
 
2785
                                                <xs:documentation>
 
2786
                                                The morph element must contain at least two source elements.
 
2787
                                                </xs:documentation>
 
2788
                                        </xs:annotation>
 
2789
                                </xs:element>
 
2790
                                <xs:element name="targets">
 
2791
                                        <xs:annotation>
 
2792
                                                <xs:documentation>
 
2793
                                                The targets element declares the morph targets, their weights and any user defined attributes 
 
2794
                                                associated with them.
 
2795
                                                </xs:documentation>
 
2796
                                        </xs:annotation>
 
2797
                                        <xs:complexType>
 
2798
                                                <xs:sequence>
 
2799
                                                        <xs:element name="input" type="InputLocal" minOccurs="2" maxOccurs="unbounded">
 
2800
                                                                <xs:annotation>
 
2801
                                                                        <xs:documentation>
 
2802
                                                                        The input element must occur at least twice. These inputs are local inputs.
 
2803
                                                                        </xs:documentation>
 
2804
                                                                </xs:annotation>
 
2805
                                                        </xs:element>
 
2806
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2807
                                                                <xs:annotation>
 
2808
                                                                        <xs:documentation>
 
2809
                                                                        The extra element may appear any number of times.
 
2810
                                                                        </xs:documentation>
 
2811
                                                                </xs:annotation>
 
2812
                                                        </xs:element>
 
2813
                                                </xs:sequence>
 
2814
                                        </xs:complexType>
 
2815
                                </xs:element>
 
2816
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
2817
                                        <xs:annotation>
 
2818
                                                <xs:documentation>
 
2819
                                                The extra element may appear any number of times.
 
2820
                                                </xs:documentation>
 
2821
                                        </xs:annotation>
 
2822
                                </xs:element>
 
2823
                        </xs:sequence>
 
2824
                        <xs:attribute name="method" type="MorphMethodType" default="NORMALIZED">
 
2825
                                <xs:annotation>
 
2826
                                        <xs:documentation>
 
2827
                                        The method attribute specifies the which blending technique to use. The accepted values are 
 
2828
                                        NORMALIZED, and RELATIVE. The default value if not specified is NORMALIZED.  Optional attribute.
 
2829
                                        </xs:documentation>
 
2830
                                </xs:annotation>
 
2831
                        </xs:attribute>
 
2832
                        <xs:attribute name="source" type="xs:anyURI" use="required">
 
2833
                                <xs:annotation>
 
2834
                                        <xs:documentation>
 
2835
                                        The source attribute indicates the base mesh. Required attribute.
 
2836
                                        </xs:documentation>
 
2837
                                </xs:annotation>
 
2838
                        </xs:attribute>
 
2839
                </xs:complexType>
 
2840
        </xs:element>
 
2841
        <!-- Meta Elements -->
 
2842
        <xs:element name="asset">
 
2843
                <xs:annotation>
 
2844
                        <xs:documentation>
 
2845
                        The asset element defines asset management information regarding its parent element.
 
2846
                        </xs:documentation>
 
2847
                </xs:annotation>
 
2848
                <xs:complexType>
 
2849
                        <xs:sequence>
 
2850
                                <xs:element name="contributor" minOccurs="0" maxOccurs="unbounded">
 
2851
                                        <xs:annotation>
 
2852
                                                <xs:documentation>
 
2853
                                                The contributor element defines authoring information for asset management
 
2854
                                                </xs:documentation>
 
2855
                                        </xs:annotation>
 
2856
                                        <xs:complexType>
 
2857
                                                <xs:sequence>
 
2858
                                                        <xs:element name="author" type="xs:string" minOccurs="0">
 
2859
                                                                <xs:annotation>
 
2860
                                                                        <xs:documentation>
 
2861
                                                                        The author element contains a string with the author's name.
 
2862
                                                                        There may be only one author element.
 
2863
                                                                        </xs:documentation>
 
2864
                                                                </xs:annotation>
 
2865
                                                        </xs:element>
 
2866
                                                        <xs:element name="authoring_tool" type="xs:string" minOccurs="0">
 
2867
                                                                <xs:annotation>
 
2868
                                                                        <xs:documentation>
 
2869
                                                                        The authoring_tool element contains a string with the authoring tool's name.
 
2870
                                                                        There may be only one authoring_tool element.
 
2871
                                                                        </xs:documentation>
 
2872
                                                                </xs:annotation>
 
2873
                                                        </xs:element>
 
2874
                                                        <xs:element name="comments" type="xs:string" minOccurs="0">
 
2875
                                                                <xs:annotation>
 
2876
                                                                        <xs:documentation>
 
2877
                                                                        The comments element contains a string with comments from this contributor.
 
2878
                                                                        There may be only one comments element.
 
2879
                                                                        </xs:documentation>
 
2880
                                                                </xs:annotation>
 
2881
                                                        </xs:element>
 
2882
                                                        <xs:element name="copyright" type="xs:string" minOccurs="0">
 
2883
                                                                <xs:annotation>
 
2884
                                                                        <xs:documentation>
 
2885
                                                                        The copyright element contains a string with copyright information.
 
2886
                                                                        There may be only one copyright element.
 
2887
                                                                        </xs:documentation>
 
2888
                                                                </xs:annotation>
 
2889
                                                        </xs:element>
 
2890
                                                        <xs:element name="source_data" type="xs:anyURI" minOccurs="0">
 
2891
                                                                <xs:annotation>
 
2892
                                                                        <xs:documentation>
 
2893
                                                                        The source_data element contains a URI reference to the source data used for this asset.
 
2894
                                                                        There may be only one source_data element.
 
2895
                                                                        </xs:documentation>
 
2896
                                                                </xs:annotation>
 
2897
                                                        </xs:element>
 
2898
                                                </xs:sequence>
 
2899
                                        </xs:complexType>
 
2900
                                </xs:element>
 
2901
                                <xs:element name="created" type="xs:dateTime">
 
2902
                                        <xs:annotation>
 
2903
                                                <xs:documentation>
 
2904
                                                The created element contains the date and time that the parent element was created and is 
 
2905
                                                represented in an ISO 8601 format.  The created element may appear zero or one time.
 
2906
                                                </xs:documentation>
 
2907
                                        </xs:annotation>
 
2908
                                </xs:element>
 
2909
                                <xs:element name="keywords" type="xs:string" minOccurs="0">
 
2910
                                        <xs:annotation>
 
2911
                                                <xs:documentation>
 
2912
                                                The keywords element contains a list of words used as search criteria for the parent element. 
 
2913
                                                The keywords element may appear zero or more times.
 
2914
                                                </xs:documentation>
 
2915
                                        </xs:annotation>
 
2916
                                </xs:element>
 
2917
                                <xs:element name="modified" type="xs:dateTime">
 
2918
                                        <xs:annotation>
 
2919
                                                <xs:documentation>
 
2920
                                                The modified element contains the date and time that the parent element was last modified and 
 
2921
                                                represented in an ISO 8601 format. The modified element may appear zero or one time.
 
2922
                                                </xs:documentation>
 
2923
                                        </xs:annotation>
 
2924
                                </xs:element>
 
2925
                                <xs:element name="revision" type="xs:string" minOccurs="0">
 
2926
                                        <xs:annotation>
 
2927
                                                <xs:documentation>
 
2928
                                                The revision element contains the revision information for the parent element. The revision 
 
2929
                                                element may appear zero or one time.
 
2930
                                                </xs:documentation>
 
2931
                                        </xs:annotation>
 
2932
                                </xs:element>
 
2933
                                <xs:element name="subject" type="xs:string" minOccurs="0">
 
2934
                                        <xs:annotation>
 
2935
                                                <xs:documentation>
 
2936
                                                The subject element contains a description of the topical subject of the parent element. The 
 
2937
                                                subject element may appear zero or one time.
 
2938
                                                </xs:documentation>
 
2939
                                        </xs:annotation>
 
2940
                                </xs:element>
 
2941
                                <xs:element name="title" type="xs:string" minOccurs="0">
 
2942
                                        <xs:annotation>
 
2943
                                                <xs:documentation>
 
2944
                                                The title element contains the title information for the parent element. The title element may 
 
2945
                                                appear zero or one time.
 
2946
                                                </xs:documentation>
 
2947
                                        </xs:annotation>
 
2948
                                </xs:element>
 
2949
                                <xs:element name="unit" minOccurs="0">
 
2950
                                        <xs:annotation>
 
2951
                                                <xs:documentation>
 
2952
                                                The unit element contains descriptive information about unit of measure. It has attributes for 
 
2953
                                                the name of the unit and the measurement with respect to the meter. The unit element may appear 
 
2954
                                                zero or one time.
 
2955
                                                </xs:documentation>
 
2956
                                        </xs:annotation>
 
2957
                                        <xs:complexType>
 
2958
                                                <xs:attribute name="meter" type="float" default="1.0">
 
2959
                                                        <xs:annotation>
 
2960
                                                                <xs:documentation>
 
2961
                                                                The meter attribute specifies the measurement with respect to the meter. The default 
 
2962
                                                                value for the meter attribute is ā€œ1.0ā€.
 
2963
                                                                </xs:documentation>
 
2964
                                                        </xs:annotation>
 
2965
                                                </xs:attribute>
 
2966
                                                <xs:attribute name="name" type="xs:NMTOKEN" default="meter">
 
2967
                                                        <xs:annotation>
 
2968
                                                                <xs:documentation>
 
2969
                                                                The name attribute specifies the name of the unit. The default value for the name 
 
2970
                                                                attribute is ā€œmeterā€.
 
2971
                                                                </xs:documentation>
 
2972
                                                        </xs:annotation>
 
2973
                                                </xs:attribute>
 
2974
                                        </xs:complexType>
 
2975
                                </xs:element>
 
2976
                                <xs:element name="up_axis" type="UpAxisType" default="Y_UP" minOccurs="0">
 
2977
                                        <xs:annotation>
 
2978
                                                <xs:documentation>
 
2979
                                                The up_axis element contains descriptive information about coordinate system of the geometric 
 
2980
                                                data. All coordinates are right-handed by definition. This element specifies which axis is 
 
2981
                                                considered up. The default is the Y-axis. The up_axis element may appear zero or one time.
 
2982
                                                </xs:documentation>
 
2983
                                        </xs:annotation>
 
2984
                                </xs:element>
 
2985
                        </xs:sequence>
 
2986
                </xs:complexType>
 
2987
        </xs:element>
 
2988
        <xs:element name="extra">
 
2989
                <xs:annotation>
 
2990
                        <xs:documentation>
 
2991
                        The extra element declares additional information regarding its parent element.
 
2992
                        </xs:documentation>
 
2993
                </xs:annotation>
 
2994
                <xs:complexType>
 
2995
                        <xs:sequence>
 
2996
                                <xs:element ref="asset" minOccurs="0">
 
2997
                                        <xs:annotation>
 
2998
                                                <xs:documentation>
 
2999
                                                The extra element may contain an asset element.
 
3000
                                                </xs:documentation>
 
3001
                                        </xs:annotation>
 
3002
                                </xs:element>
 
3003
                                <xs:element ref="technique" maxOccurs="unbounded">
 
3004
                                        <xs:annotation>
 
3005
                                                <xs:documentation>
 
3006
                                                This element must contain at least one non-common profile technique.
 
3007
                                                </xs:documentation>
 
3008
                                        </xs:annotation>
 
3009
                                </xs:element>
 
3010
                        </xs:sequence>
 
3011
                        <xs:attribute name="id" type="xs:ID">
 
3012
                                <xs:annotation>
 
3013
                                        <xs:documentation>
 
3014
                                        The id attribute is a text string containing the unique identifier of this element. This value 
 
3015
                                        must be unique within the instance document. Optional attribute.
 
3016
                                        </xs:documentation>
 
3017
                                </xs:annotation>
 
3018
                        </xs:attribute>
 
3019
                        <xs:attribute name="name" type="xs:NCName">
 
3020
                                <xs:annotation>
 
3021
                                        <xs:documentation>
 
3022
                                        The name attribute is the text string name of this element. Optional attribute.
 
3023
                                        </xs:documentation>
 
3024
                                </xs:annotation>
 
3025
                        </xs:attribute>
 
3026
                        <xs:attribute name="type" type="xs:NMTOKEN">
 
3027
                                <xs:annotation>
 
3028
                                        <xs:documentation>
 
3029
                                        The type attribute indicates the type of the value data. This text string must be understood by 
 
3030
                                        the application. Optional attribute.
 
3031
                                        </xs:documentation>
 
3032
                                </xs:annotation>
 
3033
                        </xs:attribute>
 
3034
                </xs:complexType>
 
3035
        </xs:element>
 
3036
        <xs:element name="technique">
 
3037
                <xs:annotation>
 
3038
                        <xs:appinfo>enable-xmlns</xs:appinfo>
 
3039
                        <xs:documentation>
 
3040
                        The technique element declares the information used to process some portion of the content. Each 
 
3041
                        technique conforms to an associated profile. Techniques generally act as a ā€œswitchā€. If more than 
 
3042
                        one is present for a particular portion of content, on import, one or the other is picked, but 
 
3043
                        usually not both. Selection should be based on which profile the importing application can support.
 
3044
                        Techniques contain application data and programs, making them assets that can be managed as a unit.
 
3045
                        </xs:documentation>
 
3046
                </xs:annotation>
 
3047
                <xs:complexType>
 
3048
                        <xs:sequence>
 
3049
                                <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
 
3050
                        </xs:sequence>
 
3051
                        <xs:attribute name="profile" type="xs:NMTOKEN" use="required">
 
3052
                                <xs:annotation>
 
3053
                                        <xs:documentation>
 
3054
                                        The profile attribute indicates the type of profile. This is a vendor defined character 
 
3055
                                        string that indicates the platform or capability target for the technique. Required attribute.
 
3056
                                        </xs:documentation>
 
3057
                                </xs:annotation>
 
3058
                        </xs:attribute>
 
3059
                </xs:complexType>
 
3060
        </xs:element>
 
3061
        <!-- Hierarchical Elements -->
 
3062
        <xs:element name="node">
 
3063
                <xs:annotation>
 
3064
                        <xs:documentation>
 
3065
                        Nodes embody the hierarchical relationship of elements in the scene.
 
3066
                        </xs:documentation>
 
3067
                </xs:annotation>
 
3068
                <xs:complexType>
 
3069
                        <xs:sequence>
 
3070
                                <xs:element ref="asset" minOccurs="0">
 
3071
                                        <xs:annotation>
 
3072
                                                <xs:documentation>
 
3073
                                                The node element may contain an asset element.
 
3074
                                                </xs:documentation>
 
3075
                                        </xs:annotation>
 
3076
                                </xs:element>
 
3077
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
3078
                                        <xs:element ref="lookat">
 
3079
                                                <xs:annotation>
 
3080
                                                        <xs:documentation>
 
3081
                                                        The node element may contain any number of lookat elements.
 
3082
                                                        </xs:documentation>
 
3083
                                                </xs:annotation>
 
3084
                                        </xs:element>
 
3085
                                        <xs:element ref="matrix">
 
3086
                                                <xs:annotation>
 
3087
                                                        <xs:documentation>
 
3088
                                                        The node element may contain any number of matrix elements.
 
3089
                                                        </xs:documentation>
 
3090
                                                </xs:annotation>
 
3091
                                        </xs:element>
 
3092
                                        <xs:element ref="rotate">
 
3093
                                                <xs:annotation>
 
3094
                                                        <xs:documentation>
 
3095
                                                        The node element may contain any number of rotate elements.
 
3096
                                                        </xs:documentation>
 
3097
                                                </xs:annotation>
 
3098
                                        </xs:element>
 
3099
                                        <xs:element ref="scale">
 
3100
                                                <xs:annotation>
 
3101
                                                        <xs:documentation>
 
3102
                                                        The node element may contain any number of scale elements.
 
3103
                                                        </xs:documentation>
 
3104
                                                </xs:annotation>
 
3105
                                        </xs:element>
 
3106
                                        <xs:element ref="skew">
 
3107
                                                <xs:annotation>
 
3108
                                                        <xs:documentation>
 
3109
                                                        The node element may contain any number of skew elements.
 
3110
                                                        </xs:documentation>
 
3111
                                                </xs:annotation>
 
3112
                                        </xs:element>
 
3113
                                        <xs:element ref="translate">
 
3114
                                                <xs:annotation>
 
3115
                                                        <xs:documentation>
 
3116
                                                        The node element may contain any number of translate elements.
 
3117
                                                        </xs:documentation>
 
3118
                                                </xs:annotation>
 
3119
                                        </xs:element>
 
3120
                                </xs:choice>
 
3121
                                <xs:element ref="instance_camera" minOccurs="0" maxOccurs="unbounded">
 
3122
                                        <xs:annotation>
 
3123
                                                <xs:documentation>
 
3124
                                                The node element may instance any number of camera objects.
 
3125
                                                </xs:documentation>
 
3126
                                        </xs:annotation>
 
3127
                                </xs:element>
 
3128
                                <xs:element ref="instance_controller" minOccurs="0" maxOccurs="unbounded">
 
3129
                                        <xs:annotation>
 
3130
                                                <xs:documentation>
 
3131
                                                The node element may instance any number of controller objects.
 
3132
                                                </xs:documentation>
 
3133
                                        </xs:annotation>
 
3134
                                </xs:element>
 
3135
                                <xs:element ref="instance_geometry" minOccurs="0" maxOccurs="unbounded">
 
3136
                                        <xs:annotation>
 
3137
                                                <xs:documentation>
 
3138
                                                The node element may instance any number of geometry objects.
 
3139
                                                </xs:documentation>
 
3140
                                        </xs:annotation>
 
3141
                                </xs:element>
 
3142
                                <xs:element ref="instance_light" minOccurs="0" maxOccurs="unbounded">
 
3143
                                        <xs:annotation>
 
3144
                                                <xs:documentation>
 
3145
                                                The node element may instance any number of light objects.
 
3146
                                                </xs:documentation>
 
3147
                                        </xs:annotation>
 
3148
                                </xs:element>
 
3149
                                <xs:element ref="instance_node" minOccurs="0" maxOccurs="unbounded">
 
3150
                                        <xs:annotation>
 
3151
                                                <xs:documentation>
 
3152
                                                The node element may instance any number of node elements or hierarchies objects.
 
3153
                                                </xs:documentation>
 
3154
                                        </xs:annotation>
 
3155
                                </xs:element>
 
3156
                                <xs:element ref="node" minOccurs="0" maxOccurs="unbounded">
 
3157
                                        <xs:annotation>
 
3158
                                                <xs:documentation>
 
3159
                                                The node element may be hierarchical and be the parent of any number of other node elements.
 
3160
                                                </xs:documentation>
 
3161
                                        </xs:annotation>
 
3162
                                </xs:element>
 
3163
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3164
                                        <xs:annotation>
 
3165
                                                <xs:documentation>
 
3166
                                                The extra element may appear any number of times.
 
3167
                                                </xs:documentation>
 
3168
                                        </xs:annotation>
 
3169
                                </xs:element>
 
3170
                        </xs:sequence>
 
3171
                        <xs:attribute name="id" type="xs:ID">
 
3172
                                <xs:annotation>
 
3173
                                        <xs:documentation>
 
3174
                                        The id attribute is a text string containing the unique identifier of this element. 
 
3175
                                        This value must be unique within the instance document. Optional attribute.
 
3176
                                        </xs:documentation>
 
3177
                                </xs:annotation>
 
3178
                        </xs:attribute>
 
3179
                        <xs:attribute name="name" type="xs:NCName">
 
3180
                                <xs:annotation>
 
3181
                                        <xs:documentation>
 
3182
                                        The name attribute is the text string name of this element. Optional attribute.
 
3183
                                        </xs:documentation>
 
3184
                                </xs:annotation>
 
3185
                        </xs:attribute>
 
3186
                        <xs:attribute name="sid" type="xs:NCName">
 
3187
                                <xs:annotation>
 
3188
                                        <xs:documentation>
 
3189
                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
3190
                                        This value must be unique within the scope of the parent element. Optional attribute.
 
3191
                                        </xs:documentation>
 
3192
                                </xs:annotation>
 
3193
                        </xs:attribute>
 
3194
                        <xs:attribute name="type" type="NodeType" default="NODE">
 
3195
                                <xs:annotation>
 
3196
                                        <xs:documentation>
 
3197
                                        The type attribute indicates the type of the node element. The default value is ā€œNODEā€. 
 
3198
                                        Optional attribute.
 
3199
                                        </xs:documentation>
 
3200
                                </xs:annotation>
 
3201
                        </xs:attribute>
 
3202
                        <xs:attribute name="layer" type="ListOfNames">
 
3203
                                <xs:annotation>
 
3204
                                        <xs:documentation>
 
3205
                                        The layer attribute indicates the names of the layers to which this node belongs.  For example, 
 
3206
                                        a value of ā€œforeground glowingā€ indicates that this node belongs to both the ā€˜foregroundā€™ layer 
 
3207
                                        and the ā€˜glowingā€™ layer.  The default value is empty, indicating that the node doesnā€™t belong to 
 
3208
                                        any layer.  Optional attribute.
 
3209
                                        </xs:documentation>
 
3210
                                </xs:annotation>
 
3211
                        </xs:attribute>
 
3212
                </xs:complexType>
 
3213
        </xs:element>
 
3214
        <xs:element name="visual_scene">
 
3215
                <xs:annotation>
 
3216
                        <xs:documentation>
 
3217
                        The visual_scene element declares the base of the visual_scene hierarchy or scene graph. The 
 
3218
                        scene contains elements that comprise much of the visual and transformational information 
 
3219
                        content as created by the authoring tools.
 
3220
                        </xs:documentation>
 
3221
                </xs:annotation>
 
3222
                <xs:complexType>
 
3223
                        <xs:sequence>
 
3224
                                <xs:element ref="asset" minOccurs="0">
 
3225
                                        <xs:annotation>
 
3226
                                                <xs:documentation>
 
3227
                                                The visual_scene element may contain an asset element.
 
3228
                                                </xs:documentation>
 
3229
                                        </xs:annotation>
 
3230
                                </xs:element>
 
3231
                                <xs:element ref="node" maxOccurs="unbounded">
 
3232
                                        <xs:annotation>
 
3233
                                                <xs:documentation>
 
3234
                                                The visual_scene element must have at least one node element.
 
3235
                                                </xs:documentation>
 
3236
                                        </xs:annotation>
 
3237
                                </xs:element>
 
3238
                                <xs:element name="evaluate_scene" minOccurs="0" maxOccurs="unbounded">
 
3239
                                        <xs:annotation>
 
3240
                                                <xs:documentation>
 
3241
                                                The evaluate_scene element declares information specifying a specific way to evaluate this 
 
3242
                                                visual_scene. There may be any number of evaluate_scene elements.
 
3243
                                                </xs:documentation>
 
3244
                                        </xs:annotation>
 
3245
                                        <xs:complexType>
 
3246
                                                <xs:sequence>
 
3247
                                                        <xs:element name="render" maxOccurs="unbounded">
 
3248
                                                                <xs:annotation>
 
3249
                                                                        <xs:documentation>
 
3250
                                                                        The render element describes one effect pass to evaluate the scene.
 
3251
                                                                        There must be at least one render element.
 
3252
                                                                        </xs:documentation>
 
3253
                                                                </xs:annotation>
 
3254
                                                                <xs:complexType>
 
3255
                                                                        <xs:sequence>
 
3256
                                                                                <xs:element name="layer" type="xs:NCName" minOccurs="0" maxOccurs="unbounded">
 
3257
                                                                                        <xs:annotation>
 
3258
                                                                                                <xs:documentation>
 
3259
                                                                                                The layer element specifies which layer to render in this compositing step 
 
3260
                                                                                                while evaluating the scene. You may specify any number of layers.
 
3261
                                                                                                </xs:documentation>
 
3262
                                                                                        </xs:annotation>
 
3263
                                                                                </xs:element>
 
3264
                                                                                <xs:element ref="instance_effect" minOccurs="0">
 
3265
                                                                                        <xs:annotation>
 
3266
                                                                                                <xs:documentation>
 
3267
                                                                                                The instance_effect element specifies which effect to render in this compositing step 
 
3268
                                                                                                while evaluating the scene.
 
3269
                                                                                                </xs:documentation>
 
3270
                                                                                        </xs:annotation>
 
3271
                                                                                </xs:element>
 
3272
                                                                        </xs:sequence>
 
3273
                                                                        <xs:attribute name="camera_node" type="xs:anyURI" use="required">
 
3274
                                                                                <xs:annotation>
 
3275
                                                                                        <xs:documentation>
 
3276
                                                                                        The camera_node attribute refers to a node that contains a camera describing the viewpoint to 
 
3277
                                                                                        render this compositing step from.
 
3278
                                                                                        </xs:documentation>
 
3279
                                                                                </xs:annotation>
 
3280
                                                                        </xs:attribute>
 
3281
                                                                </xs:complexType>
 
3282
                                                        </xs:element>
 
3283
                                                </xs:sequence>
 
3284
                                                <xs:attribute name="name" type="xs:NCName">
 
3285
                                                        <xs:annotation>
 
3286
                                                                <xs:documentation>
 
3287
                                                                The name attribute is the text string name of this element. Optional attribute.
 
3288
                                                                </xs:documentation>
 
3289
                                                        </xs:annotation>
 
3290
                                                </xs:attribute>
 
3291
                                        </xs:complexType>
 
3292
                                </xs:element>
 
3293
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3294
                                        <xs:annotation>
 
3295
                                                <xs:documentation>
 
3296
                                                The extra element may appear any number of times.
 
3297
                                                </xs:documentation>
 
3298
                                        </xs:annotation>
 
3299
                                </xs:element>
 
3300
                        </xs:sequence>
 
3301
                        <xs:attribute name="id" type="xs:ID" use="optional">
 
3302
                                <xs:annotation>
 
3303
                                        <xs:documentation>
 
3304
                                        The id attribute is a text string containing the unique identifier of this element. This 
 
3305
                                        value must be unique within the instance document. Optional attribute.
 
3306
                                        </xs:documentation>
 
3307
                                </xs:annotation>
 
3308
                        </xs:attribute>
 
3309
                        <xs:attribute name="name" type="xs:NCName">
 
3310
                                <xs:annotation>
 
3311
                                        <xs:documentation>
 
3312
                                        The name attribute is the text string name of this element. Optional attribute.
 
3313
                                        </xs:documentation>
 
3314
                                </xs:annotation>
 
3315
                        </xs:attribute>
 
3316
                </xs:complexType>
 
3317
        </xs:element>
 
3318
        <!-- Instance Elements -->
 
3319
        <xs:element name="bind_material">
 
3320
                <xs:annotation>
 
3321
                        <xs:documentation>
 
3322
                        Bind a specific material to a piece of geometry, binding varying and uniform parameters at the 
 
3323
                        same time.
 
3324
                        </xs:documentation>
 
3325
                </xs:annotation>
 
3326
                <xs:complexType>
 
3327
                        <xs:sequence>
 
3328
                                <xs:element ref="param" minOccurs="0" maxOccurs="unbounded">
 
3329
                                        <xs:annotation>
 
3330
                                                <xs:documentation>
 
3331
                                                The bind_material element may contain any number of param elements.
 
3332
                                                </xs:documentation>
 
3333
                                        </xs:annotation>
 
3334
                                </xs:element>
 
3335
                                <xs:element name="technique_common">
 
3336
                                        <xs:annotation>
 
3337
                                                <xs:documentation>
 
3338
                                                The technique_common element specifies the bind_material information for the common 
 
3339
                                                profile which all COLLADA implementations need to support.
 
3340
                                                </xs:documentation>
 
3341
                                        </xs:annotation>
 
3342
                                        <xs:complexType>
 
3343
                                                <xs:sequence>
 
3344
                                                        <xs:element ref="instance_material" maxOccurs="unbounded">
 
3345
                                                                <xs:annotation>
 
3346
                                                                        <xs:documentation>
 
3347
                                                                        The instance_material element specifies the information needed to bind a geometry
 
3348
                                                                        to a material. This element must appear at least once.
 
3349
                                                                        </xs:documentation>
 
3350
                                                                </xs:annotation>
 
3351
                                                        </xs:element>
 
3352
                                                </xs:sequence>
 
3353
                                        </xs:complexType>
 
3354
                                </xs:element>
 
3355
                                <xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
 
3356
                                        <xs:annotation>
 
3357
                                                <xs:documentation>
 
3358
                                                This element may contain any number of non-common profile techniques.
 
3359
                                                </xs:documentation>
 
3360
                                        </xs:annotation>
 
3361
                                </xs:element>
 
3362
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3363
                                        <xs:annotation>
 
3364
                                                <xs:documentation>
 
3365
                                                The extra element may appear any number of times.
 
3366
                                                </xs:documentation>
 
3367
                                        </xs:annotation>
 
3368
                                </xs:element>
 
3369
                        </xs:sequence>
 
3370
                </xs:complexType>
 
3371
        </xs:element>
 
3372
        <xs:element name="instance_camera" type="InstanceWithExtra">
 
3373
                <xs:annotation>
 
3374
                        <xs:documentation>
 
3375
                        The instance_camera element declares the instantiation of a COLLADA camera resource.
 
3376
                        </xs:documentation>
 
3377
                </xs:annotation>
 
3378
        </xs:element>
 
3379
        <xs:element name="instance_controller">
 
3380
                <xs:annotation>
 
3381
                        <xs:documentation>
 
3382
                        The instance_controller element declares the instantiation of a COLLADA controller resource.
 
3383
                        </xs:documentation>
 
3384
                </xs:annotation>
 
3385
                <xs:complexType>
 
3386
                        <xs:sequence>
 
3387
                                <xs:element name="skeleton" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded">
 
3388
                                        <xs:annotation>
 
3389
                                                <xs:documentation>
 
3390
                                                The skeleton element is used to indicate where a skin controller is to start to search for 
 
3391
                                                the joint nodes it needs.  This element is meaningless for morph controllers.
 
3392
                                                </xs:documentation>
 
3393
                                        </xs:annotation>
 
3394
                                </xs:element>
 
3395
                                <xs:element ref="bind_material" minOccurs="0">
 
3396
                                        <xs:annotation>
 
3397
                                                <xs:documentation>
 
3398
                                                Bind a specific material to a piece of geometry, binding varying and uniform parameters at the 
 
3399
                                                same time.
 
3400
                                                </xs:documentation>
 
3401
                                        </xs:annotation>
 
3402
                                </xs:element>
 
3403
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3404
                                        <xs:annotation>
 
3405
                                                <xs:documentation>
 
3406
                                                The extra element may appear any number of times.
 
3407
                                                </xs:documentation>
 
3408
                                        </xs:annotation>
 
3409
                                </xs:element>
 
3410
                        </xs:sequence>
 
3411
                        <xs:attribute name="url" type="xs:anyURI" use="required">
 
3412
                                <xs:annotation>
 
3413
                                        <xs:documentation>
 
3414
                                        The url attribute refers to resource. This may refer to a local resource using a relative 
 
3415
                                        URL fragment identifier that begins with the ā€œ#ā€ character. The url attribute may refer to an 
 
3416
                                        external resource using an absolute or relative URL.
 
3417
                                        </xs:documentation>
 
3418
                                </xs:annotation>
 
3419
                        </xs:attribute>
 
3420
                        <xs:attribute name="sid" type="xs:NCName">
 
3421
                                <xs:annotation>
 
3422
                                        <xs:documentation>
 
3423
                                        The sid attribute is a text string value containing the sub-identifier of this element. This 
 
3424
                                        value must be unique within the scope of the parent element. Optional attribute.
 
3425
                                        </xs:documentation>
 
3426
                                </xs:annotation>
 
3427
                        </xs:attribute>
 
3428
                        <xs:attribute name="name" type="xs:NCName">
 
3429
                                <xs:annotation>
 
3430
                                        <xs:documentation>
 
3431
                                        The name attribute is the text string name of this element. Optional attribute.
 
3432
                                        </xs:documentation>
 
3433
                                </xs:annotation>
 
3434
                        </xs:attribute>
 
3435
                </xs:complexType>
 
3436
        </xs:element>
 
3437
        <xs:element name="instance_effect">
 
3438
                <xs:annotation>
 
3439
                        <xs:documentation>
 
3440
                        The instance_effect element declares the instantiation of a COLLADA effect resource.
 
3441
                        </xs:documentation>
 
3442
                </xs:annotation>
 
3443
                <xs:complexType>
 
3444
                        <xs:sequence>
 
3445
                                <xs:element name="technique_hint" minOccurs="0" maxOccurs="unbounded">
 
3446
                                        <xs:annotation>
 
3447
                                                <xs:documentation>
 
3448
                                                Add a hint for a platform of which technique to use in this effect.
 
3449
                                                </xs:documentation>
 
3450
                                        </xs:annotation>
 
3451
                                        <xs:complexType>
 
3452
                                                <xs:attribute name="platform" type="xs:NCName" use="optional">
 
3453
                                                        <xs:annotation>
 
3454
                                                                <xs:documentation>
 
3455
                                                                A platform defines a string that specifies which platform this is hint is aimed for.
 
3456
                                                                </xs:documentation>
 
3457
                                                        </xs:annotation>
 
3458
                                                </xs:attribute>
 
3459
                                                <xs:attribute name="profile" type="xs:NCName" use="optional">
 
3460
                                                        <xs:annotation>
 
3461
                                                                <xs:documentation>
 
3462
                                                                A profile defines a string that specifies which API profile this is hint is aimed for.
 
3463
                                                                </xs:documentation>
 
3464
                                                        </xs:annotation>
 
3465
                                                </xs:attribute>
 
3466
                                                <xs:attribute name="ref" type="xs:NCName" use="required">
 
3467
                                                        <xs:annotation>
 
3468
                                                                <xs:documentation>
 
3469
                                                                A reference to the technique to use for the specified platform.
 
3470
                                                                </xs:documentation>
 
3471
                                                        </xs:annotation>
 
3472
                                                </xs:attribute>
 
3473
                                        </xs:complexType>
 
3474
                                </xs:element>
 
3475
                                <xs:element name="setparam" minOccurs="0" maxOccurs="unbounded">
 
3476
                                        <xs:annotation>
 
3477
                                                <xs:documentation>
 
3478
                                                Assigns a new value to a previously defined parameter
 
3479
                                                </xs:documentation>
 
3480
                                        </xs:annotation>
 
3481
                                        <xs:complexType>
 
3482
                                                <xs:sequence>
 
3483
                                                        <xs:group ref="fx_basic_type_common"/>
 
3484
                                                </xs:sequence>
 
3485
                                                <xs:attribute name="ref" type="xs:token" use="required"/>
 
3486
                                        </xs:complexType>
 
3487
                                </xs:element>
 
3488
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3489
                                        <xs:annotation>
 
3490
                                                <xs:documentation>
 
3491
                                                The extra element may appear any number of times.
 
3492
                                                </xs:documentation>
 
3493
                                        </xs:annotation>
 
3494
                                </xs:element>
 
3495
                        </xs:sequence>
 
3496
                        <xs:attribute name="url" type="xs:anyURI" use="required">
 
3497
                                <xs:annotation>
 
3498
                                        <xs:documentation>
 
3499
                                        The url attribute refers to resource.  This may refer to a local resource using a relative URL 
 
3500
                                        fragment identifier that begins with the ā€œ#ā€ character. The url attribute may refer to an external 
 
3501
                                        resource using an absolute or relative URL.
 
3502
                                        </xs:documentation>
 
3503
                                </xs:annotation>
 
3504
                        </xs:attribute>
 
3505
                        <xs:attribute name="sid" type="xs:NCName">
 
3506
                                <xs:annotation>
 
3507
                                        <xs:documentation>
 
3508
                                        The sid attribute is a text string value containing the sub-identifier of this element. This 
 
3509
                                        value must be unique within the scope of the parent element. Optional attribute.
 
3510
                                        </xs:documentation>
 
3511
                                </xs:annotation>
 
3512
                        </xs:attribute>
 
3513
                        <xs:attribute name="name" type="xs:NCName">
 
3514
                                <xs:annotation>
 
3515
                                        <xs:documentation>
 
3516
                                        The name attribute is the text string name of this element. Optional attribute.
 
3517
                                        </xs:documentation>
 
3518
                                </xs:annotation>
 
3519
                        </xs:attribute>
 
3520
                </xs:complexType>
 
3521
        </xs:element>
 
3522
        <xs:element name="instance_force_field" type="InstanceWithExtra">
 
3523
                <xs:annotation>
 
3524
                        <xs:documentation>
 
3525
                        The instance_force_field element declares the instantiation of a COLLADA force_field resource.
 
3526
                        </xs:documentation>
 
3527
                </xs:annotation>
 
3528
        </xs:element>
 
3529
        <xs:element name="instance_geometry">
 
3530
                <xs:annotation>
 
3531
                        <xs:documentation>
 
3532
                        The instance_geometry element declares the instantiation of a COLLADA geometry resource.
 
3533
                        </xs:documentation>
 
3534
                </xs:annotation>
 
3535
                <xs:complexType>
 
3536
                        <xs:sequence>
 
3537
                                <xs:element ref="bind_material" minOccurs="0">
 
3538
                                        <xs:annotation>
 
3539
                                                <xs:documentation>
 
3540
                                                Bind a specific material to a piece of geometry, binding varying and uniform parameters at the 
 
3541
                                                same time.
 
3542
                                                </xs:documentation>
 
3543
                                        </xs:annotation>
 
3544
                                </xs:element>
 
3545
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3546
                                        <xs:annotation>
 
3547
                                                <xs:documentation>
 
3548
                                                The extra element may appear any number of times.
 
3549
                                                </xs:documentation>
 
3550
                                        </xs:annotation>
 
3551
                                </xs:element>
 
3552
                        </xs:sequence>
 
3553
                        <xs:attribute name="url" type="xs:anyURI" use="required">
 
3554
                                <xs:annotation>
 
3555
                                        <xs:documentation>
 
3556
                                        The url attribute refers to resource.  This may refer to a local resource using a relative URL 
 
3557
                                        fragment identifier that begins with the ā€œ#ā€ character. The url attribute may refer to an external 
 
3558
                                        resource using an absolute or relative URL.
 
3559
                                        </xs:documentation>
 
3560
                                </xs:annotation>
 
3561
                        </xs:attribute>
 
3562
                        <xs:attribute name="sid" type="xs:NCName">
 
3563
                                <xs:annotation>
 
3564
                                        <xs:documentation>
 
3565
                                        The sid attribute is a text string value containing the sub-identifier of this element. This 
 
3566
                                        value must be unique within the scope of the parent element. Optional attribute.
 
3567
                                        </xs:documentation>
 
3568
                                </xs:annotation>
 
3569
                        </xs:attribute>
 
3570
                        <xs:attribute name="name" type="xs:NCName">
 
3571
                                <xs:annotation>
 
3572
                                        <xs:documentation>
 
3573
                                        The name attribute is the text string name of this element. Optional attribute.
 
3574
                                        </xs:documentation>
 
3575
                                </xs:annotation>
 
3576
                        </xs:attribute>
 
3577
                </xs:complexType>
 
3578
        </xs:element>
 
3579
        <xs:element name="instance_light" type="InstanceWithExtra">
 
3580
                <xs:annotation>
 
3581
                        <xs:documentation>
 
3582
                        The instance_light element declares the instantiation of a COLLADA light resource.
 
3583
                        </xs:documentation>
 
3584
                </xs:annotation>
 
3585
        </xs:element>
 
3586
        <xs:element name="instance_material">
 
3587
                <xs:annotation>
 
3588
                        <xs:documentation>
 
3589
                        The instance_material element declares the instantiation of a COLLADA material resource.
 
3590
                        </xs:documentation>
 
3591
                </xs:annotation>
 
3592
                <xs:complexType>
 
3593
                        <xs:sequence>
 
3594
                                <xs:element name="bind" minOccurs="0" maxOccurs="unbounded">
 
3595
                                        <xs:annotation>
 
3596
                                                <xs:documentation>
 
3597
                                                The bind element binds values to effect parameters upon instantiation.
 
3598
                                                </xs:documentation>
 
3599
                                        </xs:annotation>
 
3600
                                        <xs:complexType>
 
3601
                                                <xs:attribute name="semantic" type="xs:NCName" use="required">
 
3602
                                                        <xs:annotation>
 
3603
                                                                <xs:documentation>
 
3604
                                                                The semantic attribute specifies which effect parameter to bind.
 
3605
                                                                </xs:documentation>
 
3606
                                                        </xs:annotation>
 
3607
                                                </xs:attribute>
 
3608
                                                <xs:attribute name="target" type="xs:token" use="required">
 
3609
                                                        <xs:annotation>
 
3610
                                                                <xs:documentation>
 
3611
                                                                The target attribute specifies the location of the value to bind to the specified semantic. 
 
3612
                                                                This text string is a path-name following a simple syntax described in the ā€œAddressing Syntaxā€ 
 
3613
                                                                section.
 
3614
                                                                </xs:documentation>
 
3615
                                                        </xs:annotation>
 
3616
                                                </xs:attribute>
 
3617
                                        </xs:complexType>
 
3618
                                </xs:element>
 
3619
                                <xs:element name="bind_vertex_input" minOccurs="0" maxOccurs="unbounded">
 
3620
                                        <xs:annotation>
 
3621
                                                <xs:documentation>
 
3622
                                                The bind_vertex_input element binds vertex inputs to effect parameters upon instantiation.
 
3623
                                                </xs:documentation>
 
3624
                                        </xs:annotation>
 
3625
                                        <xs:complexType>
 
3626
                                                <xs:attribute name="semantic" type="xs:NCName" use="required">
 
3627
                                                        <xs:annotation>
 
3628
                                                                <xs:documentation>
 
3629
                                                                The semantic attribute specifies which effect parameter to bind.
 
3630
                                                                </xs:documentation>
 
3631
                                                        </xs:annotation>
 
3632
                                                </xs:attribute>
 
3633
                                                <xs:attribute name="input_semantic" type="xs:NCName" use="required">
 
3634
                                                        <xs:annotation>
 
3635
                                                                <xs:documentation>
 
3636
                                                                The input_semantic attribute specifies which input semantic to bind.
 
3637
                                                                </xs:documentation>
 
3638
                                                        </xs:annotation>
 
3639
                                                </xs:attribute>
 
3640
                                                <xs:attribute name="input_set" type="uint">
 
3641
                                                        <xs:annotation>
 
3642
                                                                <xs:documentation>
 
3643
                                                                The input_set attribute specifies which input set to bind. 
 
3644
                                                                </xs:documentation>
 
3645
                                                        </xs:annotation>
 
3646
                                                </xs:attribute>
 
3647
                                        </xs:complexType>
 
3648
                                </xs:element>
 
3649
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3650
                                        <xs:annotation>
 
3651
                                                <xs:documentation>
 
3652
                                                The extra element may appear any number of times.
 
3653
                                                </xs:documentation>
 
3654
                                        </xs:annotation>
 
3655
                                </xs:element>
 
3656
                        </xs:sequence>
 
3657
                        <xs:attribute name="symbol" type="xs:NCName" use="required">
 
3658
                                <xs:annotation>
 
3659
                                        <xs:documentation>
 
3660
                                        The symbol attribute specifies which symbol defined from within the geometry this material binds to.
 
3661
                                        </xs:documentation>
 
3662
                                </xs:annotation>
 
3663
                        </xs:attribute>
 
3664
                        <xs:attribute name="target" type="xs:anyURI" use="required">
 
3665
                                <xs:annotation>
 
3666
                                        <xs:documentation>
 
3667
                                        The target attribute specifies the URL of the location of the object to instantiate.
 
3668
                                        </xs:documentation>
 
3669
                                </xs:annotation>
 
3670
                        </xs:attribute>
 
3671
                        <xs:attribute name="sid" type="xs:NCName">
 
3672
                                <xs:annotation>
 
3673
                                        <xs:documentation>
 
3674
                                        The sid attribute is a text string value containing the sub-identifier of this element. This 
 
3675
                                        value must be unique within the scope of the parent element. Optional attribute.
 
3676
                                        </xs:documentation>
 
3677
                                </xs:annotation>
 
3678
                        </xs:attribute>
 
3679
                        <xs:attribute name="name" type="xs:NCName">
 
3680
                                <xs:annotation>
 
3681
                                        <xs:documentation>
 
3682
                                        The name attribute is the text string name of this element. Optional attribute.
 
3683
                                        </xs:documentation>
 
3684
                                </xs:annotation>
 
3685
                        </xs:attribute>
 
3686
                </xs:complexType>
 
3687
        </xs:element>
 
3688
        <xs:element name="instance_node" type="InstanceWithExtra">
 
3689
                <xs:annotation>
 
3690
                        <xs:documentation>
 
3691
                        The instance_node element declares the instantiation of a COLLADA node resource.
 
3692
                        </xs:documentation>
 
3693
                </xs:annotation>
 
3694
        </xs:element>
 
3695
        <xs:element name="instance_physics_material" type="InstanceWithExtra">
 
3696
                <xs:annotation>
 
3697
                        <xs:documentation>
 
3698
                        The instance_physics_material element declares the instantiation of a COLLADA physics_material 
 
3699
                        resource.
 
3700
                        </xs:documentation>
 
3701
                </xs:annotation>
 
3702
        </xs:element>
 
3703
        <xs:element name="instance_physics_model">
 
3704
                <xs:annotation>
 
3705
                        <xs:documentation>
 
3706
                        This element allows instancing physics model within another physics model, or in a physics scene.
 
3707
                        </xs:documentation>
 
3708
                </xs:annotation>
 
3709
                <xs:complexType>
 
3710
                        <xs:sequence>
 
3711
                                <xs:element ref="instance_force_field" minOccurs="0" maxOccurs="unbounded">
 
3712
                                        <xs:annotation>
 
3713
                                                <xs:documentation>
 
3714
                                                The instance_physics_model element may instance any number of force_field elements.
 
3715
                                                </xs:documentation>
 
3716
                                        </xs:annotation>
 
3717
                                </xs:element>
 
3718
                                <xs:element ref="instance_rigid_body" minOccurs="0" maxOccurs="unbounded">
 
3719
                                        <xs:annotation>
 
3720
                                                <xs:documentation>
 
3721
                                                The instance_physics_model element may instance any number of rigid_body elements.
 
3722
                                                </xs:documentation>
 
3723
                                        </xs:annotation>
 
3724
                                </xs:element>
 
3725
                                <xs:element ref="instance_rigid_constraint" minOccurs="0" maxOccurs="unbounded">
 
3726
                                        <xs:annotation>
 
3727
                                                <xs:documentation>
 
3728
                                                The instance_physics_model element may instance any number of rigid_constraint elements.
 
3729
                                                </xs:documentation>
 
3730
                                        </xs:annotation>
 
3731
                                </xs:element>
 
3732
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3733
                                        <xs:annotation>
 
3734
                                                <xs:documentation>
 
3735
                                                The extra element may appear any number of times.
 
3736
                                                </xs:documentation>
 
3737
                                        </xs:annotation>
 
3738
                                </xs:element>
 
3739
                        </xs:sequence>
 
3740
                        <xs:attribute name="url" type="xs:anyURI" use="required">
 
3741
                                <xs:annotation>
 
3742
                                        <xs:documentation>
 
3743
                                        The url attribute refers to resource.  This may refer to a local resource using a relative URL 
 
3744
                                        fragment identifier that begins with the ā€œ#ā€ character. The url attribute may refer to an external 
 
3745
                                        resource using an absolute or relative URL.
 
3746
                                        </xs:documentation>
 
3747
                                </xs:annotation>
 
3748
                        </xs:attribute>
 
3749
                        <xs:attribute name="sid" type="xs:NCName">
 
3750
                                <xs:annotation>
 
3751
                                        <xs:documentation>
 
3752
                                        The sid attribute is a text string value containing the sub-identifier of this element. This 
 
3753
                                        value must be unique within the scope of the parent element. Optional attribute.
 
3754
                                        </xs:documentation>
 
3755
                                </xs:annotation>
 
3756
                        </xs:attribute>
 
3757
                        <xs:attribute name="name" type="xs:NCName">
 
3758
                                <xs:annotation>
 
3759
                                        <xs:documentation>
 
3760
                                        The name attribute is the text string name of this element. Optional attribute.
 
3761
                                        </xs:documentation>
 
3762
                                </xs:annotation>
 
3763
                        </xs:attribute>
 
3764
                        <xs:attribute name="parent" type="xs:anyURI">
 
3765
                                <xs:annotation>
 
3766
                                        <xs:documentation>
 
3767
                                        The parent attribute points to the id of a node in the visual scene. This allows a physics model 
 
3768
                                        to be instantiated under a specific transform node, which will dictate the initial position and 
 
3769
                                        orientation, and could be animated to influence kinematic rigid bodies.
 
3770
                                        </xs:documentation>
 
3771
                                </xs:annotation>
 
3772
                        </xs:attribute>
 
3773
                </xs:complexType>
 
3774
        </xs:element>
 
3775
        <xs:element name="instance_rigid_body">
 
3776
                <xs:annotation>
 
3777
                        <xs:documentation>
 
3778
                        This element allows instancing a rigid_body within an instance_physics_model. 
 
3779
                        </xs:documentation>
 
3780
                </xs:annotation>
 
3781
                <xs:complexType>
 
3782
                        <xs:sequence>
 
3783
                                <xs:element name="technique_common">
 
3784
                                        <xs:annotation>
 
3785
                                                <xs:documentation>
 
3786
                                                The technique_common element specifies the instance_rigid_body information for the common 
 
3787
                                                profile which all COLLADA implementations need to support.
 
3788
                                                </xs:documentation>
 
3789
                                        </xs:annotation>
 
3790
                                        <xs:complexType>
 
3791
                                                <xs:sequence>
 
3792
                                                        <xs:element name="angular_velocity" type="float3" default="0.0 0.0 0.0" minOccurs="0">
 
3793
                                                                <xs:annotation>
 
3794
                                                                        <xs:documentation>
 
3795
                                                                        Specifies the initial angular velocity of the rigid_body instance in degrees per second 
 
3796
                                                                        around each axis, in the form of an X-Y-Z Euler rotation.
 
3797
                                                                        </xs:documentation>
 
3798
                                                                </xs:annotation>
 
3799
                                                        </xs:element>
 
3800
                                                        <xs:element name="velocity" type="float3" default="0.0 0.0 0.0" minOccurs="0">
 
3801
                                                                <xs:annotation>
 
3802
                                                                        <xs:documentation>
 
3803
                                                                        Specifies the initial linear velocity of the rigid_body instance.
 
3804
                                                                        </xs:documentation>
 
3805
                                                                </xs:annotation>
 
3806
                                                        </xs:element>
 
3807
                                                        <xs:element name="dynamic" minOccurs="0">
 
3808
                                                                <xs:complexType>
 
3809
                                                                        <xs:simpleContent>
 
3810
                                                                                <xs:extension base="bool">
 
3811
                                                                                        <xs:attribute name="sid" type="xs:NCName">
 
3812
                                                                                                <xs:annotation>
 
3813
                                                                                                        <xs:documentation>
 
3814
                                                                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
3815
                                                                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
3816
                                                                                                        </xs:documentation>
 
3817
                                                                                                </xs:annotation>
 
3818
                                                                                        </xs:attribute>
 
3819
                                                                                </xs:extension>
 
3820
                                                                        </xs:simpleContent>
 
3821
                                                                </xs:complexType>
 
3822
                                                        </xs:element>
 
3823
                                                        <xs:element name="mass" type="TargetableFloat" minOccurs="0"/>
 
3824
                                                        <xs:element name="mass_frame" minOccurs="0">
 
3825
                                                                <xs:complexType>
 
3826
                                                                        <xs:choice maxOccurs="unbounded">
 
3827
                                                                                <xs:element ref="translate"/>
 
3828
                                                                                <xs:element ref="rotate"/>
 
3829
                                                                        </xs:choice>
 
3830
                                                                </xs:complexType>
 
3831
                                                        </xs:element>
 
3832
                                                        <xs:element name="inertia" type="TargetableFloat3" minOccurs="0"/>
 
3833
                                                        <xs:choice minOccurs="0">
 
3834
                                                                <xs:element ref="instance_physics_material"/>
 
3835
                                                                <xs:element ref="physics_material"/>
 
3836
                                                        </xs:choice>
 
3837
                                                        <xs:element name="shape" minOccurs="0" maxOccurs="unbounded">
 
3838
                                                                <xs:complexType>
 
3839
                                                                        <xs:sequence>
 
3840
                                                                                <xs:element name="hollow" minOccurs="0">
 
3841
                                                                                        <xs:complexType>
 
3842
                                                                                                <xs:simpleContent>
 
3843
                                                                                                        <xs:extension base="bool">
 
3844
                                                                                                                <xs:attribute name="sid" type="xs:NCName">
 
3845
                                                                                                                        <xs:annotation>
 
3846
                                                                                                                                <xs:documentation>
 
3847
                                                                                                                                The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute.
 
3848
                                                                                                                                </xs:documentation>
 
3849
                                                                                                                        </xs:annotation>
 
3850
                                                                                                                </xs:attribute>
 
3851
                                                                                                        </xs:extension>
 
3852
                                                                                                </xs:simpleContent>
 
3853
                                                                                        </xs:complexType>
 
3854
                                                                                </xs:element>
 
3855
                                                                                <xs:element name="mass" type="TargetableFloat" minOccurs="0"/>
 
3856
                                                                                <xs:element name="density" type="TargetableFloat" minOccurs="0"/>
 
3857
                                                                                <xs:choice minOccurs="0">
 
3858
                                                                                        <xs:element ref="instance_physics_material"/>
 
3859
                                                                                        <xs:element ref="physics_material"/>
 
3860
                                                                                </xs:choice>
 
3861
                                                                                <xs:choice>
 
3862
                                                                                        <xs:element ref="instance_geometry"/>
 
3863
                                                                                        <xs:element ref="plane"/>
 
3864
                                                                                        <xs:element ref="box"/>
 
3865
                                                                                        <xs:element ref="sphere"/>
 
3866
                                                                                        <xs:element ref="cylinder"/>
 
3867
                                                                                        <xs:element ref="tapered_cylinder"/>
 
3868
                                                                                        <xs:element ref="capsule"/>
 
3869
                                                                                        <xs:element ref="tapered_capsule"/>
 
3870
                                                                                </xs:choice>
 
3871
                                                                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
3872
                                                                                        <xs:element ref="translate"/>
 
3873
                                                                                        <xs:element ref="rotate"/>
 
3874
                                                                                </xs:choice>
 
3875
                                                                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3876
                                                                                        <xs:annotation>
 
3877
                                                                                                <xs:documentation>
 
3878
                                                                                                The extra element may appear any number of times.
 
3879
                                                                                                </xs:documentation>
 
3880
                                                                                        </xs:annotation>
 
3881
                                                                                </xs:element>
 
3882
                                                                        </xs:sequence>
 
3883
                                                                </xs:complexType>
 
3884
                                                        </xs:element>
 
3885
                                                </xs:sequence>
 
3886
                                        </xs:complexType>
 
3887
                                </xs:element>
 
3888
                                <xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
 
3889
                                        <xs:annotation>
 
3890
                                                <xs:documentation>
 
3891
                                                This element may contain any number of non-common profile techniques.
 
3892
                                                </xs:documentation>
 
3893
                                        </xs:annotation>
 
3894
                                </xs:element>
 
3895
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3896
                                        <xs:annotation>
 
3897
                                                <xs:documentation>
 
3898
                                                The extra element may appear any number of times.
 
3899
                                                </xs:documentation>
 
3900
                                        </xs:annotation>
 
3901
                                </xs:element>
 
3902
                        </xs:sequence>
 
3903
                        <xs:attribute name="body" type="xs:NCName" use="required">
 
3904
                                <xs:annotation>
 
3905
                                        <xs:documentation>
 
3906
                                        The body attribute indicates which rigid_body to instantiate. Required attribute.
 
3907
                                        </xs:documentation>
 
3908
                                </xs:annotation>
 
3909
                        </xs:attribute>
 
3910
                        <xs:attribute name="sid" type="xs:NCName">
 
3911
                                <xs:annotation>
 
3912
                                        <xs:documentation>
 
3913
                                        The sid attribute is a text string value containing the sub-identifier of this element. This 
 
3914
                                        value must be unique within the scope of the parent element. Optional attribute.
 
3915
                                        </xs:documentation>
 
3916
                                </xs:annotation>
 
3917
                        </xs:attribute>
 
3918
                        <xs:attribute name="name" type="xs:NCName">
 
3919
                                <xs:annotation>
 
3920
                                        <xs:documentation>
 
3921
                                        The name attribute is the text string name of this element. Optional attribute.
 
3922
                                        </xs:documentation>
 
3923
                                </xs:annotation>
 
3924
                        </xs:attribute>
 
3925
                        <xs:attribute name="target" type="xs:anyURI" use="required">
 
3926
                                <xs:annotation>
 
3927
                                        <xs:documentation>
 
3928
                                        The target attribute indicates which node is influenced by this rigid_body instance. 
 
3929
                                        Required attribute
 
3930
                                        </xs:documentation>
 
3931
                                </xs:annotation>
 
3932
                        </xs:attribute>
 
3933
                </xs:complexType>
 
3934
        </xs:element>
 
3935
        <xs:element name="instance_rigid_constraint">
 
3936
                <xs:annotation>
 
3937
                        <xs:documentation>
 
3938
                        This element allows instancing a rigid_constraint within an instance_physics_model. 
 
3939
                        </xs:documentation>
 
3940
                </xs:annotation>
 
3941
                <xs:complexType>
 
3942
                        <xs:sequence>
 
3943
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3944
                                        <xs:annotation>
 
3945
                                                <xs:documentation>
 
3946
                                                The extra element may appear any number of times.
 
3947
                                                </xs:documentation>
 
3948
                                        </xs:annotation>
 
3949
                                </xs:element>
 
3950
                        </xs:sequence>
 
3951
                        <xs:attribute name="constraint" type="xs:NCName" use="required">
 
3952
                                <xs:annotation>
 
3953
                                        <xs:documentation>
 
3954
                                        The constraint attribute indicates which rigid_constraing to instantiate. Required attribute.
 
3955
                                        </xs:documentation>
 
3956
                                </xs:annotation>
 
3957
                        </xs:attribute>
 
3958
                        <xs:attribute name="sid" type="xs:NCName">
 
3959
                                <xs:annotation>
 
3960
                                        <xs:documentation>
 
3961
                                        The sid attribute is a text string value containing the sub-identifier of this element. This 
 
3962
                                        value must be unique within the scope of the parent element. Optional attribute.
 
3963
                                        </xs:documentation>
 
3964
                                </xs:annotation>
 
3965
                        </xs:attribute>
 
3966
                        <xs:attribute name="name" type="xs:NCName">
 
3967
                                <xs:annotation>
 
3968
                                        <xs:documentation>
 
3969
                                        The name attribute is the text string name of this element. Optional attribute.
 
3970
                                        </xs:documentation>
 
3971
                                </xs:annotation>
 
3972
                        </xs:attribute>
 
3973
                </xs:complexType>
 
3974
        </xs:element>
 
3975
        <!-- Modularity elements -->
 
3976
        <xs:element name="library_animations">
 
3977
                <xs:annotation>
 
3978
                        <xs:documentation>
 
3979
                        The library_animations element declares a module of animation elements.
 
3980
                        </xs:documentation>
 
3981
                </xs:annotation>
 
3982
                <xs:complexType>
 
3983
                        <xs:sequence>
 
3984
                                <xs:element ref="asset" minOccurs="0">
 
3985
                                        <xs:annotation>
 
3986
                                                <xs:documentation>
 
3987
                                                The library_animations element may contain an asset element.
 
3988
                                                </xs:documentation>
 
3989
                                        </xs:annotation>
 
3990
                                </xs:element>
 
3991
                                <xs:element ref="animation" maxOccurs="unbounded">
 
3992
                                        <xs:annotation>
 
3993
                                                <xs:documentation>
 
3994
                                                There must be at least one animation element.
 
3995
                                                </xs:documentation>
 
3996
                                        </xs:annotation>
 
3997
                                </xs:element>
 
3998
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
3999
                                        <xs:annotation>
 
4000
                                                <xs:documentation>
 
4001
                                                The extra element may appear any number of times.
 
4002
                                                </xs:documentation>
 
4003
                                        </xs:annotation>
 
4004
                                </xs:element>
 
4005
                        </xs:sequence>
 
4006
                        <xs:attribute name="id" type="xs:ID">
 
4007
                                <xs:annotation>
 
4008
                                        <xs:documentation>
 
4009
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4010
                                        This value must be unique within the instance document. Optional attribute.
 
4011
                                        </xs:documentation>
 
4012
                                </xs:annotation>
 
4013
                        </xs:attribute>
 
4014
                        <xs:attribute name="name" type="xs:NCName">
 
4015
                                <xs:annotation>
 
4016
                                        <xs:documentation>
 
4017
                                        The name attribute is the text string name of this element. Optional attribute.
 
4018
                                        </xs:documentation>
 
4019
                                </xs:annotation>
 
4020
                        </xs:attribute>
 
4021
                </xs:complexType>
 
4022
        </xs:element>
 
4023
        <xs:element name="library_animation_clips">
 
4024
                <xs:annotation>
 
4025
                        <xs:documentation>
 
4026
                        The library_animation_clips element declares a module of animation_clip elements.
 
4027
                        </xs:documentation>
 
4028
                </xs:annotation>
 
4029
                <xs:complexType>
 
4030
                        <xs:sequence>
 
4031
                                <xs:element ref="asset" minOccurs="0">
 
4032
                                        <xs:annotation>
 
4033
                                                <xs:documentation>
 
4034
                                                The library_animation_clips element may contain an asset element.
 
4035
                                                </xs:documentation>
 
4036
                                        </xs:annotation>
 
4037
                                </xs:element>
 
4038
                                <xs:element ref="animation_clip" maxOccurs="unbounded">
 
4039
                                        <xs:annotation>
 
4040
                                                <xs:documentation>
 
4041
                                                There must be at least one animation_clip element.
 
4042
                                                </xs:documentation>
 
4043
                                        </xs:annotation>
 
4044
                                </xs:element>
 
4045
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4046
                                        <xs:annotation>
 
4047
                                                <xs:documentation>
 
4048
                                                The extra element may appear any number of times.
 
4049
                                                </xs:documentation>
 
4050
                                        </xs:annotation>
 
4051
                                </xs:element>
 
4052
                        </xs:sequence>
 
4053
                        <xs:attribute name="id" type="xs:ID">
 
4054
                                <xs:annotation>
 
4055
                                        <xs:documentation>
 
4056
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4057
                                        This value must be unique within the instance document. Optional attribute.
 
4058
                                        </xs:documentation>
 
4059
                                </xs:annotation>
 
4060
                        </xs:attribute>
 
4061
                        <xs:attribute name="name" type="xs:NCName">
 
4062
                                <xs:annotation>
 
4063
                                        <xs:documentation>
 
4064
                                        The name attribute is the text string name of this element. Optional attribute.
 
4065
                                        </xs:documentation>
 
4066
                                </xs:annotation>
 
4067
                        </xs:attribute>
 
4068
                </xs:complexType>
 
4069
        </xs:element>
 
4070
        <xs:element name="library_cameras">
 
4071
                <xs:annotation>
 
4072
                        <xs:documentation>
 
4073
                        The library_cameras element declares a module of camera elements.
 
4074
                        </xs:documentation>
 
4075
                </xs:annotation>
 
4076
                <xs:complexType>
 
4077
                        <xs:sequence>
 
4078
                                <xs:element ref="asset" minOccurs="0">
 
4079
                                        <xs:annotation>
 
4080
                                                <xs:documentation>
 
4081
                                                The library_cameras element may contain an asset element.
 
4082
                                                </xs:documentation>
 
4083
                                        </xs:annotation>
 
4084
                                </xs:element>
 
4085
                                <xs:element ref="camera" maxOccurs="unbounded">
 
4086
                                        <xs:annotation>
 
4087
                                                <xs:documentation>
 
4088
                                                There must be at least one camera element.
 
4089
                                                </xs:documentation>
 
4090
                                        </xs:annotation>
 
4091
                                </xs:element>
 
4092
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4093
                                        <xs:annotation>
 
4094
                                                <xs:documentation>
 
4095
                                                The extra element may appear any number of times.
 
4096
                                                </xs:documentation>
 
4097
                                        </xs:annotation>
 
4098
                                </xs:element>
 
4099
                        </xs:sequence>
 
4100
                        <xs:attribute name="id" type="xs:ID">
 
4101
                                <xs:annotation>
 
4102
                                        <xs:documentation>
 
4103
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4104
                                        This value must be unique within the instance document. Optional attribute.
 
4105
                                        </xs:documentation>
 
4106
                                </xs:annotation>
 
4107
                        </xs:attribute>
 
4108
                        <xs:attribute name="name" type="xs:NCName">
 
4109
                                <xs:annotation>
 
4110
                                        <xs:documentation>
 
4111
                                        The name attribute is the text string name of this element. Optional attribute.
 
4112
                                        </xs:documentation>
 
4113
                                </xs:annotation>
 
4114
                        </xs:attribute>
 
4115
                </xs:complexType>
 
4116
        </xs:element>
 
4117
        <xs:element name="library_controllers">
 
4118
                <xs:annotation>
 
4119
                        <xs:documentation>
 
4120
                        The library_controllers element declares a module of controller elements.
 
4121
                        </xs:documentation>
 
4122
                </xs:annotation>
 
4123
                <xs:complexType>
 
4124
                        <xs:sequence>
 
4125
                                <xs:element ref="asset" minOccurs="0">
 
4126
                                        <xs:annotation>
 
4127
                                                <xs:documentation>
 
4128
                                                The library_controllers element may contain an asset element.
 
4129
                                                </xs:documentation>
 
4130
                                        </xs:annotation>
 
4131
                                </xs:element>
 
4132
                                <xs:element ref="controller" maxOccurs="unbounded">
 
4133
                                        <xs:annotation>
 
4134
                                                <xs:documentation>
 
4135
                                                There must be at least one controller element.
 
4136
                                                </xs:documentation>
 
4137
                                        </xs:annotation>
 
4138
                                </xs:element>
 
4139
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4140
                                        <xs:annotation>
 
4141
                                                <xs:documentation>
 
4142
                                                The extra element may appear any number of times.
 
4143
                                                </xs:documentation>
 
4144
                                        </xs:annotation>
 
4145
                                </xs:element>
 
4146
                        </xs:sequence>
 
4147
                        <xs:attribute name="id" type="xs:ID">
 
4148
                                <xs:annotation>
 
4149
                                        <xs:documentation>
 
4150
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4151
                                        This value must be unique within the instance document. Optional attribute.
 
4152
                                        </xs:documentation>
 
4153
                                </xs:annotation>
 
4154
                        </xs:attribute>
 
4155
                        <xs:attribute name="name" type="xs:NCName">
 
4156
                                <xs:annotation>
 
4157
                                        <xs:documentation>
 
4158
                                        The name attribute is the text string name of this element. Optional attribute.
 
4159
                                        </xs:documentation>
 
4160
                                </xs:annotation>
 
4161
                        </xs:attribute>
 
4162
                </xs:complexType>
 
4163
        </xs:element>
 
4164
        <xs:element name="library_geometries">
 
4165
                <xs:annotation>
 
4166
                        <xs:documentation>
 
4167
                        The library_geometries element declares a module of geometry elements.
 
4168
                        </xs:documentation>
 
4169
                </xs:annotation>
 
4170
                <xs:complexType>
 
4171
                        <xs:sequence>
 
4172
                                <xs:element ref="asset" minOccurs="0">
 
4173
                                        <xs:annotation>
 
4174
                                                <xs:documentation>
 
4175
                                                The library_geometries element may contain an asset element.
 
4176
                                                </xs:documentation>
 
4177
                                        </xs:annotation>
 
4178
                                </xs:element>
 
4179
                                <xs:element ref="geometry" maxOccurs="unbounded">
 
4180
                                        <xs:annotation>
 
4181
                                                <xs:documentation>
 
4182
                                                There must be at least one geometry element.
 
4183
                                                </xs:documentation>
 
4184
                                        </xs:annotation>
 
4185
                                </xs:element>
 
4186
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4187
                                        <xs:annotation>
 
4188
                                                <xs:documentation>
 
4189
                                                The extra element may appear any number of times.
 
4190
                                                </xs:documentation>
 
4191
                                        </xs:annotation>
 
4192
                                </xs:element>
 
4193
                        </xs:sequence>
 
4194
                        <xs:attribute name="id" type="xs:ID">
 
4195
                                <xs:annotation>
 
4196
                                        <xs:documentation>
 
4197
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4198
                                        This value must be unique within the instance document. Optional attribute.
 
4199
                                        </xs:documentation>
 
4200
                                </xs:annotation>
 
4201
                        </xs:attribute>
 
4202
                        <xs:attribute name="name" type="xs:NCName">
 
4203
                                <xs:annotation>
 
4204
                                        <xs:documentation>
 
4205
                                        The name attribute is the text string name of this element. Optional attribute.
 
4206
                                        </xs:documentation>
 
4207
                                </xs:annotation>
 
4208
                        </xs:attribute>
 
4209
                </xs:complexType>
 
4210
        </xs:element>
 
4211
        <xs:element name="library_effects">
 
4212
                <xs:annotation>
 
4213
                        <xs:documentation>
 
4214
                        The library_effects element declares a module of effect elements.
 
4215
                        </xs:documentation>
 
4216
                </xs:annotation>
 
4217
                <xs:complexType>
 
4218
                        <xs:sequence>
 
4219
                                <xs:element ref="asset" minOccurs="0">
 
4220
                                        <xs:annotation>
 
4221
                                                <xs:documentation>
 
4222
                                                The library_effects element may contain an asset element.
 
4223
                                                </xs:documentation>
 
4224
                                        </xs:annotation>
 
4225
                                </xs:element>
 
4226
                                <xs:element ref="effect" maxOccurs="unbounded">
 
4227
                                        <xs:annotation>
 
4228
                                                <xs:documentation>
 
4229
                                                There must be at least one effect element.
 
4230
                                                </xs:documentation>
 
4231
                                        </xs:annotation>
 
4232
                                </xs:element>
 
4233
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4234
                                        <xs:annotation>
 
4235
                                                <xs:documentation>
 
4236
                                                The extra element may appear any number of times.
 
4237
                                                </xs:documentation>
 
4238
                                        </xs:annotation>
 
4239
                                </xs:element>
 
4240
                        </xs:sequence>
 
4241
                        <xs:attribute name="id" type="xs:ID">
 
4242
                                <xs:annotation>
 
4243
                                        <xs:documentation>
 
4244
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4245
                                        This value must be unique within the instance document. Optional attribute.
 
4246
                                        </xs:documentation>
 
4247
                                </xs:annotation>
 
4248
                        </xs:attribute>
 
4249
                        <xs:attribute name="name" type="xs:NCName">
 
4250
                                <xs:annotation>
 
4251
                                        <xs:documentation>
 
4252
                                        The name attribute is the text string name of this element. Optional attribute.
 
4253
                                        </xs:documentation>
 
4254
                                </xs:annotation>
 
4255
                        </xs:attribute>
 
4256
                </xs:complexType>
 
4257
        </xs:element>
 
4258
        <xs:element name="library_force_fields">
 
4259
                <xs:annotation>
 
4260
                        <xs:documentation>
 
4261
                        The library_force_fields element declares a module of force_field elements.
 
4262
                        </xs:documentation>
 
4263
                </xs:annotation>
 
4264
                <xs:complexType>
 
4265
                        <xs:sequence>
 
4266
                                <xs:element ref="asset" minOccurs="0">
 
4267
                                        <xs:annotation>
 
4268
                                                <xs:documentation>
 
4269
                                                The library_force_fields element may contain an asset element.
 
4270
                                                </xs:documentation>
 
4271
                                        </xs:annotation>
 
4272
                                </xs:element>
 
4273
                                <xs:element ref="force_field" maxOccurs="unbounded">
 
4274
                                        <xs:annotation>
 
4275
                                                <xs:documentation>
 
4276
                                                There must be at least one force_field element.
 
4277
                                                </xs:documentation>
 
4278
                                        </xs:annotation>
 
4279
                                </xs:element>
 
4280
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4281
                                        <xs:annotation>
 
4282
                                                <xs:documentation>
 
4283
                                                The extra element may appear any number of times.
 
4284
                                                </xs:documentation>
 
4285
                                        </xs:annotation>
 
4286
                                </xs:element>
 
4287
                        </xs:sequence>
 
4288
                        <xs:attribute name="id" type="xs:ID">
 
4289
                                <xs:annotation>
 
4290
                                        <xs:documentation>
 
4291
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4292
                                        This value must be unique within the instance document. Optional attribute.
 
4293
                                        </xs:documentation>
 
4294
                                </xs:annotation>
 
4295
                        </xs:attribute>
 
4296
                        <xs:attribute name="name" type="xs:NCName">
 
4297
                                <xs:annotation>
 
4298
                                        <xs:documentation>
 
4299
                                        The name attribute is the text string name of this element. Optional attribute.
 
4300
                                        </xs:documentation>
 
4301
                                </xs:annotation>
 
4302
                        </xs:attribute>
 
4303
                </xs:complexType>
 
4304
        </xs:element>
 
4305
        <xs:element name="library_images">
 
4306
                <xs:annotation>
 
4307
                        <xs:documentation>
 
4308
                        The library_images element declares a module of image elements.
 
4309
                        </xs:documentation>
 
4310
                </xs:annotation>
 
4311
                <xs:complexType>
 
4312
                        <xs:sequence>
 
4313
                                <xs:element ref="asset" minOccurs="0">
 
4314
                                        <xs:annotation>
 
4315
                                                <xs:documentation>
 
4316
                                                The library_images element may contain an asset element.
 
4317
                                                </xs:documentation>
 
4318
                                        </xs:annotation>
 
4319
                                </xs:element>
 
4320
                                <xs:element ref="image" maxOccurs="unbounded">
 
4321
                                        <xs:annotation>
 
4322
                                                <xs:documentation>
 
4323
                                                There must be at least one image element.
 
4324
                                                </xs:documentation>
 
4325
                                        </xs:annotation>
 
4326
                                </xs:element>
 
4327
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4328
                                        <xs:annotation>
 
4329
                                                <xs:documentation>
 
4330
                                                The extra element may appear any number of times.
 
4331
                                                </xs:documentation>
 
4332
                                        </xs:annotation>
 
4333
                                </xs:element>
 
4334
                        </xs:sequence>
 
4335
                        <xs:attribute name="id" type="xs:ID">
 
4336
                                <xs:annotation>
 
4337
                                        <xs:documentation>
 
4338
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4339
                                        This value must be unique within the instance document. Optional attribute.
 
4340
                                        </xs:documentation>
 
4341
                                </xs:annotation>
 
4342
                        </xs:attribute>
 
4343
                        <xs:attribute name="name" type="xs:NCName">
 
4344
                                <xs:annotation>
 
4345
                                        <xs:documentation>
 
4346
                                        The name attribute is the text string name of this element. Optional attribute.
 
4347
                                        </xs:documentation>
 
4348
                                </xs:annotation>
 
4349
                        </xs:attribute>
 
4350
                </xs:complexType>
 
4351
        </xs:element>
 
4352
        <xs:element name="library_lights">
 
4353
                <xs:annotation>
 
4354
                        <xs:documentation>
 
4355
                        The library_lights element declares a module of light elements.
 
4356
                        </xs:documentation>
 
4357
                </xs:annotation>
 
4358
                <xs:complexType>
 
4359
                        <xs:sequence>
 
4360
                                <xs:element ref="asset" minOccurs="0">
 
4361
                                        <xs:annotation>
 
4362
                                                <xs:documentation>
 
4363
                                                The library_lights element may contain an asset element.
 
4364
                                                </xs:documentation>
 
4365
                                        </xs:annotation>
 
4366
                                </xs:element>
 
4367
                                <xs:element ref="light" maxOccurs="unbounded">
 
4368
                                        <xs:annotation>
 
4369
                                                <xs:documentation>
 
4370
                                                There must be at least one light element.
 
4371
                                                </xs:documentation>
 
4372
                                        </xs:annotation>
 
4373
                                </xs:element>
 
4374
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4375
                                        <xs:annotation>
 
4376
                                                <xs:documentation>
 
4377
                                                The extra element may appear any number of times.
 
4378
                                                </xs:documentation>
 
4379
                                        </xs:annotation>
 
4380
                                </xs:element>
 
4381
                        </xs:sequence>
 
4382
                        <xs:attribute name="id" type="xs:ID">
 
4383
                                <xs:annotation>
 
4384
                                        <xs:documentation>
 
4385
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4386
                                        This value must be unique within the instance document. Optional attribute.
 
4387
                                        </xs:documentation>
 
4388
                                </xs:annotation>
 
4389
                        </xs:attribute>
 
4390
                        <xs:attribute name="name" type="xs:NCName">
 
4391
                                <xs:annotation>
 
4392
                                        <xs:documentation>
 
4393
                                        The name attribute is the text string name of this element. Optional attribute.
 
4394
                                        </xs:documentation>
 
4395
                                </xs:annotation>
 
4396
                        </xs:attribute>
 
4397
                </xs:complexType>
 
4398
        </xs:element>
 
4399
        <xs:element name="library_materials">
 
4400
                <xs:annotation>
 
4401
                        <xs:documentation>
 
4402
                        The library_materials element declares a module of material elements.
 
4403
                        </xs:documentation>
 
4404
                </xs:annotation>
 
4405
                <xs:complexType>
 
4406
                        <xs:sequence>
 
4407
                                <xs:element ref="asset" minOccurs="0">
 
4408
                                        <xs:annotation>
 
4409
                                                <xs:documentation>
 
4410
                                                The library_materials element may contain an asset element.
 
4411
                                                </xs:documentation>
 
4412
                                        </xs:annotation>
 
4413
                                </xs:element>
 
4414
                                <xs:element ref="material" maxOccurs="unbounded">
 
4415
                                        <xs:annotation>
 
4416
                                                <xs:documentation>
 
4417
                                                There must be at least one material element.
 
4418
                                                </xs:documentation>
 
4419
                                        </xs:annotation>
 
4420
                                </xs:element>
 
4421
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4422
                                        <xs:annotation>
 
4423
                                                <xs:documentation>
 
4424
                                                The extra element may appear any number of times.
 
4425
                                                </xs:documentation>
 
4426
                                        </xs:annotation>
 
4427
                                </xs:element>
 
4428
                        </xs:sequence>
 
4429
                        <xs:attribute name="id" type="xs:ID">
 
4430
                                <xs:annotation>
 
4431
                                        <xs:documentation>
 
4432
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4433
                                        This value must be unique within the instance document. Optional attribute.
 
4434
                                        </xs:documentation>
 
4435
                                </xs:annotation>
 
4436
                        </xs:attribute>
 
4437
                        <xs:attribute name="name" type="xs:NCName">
 
4438
                                <xs:annotation>
 
4439
                                        <xs:documentation>
 
4440
                                        The name attribute is the text string name of this element. Optional attribute.
 
4441
                                        </xs:documentation>
 
4442
                                </xs:annotation>
 
4443
                        </xs:attribute>
 
4444
                </xs:complexType>
 
4445
        </xs:element>
 
4446
        <xs:element name="library_nodes">
 
4447
                <xs:annotation>
 
4448
                        <xs:documentation>
 
4449
                        The library_nodes element declares a module of node elements.
 
4450
                        </xs:documentation>
 
4451
                </xs:annotation>
 
4452
                <xs:complexType>
 
4453
                        <xs:sequence>
 
4454
                                <xs:element ref="asset" minOccurs="0">
 
4455
                                        <xs:annotation>
 
4456
                                                <xs:documentation>
 
4457
                                                The library_nodes element may contain an asset element.
 
4458
                                                </xs:documentation>
 
4459
                                        </xs:annotation>
 
4460
                                </xs:element>
 
4461
                                <xs:element ref="node" maxOccurs="unbounded">
 
4462
                                        <xs:annotation>
 
4463
                                                <xs:documentation>
 
4464
                                                There must be at least one node element.
 
4465
                                                </xs:documentation>
 
4466
                                        </xs:annotation>
 
4467
                                </xs:element>
 
4468
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4469
                                        <xs:annotation>
 
4470
                                                <xs:documentation>
 
4471
                                                The extra element may appear any number of times.
 
4472
                                                </xs:documentation>
 
4473
                                        </xs:annotation>
 
4474
                                </xs:element>
 
4475
                        </xs:sequence>
 
4476
                        <xs:attribute name="id" type="xs:ID">
 
4477
                                <xs:annotation>
 
4478
                                        <xs:documentation>
 
4479
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4480
                                        This value must be unique within the instance document. Optional attribute.
 
4481
                                        </xs:documentation>
 
4482
                                </xs:annotation>
 
4483
                        </xs:attribute>
 
4484
                        <xs:attribute name="name" type="xs:NCName">
 
4485
                                <xs:annotation>
 
4486
                                        <xs:documentation>
 
4487
                                        The name attribute is the text string name of this element. Optional attribute.
 
4488
                                        </xs:documentation>
 
4489
                                </xs:annotation>
 
4490
                        </xs:attribute>
 
4491
                </xs:complexType>
 
4492
        </xs:element>
 
4493
        <xs:element name="library_physics_materials">
 
4494
                <xs:annotation>
 
4495
                        <xs:documentation>
 
4496
                        The library_physics_materials element declares a module of physics_material elements.
 
4497
                        </xs:documentation>
 
4498
                </xs:annotation>
 
4499
                <xs:complexType>
 
4500
                        <xs:sequence>
 
4501
                                <xs:element ref="asset" minOccurs="0">
 
4502
                                        <xs:annotation>
 
4503
                                                <xs:documentation>
 
4504
                                                The library_physics_materials element may contain an asset element.
 
4505
                                                </xs:documentation>
 
4506
                                        </xs:annotation>
 
4507
                                </xs:element>
 
4508
                                <xs:element ref="physics_material" maxOccurs="unbounded">
 
4509
                                        <xs:annotation>
 
4510
                                                <xs:documentation>
 
4511
                                                There must be at least one physics_material element.
 
4512
                                                </xs:documentation>
 
4513
                                        </xs:annotation>
 
4514
                                </xs:element>
 
4515
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4516
                                        <xs:annotation>
 
4517
                                                <xs:documentation>
 
4518
                                                The extra element may appear any number of times.
 
4519
                                                </xs:documentation>
 
4520
                                        </xs:annotation>
 
4521
                                </xs:element>
 
4522
                        </xs:sequence>
 
4523
                        <xs:attribute name="id" type="xs:ID">
 
4524
                                <xs:annotation>
 
4525
                                        <xs:documentation>
 
4526
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4527
                                        This value must be unique within the instance document. Optional attribute.
 
4528
                                        </xs:documentation>
 
4529
                                </xs:annotation>
 
4530
                        </xs:attribute>
 
4531
                        <xs:attribute name="name" type="xs:NCName">
 
4532
                                <xs:annotation>
 
4533
                                        <xs:documentation>
 
4534
                                        The name attribute is the text string name of this element. Optional attribute.
 
4535
                                        </xs:documentation>
 
4536
                                </xs:annotation>
 
4537
                        </xs:attribute>
 
4538
                </xs:complexType>
 
4539
        </xs:element>
 
4540
        <xs:element name="library_physics_models">
 
4541
                <xs:annotation>
 
4542
                        <xs:documentation>
 
4543
                        The library_physics_models element declares a module of physics_model elements.
 
4544
                        </xs:documentation>
 
4545
                </xs:annotation>
 
4546
                <xs:complexType>
 
4547
                        <xs:sequence>
 
4548
                                <xs:element ref="asset" minOccurs="0">
 
4549
                                        <xs:annotation>
 
4550
                                                <xs:documentation>
 
4551
                                                The library_physics_models element may contain an asset element.
 
4552
                                                </xs:documentation>
 
4553
                                        </xs:annotation>
 
4554
                                </xs:element>
 
4555
                                <xs:element ref="physics_model" maxOccurs="unbounded">
 
4556
                                        <xs:annotation>
 
4557
                                                <xs:documentation>
 
4558
                                                There must be at least one physics_model element.
 
4559
                                                </xs:documentation>
 
4560
                                        </xs:annotation>
 
4561
                                </xs:element>
 
4562
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4563
                                        <xs:annotation>
 
4564
                                                <xs:documentation>
 
4565
                                                The extra element may appear any number of times.
 
4566
                                                </xs:documentation>
 
4567
                                        </xs:annotation>
 
4568
                                </xs:element>
 
4569
                        </xs:sequence>
 
4570
                        <xs:attribute name="id" type="xs:ID">
 
4571
                                <xs:annotation>
 
4572
                                        <xs:documentation>
 
4573
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4574
                                        This value must be unique within the instance document. Optional attribute.
 
4575
                                        </xs:documentation>
 
4576
                                </xs:annotation>
 
4577
                        </xs:attribute>
 
4578
                        <xs:attribute name="name" type="xs:NCName">
 
4579
                                <xs:annotation>
 
4580
                                        <xs:documentation>
 
4581
                                        The name attribute is the text string name of this element. Optional attribute.
 
4582
                                        </xs:documentation>
 
4583
                                </xs:annotation>
 
4584
                        </xs:attribute>
 
4585
                </xs:complexType>
 
4586
        </xs:element>
 
4587
        <xs:element name="library_physics_scenes">
 
4588
                <xs:annotation>
 
4589
                        <xs:documentation>
 
4590
                        The library_physics_scenes element declares a module of physics_scene elements.
 
4591
                        </xs:documentation>
 
4592
                </xs:annotation>
 
4593
                <xs:complexType>
 
4594
                        <xs:sequence>
 
4595
                                <xs:element ref="asset" minOccurs="0">
 
4596
                                        <xs:annotation>
 
4597
                                                <xs:documentation>
 
4598
                                                The library_physics_scenes element may contain an asset element.
 
4599
                                                </xs:documentation>
 
4600
                                        </xs:annotation>
 
4601
                                </xs:element>
 
4602
                                <xs:element ref="physics_scene" maxOccurs="unbounded">
 
4603
                                        <xs:annotation>
 
4604
                                                <xs:documentation>
 
4605
                                                There must be at least one physics_scene element.
 
4606
                                                </xs:documentation>
 
4607
                                        </xs:annotation>
 
4608
                                </xs:element>
 
4609
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4610
                                        <xs:annotation>
 
4611
                                                <xs:documentation>
 
4612
                                                The extra element may appear any number of times.
 
4613
                                                </xs:documentation>
 
4614
                                        </xs:annotation>
 
4615
                                </xs:element>
 
4616
                        </xs:sequence>
 
4617
                        <xs:attribute name="id" type="xs:ID">
 
4618
                                <xs:annotation>
 
4619
                                        <xs:documentation>
 
4620
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4621
                                        This value must be unique within the instance document. Optional attribute.
 
4622
                                        </xs:documentation>
 
4623
                                </xs:annotation>
 
4624
                        </xs:attribute>
 
4625
                        <xs:attribute name="name" type="xs:NCName">
 
4626
                                <xs:annotation>
 
4627
                                        <xs:documentation>
 
4628
                                        The name attribute is the text string name of this element. Optional attribute.
 
4629
                                        </xs:documentation>
 
4630
                                </xs:annotation>
 
4631
                        </xs:attribute>
 
4632
                </xs:complexType>
 
4633
        </xs:element>
 
4634
        <xs:element name="library_visual_scenes">
 
4635
                <xs:annotation>
 
4636
                        <xs:documentation>
 
4637
                        The library_visual_scenes element declares a module of visual_scene elements.
 
4638
                        </xs:documentation>
 
4639
                </xs:annotation>
 
4640
                <xs:complexType>
 
4641
                        <xs:sequence>
 
4642
                                <xs:element ref="asset" minOccurs="0">
 
4643
                                        <xs:annotation>
 
4644
                                                <xs:documentation>
 
4645
                                                The library_visual_scenes element may contain an asset element.
 
4646
                                                </xs:documentation>
 
4647
                                        </xs:annotation>
 
4648
                                </xs:element>
 
4649
                                <xs:element ref="visual_scene" maxOccurs="unbounded">
 
4650
                                        <xs:annotation>
 
4651
                                                <xs:documentation>
 
4652
                                                There must be at least one visual_scene element.
 
4653
                                                </xs:documentation>
 
4654
                                        </xs:annotation>
 
4655
                                </xs:element>
 
4656
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
4657
                                        <xs:annotation>
 
4658
                                                <xs:documentation>
 
4659
                                                The extra element may appear any number of times.
 
4660
                                                </xs:documentation>
 
4661
                                        </xs:annotation>
 
4662
                                </xs:element>
 
4663
                        </xs:sequence>
 
4664
                        <xs:attribute name="id" type="xs:ID">
 
4665
                                <xs:annotation>
 
4666
                                        <xs:documentation>
 
4667
                                        The id attribute is a text string containing the unique identifier of this element. 
 
4668
                                        This value must be unique within the instance document. Optional attribute.
 
4669
                                        </xs:documentation>
 
4670
                                </xs:annotation>
 
4671
                        </xs:attribute>
 
4672
                        <xs:attribute name="name" type="xs:NCName">
 
4673
                                <xs:annotation>
 
4674
                                        <xs:documentation>
 
4675
                                        The name attribute is the text string name of this element. Optional attribute.
 
4676
                                        </xs:documentation>
 
4677
                                </xs:annotation>
 
4678
                        </xs:attribute>
 
4679
                </xs:complexType>
 
4680
        </xs:element>
 
4681
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
 
4682
        <!-- COLLADA FX types in common scope     -->
 
4683
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
 
4684
        <xs:simpleType name="fx_color_common">
 
4685
                <xs:restriction base="float4"/>
 
4686
        </xs:simpleType>
 
4687
        <xs:simpleType name="fx_opaque_enum">
 
4688
                <xs:restriction base="xs:string">
 
4689
                        <xs:enumeration value="A_ONE">
 
4690
                                <xs:annotation>
 
4691
                                        <xs:documentation>
 
4692
                                                When a transparent opaque attribute is set to A_ONE, it means the transparency information will be taken from the alpha channel of the color, texture, or parameter supplying the value. The value of 1.0 is opaque in this mode.
 
4693
                                        </xs:documentation>
 
4694
                                </xs:annotation>
 
4695
                        </xs:enumeration>
 
4696
                        <xs:enumeration value="RGB_ZERO">
 
4697
                                <xs:annotation>
 
4698
                                        <xs:documentation>
 
4699
                                                When a transparent opaque attribute is set to RGB_ZERO, it means the transparency information will be taken from the red, green, and blue channels of the color, texture, or parameter supplying the value. Each channel is modulated independently. The value of 0.0 is opaque in this mode.
 
4700
                                        </xs:documentation>
 
4701
                                </xs:annotation>
 
4702
                        </xs:enumeration>
 
4703
                </xs:restriction>
 
4704
        </xs:simpleType>
 
4705
        <xs:simpleType name="fx_surface_type_enum">
 
4706
                <xs:restriction base="xs:string">
 
4707
                        <xs:enumeration value="UNTYPED">
 
4708
                                <xs:annotation>
 
4709
                                        <xs:documentation>
 
4710
                                                When a surface's type attribute is set to UNTYPED, its type is initially unknown and established later by the context in which it is used, such as by a texture sampler that references it. A surface of any other type may be changed into an UNTYPED surface at run-time, as if it were created by &lt;newparam&gt;, using &lt;setparam&gt;. If there is a type mismatch between a &lt;setparam&gt; operation and what the run-time decides the type should be, the result is profile- and platform-specific behavior.
 
4711
                                        </xs:documentation>
 
4712
                                </xs:annotation>
 
4713
                        </xs:enumeration>
 
4714
                        <xs:enumeration value="1D"/>
 
4715
                        <xs:enumeration value="2D"/>
 
4716
                        <xs:enumeration value="3D"/>
 
4717
                        <xs:enumeration value="RECT"/>
 
4718
                        <xs:enumeration value="CUBE"/>
 
4719
                        <xs:enumeration value="DEPTH"/>
 
4720
                </xs:restriction>
 
4721
        </xs:simpleType>
 
4722
        <xs:simpleType name="fx_surface_face_enum">
 
4723
                <xs:restriction base="xs:string">
 
4724
                        <xs:enumeration value="POSITIVE_X"/>
 
4725
                        <xs:enumeration value="NEGATIVE_X"/>
 
4726
                        <xs:enumeration value="POSITIVE_Y"/>
 
4727
                        <xs:enumeration value="NEGATIVE_Y"/>
 
4728
                        <xs:enumeration value="POSITIVE_Z"/>
 
4729
                        <xs:enumeration value="NEGATIVE_Z"/>
 
4730
                </xs:restriction>
 
4731
        </xs:simpleType>
 
4732
        <xs:simpleType name="fx_surface_format_hint_channels_enum">
 
4733
                <xs:annotation>
 
4734
                        <xs:documentation>The per-texel layout of the format.  The length of the string indicate how many channels there are and the letter respresents the name of the channel.  There are typically 0 to 4 channels.</xs:documentation>
 
4735
                </xs:annotation>
 
4736
                <xs:restriction base="xs:string">
 
4737
                        <xs:enumeration value="RGB">
 
4738
                                <xs:annotation>
 
4739
                                        <xs:documentation>RGB color  map</xs:documentation>
 
4740
                                </xs:annotation>
 
4741
                        </xs:enumeration>
 
4742
                        <xs:enumeration value="RGBA">
 
4743
                                <xs:annotation>
 
4744
                                        <xs:documentation>RGB color + Alpha map often used for color + transparency or other things packed into channel A like specular power </xs:documentation>
 
4745
                                </xs:annotation>
 
4746
                        </xs:enumeration>
 
4747
                        <xs:enumeration value="L">
 
4748
                                <xs:annotation>
 
4749
                                        <xs:documentation>Luminance map often used for light mapping </xs:documentation>
 
4750
                                </xs:annotation>
 
4751
                        </xs:enumeration>
 
4752
                        <xs:enumeration value="LA">
 
4753
                                <xs:annotation>
 
4754
                                        <xs:documentation>Luminance+Alpha map often used for light mapping </xs:documentation>
 
4755
                                </xs:annotation>
 
4756
                        </xs:enumeration>
 
4757
                        <xs:enumeration value="D">
 
4758
                                <xs:annotation>
 
4759
                                        <xs:documentation>Depth map often used for displacement, parellax, relief, or shadow mapping </xs:documentation>
 
4760
                                </xs:annotation>
 
4761
                        </xs:enumeration>
 
4762
                        <xs:enumeration value="XYZ">
 
4763
                                <xs:annotation>
 
4764
                                        <xs:documentation>Typically used for normal maps or 3component displacement maps.</xs:documentation>
 
4765
                                </xs:annotation>
 
4766
                        </xs:enumeration>
 
4767
                        <xs:enumeration value="XYZW">
 
4768
                                <xs:annotation>
 
4769
                                        <xs:documentation>Typically used for normal maps where W is the depth for relief or parrallax mapping </xs:documentation>
 
4770
                                </xs:annotation>
 
4771
                        </xs:enumeration>
 
4772
                </xs:restriction>
 
4773
        </xs:simpleType>
 
4774
        <xs:simpleType name="fx_surface_format_hint_precision_enum">
 
4775
                <xs:annotation>
 
4776
                        <xs:documentation>Each channel of the texel has a precision.  Typically these are all linked together.  An exact format lay lower the precision of an individual channel but applying a higher precision by linking the channels together may still convey the same information.</xs:documentation>
 
4777
                </xs:annotation>
 
4778
                <xs:restriction base="xs:string">
 
4779
                        <xs:enumeration value="LOW">
 
4780
                                <xs:annotation>
 
4781
                                        <xs:documentation>For integers this typically represents 8 bits.  For floats typically 16 bits.</xs:documentation>
 
4782
                                </xs:annotation>
 
4783
                        </xs:enumeration>
 
4784
                        <xs:enumeration value="MID">
 
4785
                                <xs:annotation>
 
4786
                                        <xs:documentation>For integers this typically represents 8 to 24 bits.  For floats typically 16 to 32 bits.</xs:documentation>
 
4787
                                </xs:annotation>
 
4788
                        </xs:enumeration>
 
4789
                        <xs:enumeration value="HIGH">
 
4790
                                <xs:annotation>
 
4791
                                        <xs:documentation>For integers this typically represents 16 to 32 bits.  For floats typically 24 to 32 bits.</xs:documentation>
 
4792
                                </xs:annotation>
 
4793
                        </xs:enumeration>
 
4794
                </xs:restriction>
 
4795
        </xs:simpleType>
 
4796
        <xs:simpleType name="fx_surface_format_hint_range_enum">
 
4797
                <xs:annotation>
 
4798
                        <xs:documentation>Each channel represents a range of values. Some example ranges are signed or unsigned integers, or between between a clamped range such as 0.0f to 1.0f, or high dynamic range via floating point</xs:documentation>
 
4799
                </xs:annotation>
 
4800
                <xs:restriction base="xs:string">
 
4801
                        <xs:enumeration value="SNORM">
 
4802
                                <xs:annotation>
 
4803
                                        <xs:documentation>Format is representing a decimal value that remains within the -1 to 1 range. Implimentation could be integer-fixedpoint or floats.</xs:documentation>
 
4804
                                </xs:annotation>
 
4805
                        </xs:enumeration>
 
4806
                        <xs:enumeration value="UNORM">
 
4807
                                <xs:annotation>
 
4808
                                        <xs:documentation>Format is representing a decimal value that remains within the 0 to 1 range. Implimentation could be integer-fixedpoint or floats.</xs:documentation>
 
4809
                                </xs:annotation>
 
4810
                        </xs:enumeration>
 
4811
                        <xs:enumeration value="SINT">
 
4812
                                <xs:annotation>
 
4813
                                        <xs:documentation>Format is representing signed integer numbers.  (ex. 8bits = -128 to 127)</xs:documentation>
 
4814
                                </xs:annotation>
 
4815
                        </xs:enumeration>
 
4816
                        <xs:enumeration value="UINT">
 
4817
                                <xs:annotation>
 
4818
                                        <xs:documentation>Format is representing unsigned integer numbers.  (ex. 8bits = 0 to 255)</xs:documentation>
 
4819
                                </xs:annotation>
 
4820
                        </xs:enumeration>
 
4821
                        <xs:enumeration value="FLOAT">
 
4822
                                <xs:annotation>
 
4823
                                        <xs:documentation>Format should support full floating point ranges.  High precision is expected to be 32bit. Mid precision may be 16 to 32 bit.  Low precision is expected to be 16 bit.</xs:documentation>
 
4824
                                </xs:annotation>
 
4825
                        </xs:enumeration>
 
4826
                </xs:restriction>
 
4827
        </xs:simpleType>
 
4828
        <xs:simpleType name="fx_surface_format_hint_option_enum">
 
4829
                <xs:annotation>
 
4830
                        <xs:documentation>Additional hints about data relationships and other things to help the application pick the best format.</xs:documentation>
 
4831
                </xs:annotation>
 
4832
                <xs:restriction base="xs:string">
 
4833
                        <xs:enumeration value="SRGB_GAMMA">
 
4834
                                <xs:annotation>
 
4835
                                        <xs:documentation>colors are stored with respect to the sRGB 2.2 gamma curve rather than linear</xs:documentation>
 
4836
                                </xs:annotation>
 
4837
                        </xs:enumeration>
 
4838
                        <xs:enumeration value="NORMALIZED3">
 
4839
                                <xs:annotation>
 
4840
                                        <xs:documentation>the texel's XYZ/RGB should be normalized such as in a normal map.</xs:documentation>
 
4841
                                </xs:annotation>
 
4842
                        </xs:enumeration>
 
4843
                        <xs:enumeration value="NORMALIZED4">
 
4844
                                <xs:annotation>
 
4845
                                        <xs:documentation>the texel's XYZW/RGBA should be normalized such as in a normal map.</xs:documentation>
 
4846
                                </xs:annotation>
 
4847
                        </xs:enumeration>
 
4848
                        <xs:enumeration value="COMPRESSABLE">
 
4849
                                <xs:annotation>
 
4850
                                        <xs:documentation>The surface may use run-time compression.  Considering the best compression based on desired, channel, range, precision, and options </xs:documentation>
 
4851
                                </xs:annotation>
 
4852
                        </xs:enumeration>
 
4853
                </xs:restriction>
 
4854
        </xs:simpleType>
 
4855
        <xs:complexType name="fx_surface_format_hint_common">
 
4856
                <xs:annotation>
 
4857
                        <xs:documentation>If the exact format cannot be resolve via other methods then the format_hint will describe the important features of the format so that the application may select a compatable or close format</xs:documentation>
 
4858
                </xs:annotation>
 
4859
                <xs:sequence>
 
4860
                        <xs:element name="channels" type="fx_surface_format_hint_channels_enum">
 
4861
                                <xs:annotation>
 
4862
                                        <xs:documentation>The per-texel layout of the format.  The length of the string indicate how many channels there are and the letter respresents the name of the channel.  There are typically 0 to 4 channels.</xs:documentation>
 
4863
                                </xs:annotation>
 
4864
                        </xs:element>
 
4865
                        <xs:element name="range" type="fx_surface_format_hint_range_enum">
 
4866
                                <xs:annotation>
 
4867
                                        <xs:documentation>Each channel represents a range of values. Some example ranges are signed or unsigned integers, or between between a clamped range such as 0.0f to 1.0f, or high dynamic range via floating point</xs:documentation>
 
4868
                                </xs:annotation>
 
4869
                        </xs:element>
 
4870
                        <xs:element name="precision" type="fx_surface_format_hint_precision_enum" minOccurs="0">
 
4871
                                <xs:annotation>
 
4872
                                        <xs:documentation>Each channel of the texel has a precision.  Typically these are all linked together.  An exact format lay lower the precision of an individual channel but applying a higher precision by linking the channels together may still convey the same information.</xs:documentation>
 
4873
                                </xs:annotation>
 
4874
                        </xs:element>
 
4875
                        <xs:element name="option" type="fx_surface_format_hint_option_enum" minOccurs="0" maxOccurs="unbounded">
 
4876
                                <xs:annotation>
 
4877
                                        <xs:documentation>Additional hints about data relationships and other things to help the application pick the best format.</xs:documentation>
 
4878
                                </xs:annotation>
 
4879
                        </xs:element>
 
4880
                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
4881
                </xs:sequence>
 
4882
        </xs:complexType>
 
4883
        <xs:complexType name="fx_surface_init_planar_common">
 
4884
                <xs:annotation>
 
4885
                        <xs:documentation>For 1D, 2D, RECT surface types</xs:documentation>
 
4886
                </xs:annotation>
 
4887
                <xs:choice>
 
4888
                        <xs:annotation>
 
4889
                                <xs:documentation>This choice exists for consistancy with other init types (volume and cube).  When other initialization methods are needed.</xs:documentation>
 
4890
                        </xs:annotation>
 
4891
                        <xs:element name="all">
 
4892
                                <xs:annotation>
 
4893
                                        <xs:documentation>Init the entire surface with one compound image such as DDS</xs:documentation>
 
4894
                                </xs:annotation>
 
4895
                                <xs:complexType>
 
4896
                                        <xs:attribute name="ref" type="xs:IDREF" use="required"/>
 
4897
                                </xs:complexType>
 
4898
                        </xs:element>
 
4899
                </xs:choice>
 
4900
        </xs:complexType>
 
4901
        <xs:complexType name="fx_surface_init_volume_common">
 
4902
                <xs:choice>
 
4903
                        <xs:element name="all">
 
4904
                                <xs:annotation>
 
4905
                                        <xs:documentation>Init the entire surface with one compound image such as DDS</xs:documentation>
 
4906
                                </xs:annotation>
 
4907
                                <xs:complexType>
 
4908
                                        <xs:attribute name="ref" type="xs:IDREF" use="required"/>
 
4909
                                </xs:complexType>
 
4910
                        </xs:element>
 
4911
                        <xs:element name="primary">
 
4912
                                <xs:annotation>
 
4913
                                        <xs:documentation>Init mip level 0 of the surface with one compound image such as DDS.  Use of this element expects that the surface has element mip_levels=0 or mipmap_generate.</xs:documentation>
 
4914
                                </xs:annotation>
 
4915
                                <xs:complexType>
 
4916
                                        <xs:attribute name="ref" type="xs:IDREF" use="required"/>
 
4917
                                </xs:complexType>
 
4918
                        </xs:element>
 
4919
                </xs:choice>
 
4920
        </xs:complexType>
 
4921
        <xs:complexType name="fx_surface_init_cube_common">
 
4922
                <xs:choice>
 
4923
                        <xs:element name="all">
 
4924
                                <xs:annotation>
 
4925
                                        <xs:documentation>Init the entire surface with one compound image such as DDS</xs:documentation>
 
4926
                                </xs:annotation>
 
4927
                                <xs:complexType>
 
4928
                                        <xs:attribute name="ref" type="xs:IDREF" use="required"/>
 
4929
                                </xs:complexType>
 
4930
                        </xs:element>
 
4931
                        <xs:element name="primary">
 
4932
                                <xs:annotation>
 
4933
                                        <xs:documentation>Init all primary mip level 0 subsurfaces with one compound image such as DDS.  Use of this element expects that the surface has element mip_levels=0 or mipmap_generate.</xs:documentation>
 
4934
                                </xs:annotation>
 
4935
                                <xs:complexType>
 
4936
                                        <xs:sequence minOccurs="0">
 
4937
                                                <xs:annotation>
 
4938
                                                        <xs:documentation>This sequence exists to allow the order elements to be optional but require that if they exist there must be 6 of them.</xs:documentation>
 
4939
                                                </xs:annotation>
 
4940
                                                <xs:element name="order" type="fx_surface_face_enum" minOccurs="6" maxOccurs="6">
 
4941
                                                        <xs:annotation>
 
4942
                                                                <xs:documentation>If the image dues not natively describe the face ordering then this series of order elements will describe which face the index belongs too</xs:documentation>
 
4943
                                                        </xs:annotation>
 
4944
                                                </xs:element>
 
4945
                                        </xs:sequence>
 
4946
                                        <xs:attribute name="ref" type="xs:IDREF" use="required"/>
 
4947
                                </xs:complexType>
 
4948
                        </xs:element>
 
4949
                        <xs:element name="face" minOccurs="6" maxOccurs="6">
 
4950
                                <xs:annotation>
 
4951
                                        <xs:documentation>Init each face mipchain with one compound image such as DDS</xs:documentation>
 
4952
                                </xs:annotation>
 
4953
                                <xs:complexType>
 
4954
                                        <xs:attribute name="ref" type="xs:IDREF" use="required"/>
 
4955
                                </xs:complexType>
 
4956
                        </xs:element>
 
4957
                </xs:choice>
 
4958
        </xs:complexType>
 
4959
        <xs:complexType name="fx_surface_init_from_common">
 
4960
                <xs:annotation>
 
4961
                        <xs:documentation>
 
4962
                                This element is an IDREF which specifies the image to use to initialize a specific mip of a 1D or 2D surface, 3D slice, or Cube face.
 
4963
                        </xs:documentation>
 
4964
                </xs:annotation>
 
4965
                <xs:simpleContent>
 
4966
                        <xs:extension base="xs:IDREF">
 
4967
                                <xs:attribute name="mip" type="xs:unsignedInt" default="0"/>
 
4968
                                <xs:attribute name="slice" type="xs:unsignedInt" default="0"/>
 
4969
                                <xs:attribute name="face" type="fx_surface_face_enum" default="POSITIVE_X"/>
 
4970
                        </xs:extension>
 
4971
                </xs:simpleContent>
 
4972
        </xs:complexType>
 
4973
        <xs:group name="fx_surface_init_common">
 
4974
                <xs:annotation>
 
4975
                        <xs:documentation>The common set of initalization options for surfaces.  Choose which is appropriate for your surface based on type and other characteristics. described by the annotation docs on the child elements.</xs:documentation>
 
4976
                </xs:annotation>
 
4977
                <xs:choice>
 
4978
                        <xs:element name="init_as_null">
 
4979
                                <xs:annotation>
 
4980
                                        <xs:documentation>This surface is intended to be initialized later externally by a "setparam" element.  If it is used before being initialized there is profile and platform specific behavior.  Most elements on the surface element containing this will be ignored including mip_levels, mipmap_generate, size, viewport_ratio, and format.</xs:documentation>
 
4981
                                </xs:annotation>
 
4982
                        </xs:element>
 
4983
                        <xs:element name="init_as_target">
 
4984
                                <xs:annotation>
 
4985
                                        <xs:documentation>Init as a target for depth, stencil, or color.  It does not need image data. Surface should not have mipmap_generate when using this.</xs:documentation>
 
4986
                                </xs:annotation>
 
4987
                        </xs:element>
 
4988
                        <xs:element name="init_cube" type="fx_surface_init_cube_common">
 
4989
                                <xs:annotation>
 
4990
                                        <xs:documentation>Init a CUBE from a compound image such as DDS</xs:documentation>
 
4991
                                </xs:annotation>
 
4992
                        </xs:element>
 
4993
                        <xs:element name="init_volume" type="fx_surface_init_volume_common">
 
4994
                                <xs:annotation>
 
4995
                                        <xs:documentation>Init a 3D from a compound image such as DDS</xs:documentation>
 
4996
                                </xs:annotation>
 
4997
                        </xs:element>
 
4998
                        <xs:element name="init_planar" type="fx_surface_init_planar_common">
 
4999
                                <xs:annotation>
 
5000
                                        <xs:documentation>Init a 1D,2D,RECT,DEPTH from a compound image such as DDS</xs:documentation>
 
5001
                                </xs:annotation>
 
5002
                        </xs:element>
 
5003
                        <xs:element name="init_from" type="fx_surface_init_from_common" maxOccurs="unbounded">
 
5004
                                <xs:annotation>
 
5005
                                        <xs:documentation>Initialize the surface one sub-surface at a time by specifying combinations of mip, face, and slice which make sense for a particular surface type.  Each sub-surface is initialized by a common 2D image, not a complex compound image such as DDS. If not all subsurfaces are initialized, it is invalid and will result in profile and platform specific behavior unless mipmap_generate is responsible for initializing the remainder of the sub-surfaces</xs:documentation>
 
5006
                                </xs:annotation>
 
5007
                        </xs:element>
 
5008
                </xs:choice>
 
5009
        </xs:group>
 
5010
        <xs:complexType name="fx_surface_common">
 
5011
                <xs:annotation>
 
5012
                        <xs:documentation>
 
5013
                        The fx_surface_common type is used to declare a resource that can be used both as the source for texture samples and as the target of a rendering pass.
 
5014
                        </xs:documentation>
 
5015
                </xs:annotation>
 
5016
                <xs:sequence>
 
5017
                        <xs:group ref="fx_surface_init_common" minOccurs="0">
 
5018
                                <xs:annotation>
 
5019
                                        <xs:documentation>The common set of initalization options for surfaces.  Choose which is appropriate for your surface based on the type attribute and other characteristics described by the annotation docs on the choiced child elements of this type.</xs:documentation>
 
5020
                                </xs:annotation>
 
5021
                        </xs:group>
 
5022
                        <xs:element name="format" type="xs:token" minOccurs="0">
 
5023
                                <xs:annotation>
 
5024
                                        <xs:documentation>Contains a string representing the profile and platform specific texel format that the author would like this surface to use.  If this element is not specified then the application will use a common format R8G8B8A8 with linear color gradient, not  sRGB.</xs:documentation>
 
5025
                                </xs:annotation>
 
5026
                        </xs:element>
 
5027
                        <xs:element name="format_hint" type="fx_surface_format_hint_common" minOccurs="0">
 
5028
                                <xs:annotation>
 
5029
                                        <xs:documentation>If the exact format cannot be resolved via the "format" element then the format_hint will describe the important features of the format so that the application may select a compatable or close format</xs:documentation>
 
5030
                                </xs:annotation>
 
5031
                        </xs:element>
 
5032
                        <xs:choice minOccurs="0">
 
5033
                                <xs:element name="size" type="int3" default="0 0 0">
 
5034
                                        <xs:annotation>
 
5035
                                                <xs:documentation>The surface should be sized to these exact dimensions</xs:documentation>
 
5036
                                        </xs:annotation>
 
5037
                                </xs:element>
 
5038
                                <xs:element name="viewport_ratio" type="float2" default="1 1">
 
5039
                                        <xs:annotation>
 
5040
                                                <xs:documentation>The surface should be sized to a dimension based on this ratio of the viewport's dimensions in pixels</xs:documentation>
 
5041
                                        </xs:annotation>
 
5042
                                </xs:element>
 
5043
                        </xs:choice>
 
5044
                        <xs:element name="mip_levels" type="xs:unsignedInt" default="0" minOccurs="0">
 
5045
                                <xs:annotation>
 
5046
                                        <xs:documentation>the surface should contain the following number of MIP levels.  If this element is not present it is assumed that all miplevels exist until a dimension becomes 1 texel.  To create a surface that has only one level of mip maps (mip=0) set this to 1.  If the value is 0 the result is the same as if mip_levels was unspecified, all possible mip_levels will exist.</xs:documentation>
 
5047
                                </xs:annotation>
 
5048
                        </xs:element>
 
5049
                        <xs:element name="mipmap_generate" type="xs:boolean" minOccurs="0">
 
5050
                                <xs:annotation>
 
5051
                                        <xs:documentation>By default it is assumed that mipmaps are supplied by the author so, if not all subsurfaces are initialized, it is invalid and will result in profile and platform specific behavior unless mipmap_generate is responsible for initializing the remainder of the sub-surfaces</xs:documentation>
 
5052
                                </xs:annotation>
 
5053
                        </xs:element>
 
5054
                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
5055
                </xs:sequence>
 
5056
                <xs:attribute name="type" type="fx_surface_type_enum" use="required">
 
5057
                        <xs:annotation>
 
5058
                                <xs:documentation>Specifying the type of a surface is mandatory though the type may be "UNTYPED".  When a surface is typed as UNTYPED, it is said to be temporarily untyped and instead will be typed later by the context it is used in such as which samplers reference it in that are used in a particular technique or pass.   If there is a type mismatch between what is set into it later and what the runtime decides the type should be the result in profile and platform specific behavior.</xs:documentation>
 
5059
                        </xs:annotation>
 
5060
                </xs:attribute>
 
5061
        </xs:complexType>
 
5062
        <xs:simpleType name="fx_sampler_wrap_common">
 
5063
                <xs:restriction base="xs:NMTOKEN">
 
5064
                        <xs:enumeration value="NONE"/>
 
5065
                        <xs:enumeration value="WRAP"/>
 
5066
                        <xs:enumeration value="MIRROR"/>
 
5067
                        <xs:enumeration value="CLAMP"/>
 
5068
                        <xs:enumeration value="BORDER"/>
 
5069
                </xs:restriction>
 
5070
        </xs:simpleType>
 
5071
        <xs:simpleType name="fx_sampler_filter_common">
 
5072
                <xs:restriction base="xs:NMTOKEN">
 
5073
                        <xs:enumeration value="NONE"/>
 
5074
                        <xs:enumeration value="NEAREST"/>
 
5075
                        <xs:enumeration value="LINEAR"/>
 
5076
                        <xs:enumeration value="NEAREST_MIPMAP_NEAREST"/>
 
5077
                        <xs:enumeration value="LINEAR_MIPMAP_NEAREST"/>
 
5078
                        <xs:enumeration value="NEAREST_MIPMAP_LINEAR"/>
 
5079
                        <xs:enumeration value="LINEAR_MIPMAP_LINEAR"/>
 
5080
                </xs:restriction>
 
5081
        </xs:simpleType>
 
5082
        <xs:complexType name="fx_sampler1D_common">
 
5083
                <xs:annotation>
 
5084
                        <xs:documentation>
 
5085
                        A one-dimensional texture sampler.
 
5086
                        </xs:documentation>
 
5087
                </xs:annotation>
 
5088
                <xs:sequence>
 
5089
                        <xs:element name="source" type="xs:NCName"/>
 
5090
                        <xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5091
                        <xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5092
                        <xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5093
                        <xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5094
                        <xs:element name="border_color" type="fx_color_common" minOccurs="0"/>
 
5095
                        <xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="0" minOccurs="0"/>
 
5096
                        <xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
 
5097
                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
5098
                </xs:sequence>
 
5099
        </xs:complexType>
 
5100
        <xs:complexType name="fx_sampler2D_common">
 
5101
                <xs:annotation>
 
5102
                        <xs:documentation>
 
5103
                        A two-dimensional texture sampler.
 
5104
                        </xs:documentation>
 
5105
                </xs:annotation>
 
5106
                <xs:sequence>
 
5107
                        <xs:element name="source" type="xs:NCName"/>
 
5108
                        <xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5109
                        <xs:element name="wrap_t" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5110
                        <xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5111
                        <xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5112
                        <xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5113
                        <xs:element name="border_color" type="fx_color_common" minOccurs="0"/>
 
5114
                        <xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="255" minOccurs="0"/>
 
5115
                        <xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
 
5116
                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
5117
                </xs:sequence>
 
5118
        </xs:complexType>
 
5119
        <xs:complexType name="fx_sampler3D_common">
 
5120
                <xs:annotation>
 
5121
                        <xs:documentation>
 
5122
                        A three-dimensional texture sampler.
 
5123
                        </xs:documentation>
 
5124
                </xs:annotation>
 
5125
                <xs:sequence>
 
5126
                        <xs:element name="source" type="xs:NCName"/>
 
5127
                        <xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5128
                        <xs:element name="wrap_t" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5129
                        <xs:element name="wrap_p" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5130
                        <xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5131
                        <xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5132
                        <xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5133
                        <xs:element name="border_color" type="fx_color_common" minOccurs="0"/>
 
5134
                        <xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="255" minOccurs="0"/>
 
5135
                        <xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
 
5136
                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
5137
                </xs:sequence>
 
5138
        </xs:complexType>
 
5139
        <xs:complexType name="fx_samplerCUBE_common">
 
5140
                <xs:annotation>
 
5141
                        <xs:documentation>
 
5142
                        A texture sampler for cube maps.
 
5143
                        </xs:documentation>
 
5144
                </xs:annotation>
 
5145
                <xs:sequence>
 
5146
                        <xs:element name="source" type="xs:NCName"/>
 
5147
                        <xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5148
                        <xs:element name="wrap_t" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5149
                        <xs:element name="wrap_p" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5150
                        <xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5151
                        <xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5152
                        <xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5153
                        <xs:element name="border_color" type="fx_color_common" minOccurs="0"/>
 
5154
                        <xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="255" minOccurs="0"/>
 
5155
                        <xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
 
5156
                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
5157
                </xs:sequence>
 
5158
        </xs:complexType>
 
5159
        <xs:complexType name="fx_samplerRECT_common">
 
5160
                <xs:annotation>
 
5161
                        <xs:documentation>
 
5162
                        A two-dimensional texture sampler.
 
5163
                        </xs:documentation>
 
5164
                </xs:annotation>
 
5165
                <xs:sequence>
 
5166
                        <xs:element name="source" type="xs:NCName"/>
 
5167
                        <xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5168
                        <xs:element name="wrap_t" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5169
                        <xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5170
                        <xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5171
                        <xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5172
                        <xs:element name="border_color" type="fx_color_common" minOccurs="0"/>
 
5173
                        <xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="255" minOccurs="0"/>
 
5174
                        <xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
 
5175
                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
5176
                </xs:sequence>
 
5177
        </xs:complexType>
 
5178
        <xs:complexType name="fx_samplerDEPTH_common">
 
5179
                <xs:annotation>
 
5180
                        <xs:documentation>
 
5181
                        A texture sampler for depth maps.
 
5182
                        </xs:documentation>
 
5183
                </xs:annotation>
 
5184
                <xs:sequence>
 
5185
                        <xs:element name="source" type="xs:NCName"/>
 
5186
                        <xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5187
                        <xs:element name="wrap_t" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
 
5188
                        <xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5189
                        <xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
5190
                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
5191
                </xs:sequence>
 
5192
        </xs:complexType>
 
5193
        <xs:group name="fx_annotate_type_common">
 
5194
                <xs:annotation>
 
5195
                        <xs:documentation>
 
5196
                        A group that specifies the allowable types for an annotation.
 
5197
                        </xs:documentation>
 
5198
                </xs:annotation>
 
5199
                <xs:choice>
 
5200
                        <xs:element name="bool" type="bool"/>
 
5201
                        <xs:element name="bool2" type="bool2"/>
 
5202
                        <xs:element name="bool3" type="bool3"/>
 
5203
                        <xs:element name="bool4" type="bool4"/>
 
5204
                        <xs:element name="int" type="int"/>
 
5205
                        <xs:element name="int2" type="int2"/>
 
5206
                        <xs:element name="int3" type="int3"/>
 
5207
                        <xs:element name="int4" type="int4"/>
 
5208
                        <xs:element name="float" type="float"/>
 
5209
                        <xs:element name="float2" type="float2"/>
 
5210
                        <xs:element name="float3" type="float3"/>
 
5211
                        <xs:element name="float4" type="float4"/>
 
5212
                        <xs:element name="float2x2" type="float2x2"/>
 
5213
                        <xs:element name="float3x3" type="float3x3"/>
 
5214
                        <xs:element name="float4x4" type="float4x4"/>
 
5215
                        <xs:element name="string" type="xs:string"/>
 
5216
                </xs:choice>
 
5217
        </xs:group>
 
5218
        <xs:group name="fx_basic_type_common">
 
5219
                <xs:annotation>
 
5220
                        <xs:documentation>
 
5221
                        A group that specifies the allowable types for effect scoped parameters.
 
5222
                        </xs:documentation>
 
5223
                </xs:annotation>
 
5224
                <xs:choice>
 
5225
                        <xs:element name="bool" type="bool"/>
 
5226
                        <xs:element name="bool2" type="bool2"/>
 
5227
                        <xs:element name="bool3" type="bool3"/>
 
5228
                        <xs:element name="bool4" type="bool4"/>
 
5229
                        <xs:element name="int" type="int"/>
 
5230
                        <xs:element name="int2" type="int2"/>
 
5231
                        <xs:element name="int3" type="int3"/>
 
5232
                        <xs:element name="int4" type="int4"/>
 
5233
                        <xs:element name="float" type="float"/>
 
5234
                        <xs:element name="float2" type="float2"/>
 
5235
                        <xs:element name="float3" type="float3"/>
 
5236
                        <xs:element name="float4" type="float4"/>
 
5237
                        <xs:element name="float1x1" type="float"/>
 
5238
                        <xs:element name="float1x2" type="float2"/>
 
5239
                        <xs:element name="float1x3" type="float3"/>
 
5240
                        <xs:element name="float1x4" type="float4"/>
 
5241
                        <xs:element name="float2x1" type="float2"/>
 
5242
                        <xs:element name="float2x2" type="float2x2"/>
 
5243
                        <xs:element name="float2x3" type="float2x3"/>
 
5244
                        <xs:element name="float2x4" type="float2x4"/>
 
5245
                        <xs:element name="float3x1" type="float3"/>
 
5246
                        <xs:element name="float3x2" type="float3x2"/>
 
5247
                        <xs:element name="float3x3" type="float3x3"/>
 
5248
                        <xs:element name="float3x4" type="float3x4"/>
 
5249
                        <xs:element name="float4x1" type="float4"/>
 
5250
                        <xs:element name="float4x2" type="float4x2"/>
 
5251
                        <xs:element name="float4x3" type="float4x3"/>
 
5252
                        <xs:element name="float4x4" type="float4x4"/>
 
5253
                        <xs:element name="surface" type="fx_surface_common"/>
 
5254
                        <xs:element name="sampler1D" type="fx_sampler1D_common"/>
 
5255
                        <xs:element name="sampler2D" type="fx_sampler2D_common"/>
 
5256
                        <xs:element name="sampler3D" type="fx_sampler3D_common"/>
 
5257
                        <xs:element name="samplerCUBE" type="fx_samplerCUBE_common"/>
 
5258
                        <xs:element name="samplerRECT" type="fx_samplerRECT_common"/>
 
5259
                        <xs:element name="samplerDEPTH" type="fx_samplerDEPTH_common"/>
 
5260
                        <xs:element name="enum" type="xs:string"/>
 
5261
                </xs:choice>
 
5262
        </xs:group>
 
5263
        <xs:simpleType name="fx_modifier_enum_common">
 
5264
                <xs:restriction base="xs:NMTOKEN">
 
5265
                        <xs:enumeration value="CONST"/>
 
5266
                        <xs:enumeration value="UNIFORM"/>
 
5267
                        <xs:enumeration value="VARYING"/>
 
5268
                        <xs:enumeration value="STATIC"/>
 
5269
                        <xs:enumeration value="VOLATILE"/>
 
5270
                        <xs:enumeration value="EXTERN"/>
 
5271
                        <xs:enumeration value="SHARED"/>
 
5272
                </xs:restriction>
 
5273
        </xs:simpleType>
 
5274
        <xs:complexType name="fx_colortarget_common">
 
5275
                <xs:simpleContent>
 
5276
                        <xs:extension base="xs:NCName">
 
5277
                                <xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5278
                                <xs:attribute name="face" type="fx_surface_face_enum" use="optional" default="POSITIVE_X"/>
 
5279
                                <xs:attribute name="mip" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5280
                                <xs:attribute name="slice" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5281
                        </xs:extension>
 
5282
                </xs:simpleContent>
 
5283
        </xs:complexType>
 
5284
        <xs:complexType name="fx_depthtarget_common">
 
5285
                <xs:simpleContent>
 
5286
                        <xs:extension base="xs:NCName">
 
5287
                                <xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5288
                                <xs:attribute name="face" type="fx_surface_face_enum" use="optional" default="POSITIVE_X"/>
 
5289
                                <xs:attribute name="mip" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5290
                                <xs:attribute name="slice" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5291
                        </xs:extension>
 
5292
                </xs:simpleContent>
 
5293
        </xs:complexType>
 
5294
        <xs:complexType name="fx_stenciltarget_common">
 
5295
                <xs:simpleContent>
 
5296
                        <xs:extension base="xs:NCName">
 
5297
                                <xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5298
                                <xs:attribute name="face" type="fx_surface_face_enum" use="optional" default="POSITIVE_X"/>
 
5299
                                <xs:attribute name="mip" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5300
                                <xs:attribute name="slice" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5301
                        </xs:extension>
 
5302
                </xs:simpleContent>
 
5303
        </xs:complexType>
 
5304
        <xs:complexType name="fx_clearcolor_common">
 
5305
                <xs:simpleContent>
 
5306
                        <xs:extension base="fx_color_common">
 
5307
                                <xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5308
                        </xs:extension>
 
5309
                </xs:simpleContent>
 
5310
        </xs:complexType>
 
5311
        <xs:complexType name="fx_cleardepth_common">
 
5312
                <xs:simpleContent>
 
5313
                        <xs:extension base="float">
 
5314
                                <xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5315
                        </xs:extension>
 
5316
                </xs:simpleContent>
 
5317
        </xs:complexType>
 
5318
        <xs:complexType name="fx_clearstencil_common">
 
5319
                <xs:simpleContent>
 
5320
                        <xs:extension base="xs:byte">
 
5321
                                <xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
 
5322
                        </xs:extension>
 
5323
                </xs:simpleContent>
 
5324
        </xs:complexType>
 
5325
        <xs:simpleType name="fx_draw_common">
 
5326
                <xs:restriction base="xs:string"/>
 
5327
        </xs:simpleType>
 
5328
        <xs:simpleType name="fx_pipeline_stage_common">
 
5329
                <xs:restriction base="xs:string">
 
5330
                        <xs:enumeration value="VERTEXPROGRAM"/>
 
5331
                        <xs:enumeration value="FRAGMENTPROGRAM"/>
 
5332
                        <xs:enumeration value="VERTEXSHADER"/>
 
5333
                        <xs:enumeration value="PIXELSHADER"/>
 
5334
                </xs:restriction>
 
5335
        </xs:simpleType>
 
5336
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
 
5337
        <!-- COLLADA FX elements in common scope    -->
 
5338
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
 
5339
        <xs:complexType name="fx_annotate_common">
 
5340
                <xs:sequence>
 
5341
                        <xs:group ref="fx_annotate_type_common"/>
 
5342
                </xs:sequence>
 
5343
                <xs:attribute name="name" type="xs:NCName" use="required"/>
 
5344
        </xs:complexType>
 
5345
        <xs:complexType name="fx_include_common">
 
5346
                <xs:annotation>
 
5347
                        <xs:documentation>
 
5348
                        The include element is used to import source code or precompiled binary shaders into the FX Runtime by referencing an external resource.
 
5349
                        </xs:documentation>
 
5350
                </xs:annotation>
 
5351
                <xs:attribute name="sid" type="xs:NCName" use="required">
 
5352
                        <xs:annotation>
 
5353
                                <xs:documentation>
 
5354
                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
5355
                                        This value must be unique within the scope of the parent element. Optional attribute.
 
5356
                                </xs:documentation>
 
5357
                        </xs:annotation>
 
5358
                </xs:attribute>
 
5359
                <xs:attribute name="url" type="xs:anyURI" use="required">
 
5360
                        <xs:annotation>
 
5361
                                <xs:documentation>
 
5362
                                        The url attribute refers to resource.  This may refer to a local resource using a relative URL 
 
5363
                                        fragment identifier that begins with the ā€œ#ā€ character. The url attribute may refer to an external 
 
5364
                                        resource using an absolute or relative URL.
 
5365
                                </xs:documentation>
 
5366
                        </xs:annotation>
 
5367
                </xs:attribute>
 
5368
        </xs:complexType>
 
5369
        <xs:complexType name="fx_newparam_common">
 
5370
                <xs:annotation>
 
5371
                        <xs:documentation>
 
5372
                        This element creates a new, named param object in the FX Runtime, assigns it a type, an initial value, and additional attributes at declaration time.
 
5373
                        </xs:documentation>
 
5374
                </xs:annotation>
 
5375
                <xs:sequence>
 
5376
                        <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
 
5377
                                <xs:annotation>
 
5378
                                        <xs:documentation>
 
5379
                                        The annotate element allows you to specify an annotation for this new param.
 
5380
                                        </xs:documentation>
 
5381
                                </xs:annotation>
 
5382
                        </xs:element>
 
5383
                        <xs:element name="semantic" type="xs:NCName" minOccurs="0">
 
5384
                                <xs:annotation>
 
5385
                                        <xs:documentation>
 
5386
                                        The semantic element allows you to specify a semantic for this new param.
 
5387
                                        </xs:documentation>
 
5388
                                </xs:annotation>
 
5389
                        </xs:element>
 
5390
                        <xs:element name="modifier" type="fx_modifier_enum_common" minOccurs="0">
 
5391
                                <xs:annotation>
 
5392
                                        <xs:documentation>
 
5393
                                        The modifier element allows you to specify a modifier for this new param.
 
5394
                                        </xs:documentation>
 
5395
                                </xs:annotation>
 
5396
                        </xs:element>
 
5397
                        <xs:group ref="fx_basic_type_common"/>
 
5398
                </xs:sequence>
 
5399
                <xs:attribute name="sid" type="xs:NCName" use="required">
 
5400
                        <xs:annotation>
 
5401
                                <xs:documentation>
 
5402
                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
5403
                                This value must be unique within the scope of the parent element. Optional attribute.
 
5404
                                </xs:documentation>
 
5405
                        </xs:annotation>
 
5406
                </xs:attribute>
 
5407
        </xs:complexType>
 
5408
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
5409
        <!-- COLLADA FX types in profile scope   -->
 
5410
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
5411
        <xs:complexType name="fx_code_profile">
 
5412
                <xs:annotation>
 
5413
                        <xs:documentation>
 
5414
                        The fx_code_profile type allows you to specify an inline block of source code.
 
5415
                        </xs:documentation>
 
5416
                </xs:annotation>
 
5417
                <xs:simpleContent>
 
5418
                        <xs:extension base="xs:string">
 
5419
                                <xs:attribute name="sid" type="xs:NCName" use="optional">
 
5420
                                        <xs:annotation>
 
5421
                                                <xs:documentation>
 
5422
                                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
5423
                                                This value must be unique within the scope of the parent element. Optional attribute.
 
5424
                                                </xs:documentation>
 
5425
                                        </xs:annotation>
 
5426
                                </xs:attribute>
 
5427
                        </xs:extension>
 
5428
                </xs:simpleContent>
 
5429
        </xs:complexType>
 
5430
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
5431
        <!-- COLLADA FX effect elements    -->
 
5432
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
5433
        <xs:element name="fx_profile_abstract" abstract="true">
 
5434
                <xs:annotation>
 
5435
                        <xs:documentation>
 
5436
                        The fx_profile_abstract element is only used as a substitution group hook for COLLADA FX profiles.
 
5437
                        </xs:documentation>
 
5438
                </xs:annotation>
 
5439
        </xs:element>
 
5440
        <xs:element name="effect">
 
5441
                <xs:annotation>
 
5442
                        <xs:documentation>
 
5443
                        A self contained description of a shader effect.
 
5444
                        </xs:documentation>
 
5445
                </xs:annotation>
 
5446
                <xs:complexType>
 
5447
                        <xs:sequence>
 
5448
                                <xs:element ref="asset" minOccurs="0">
 
5449
                                        <xs:annotation>
 
5450
                                                <xs:documentation>
 
5451
                                                The effect element may contain an asset element.
 
5452
                                                </xs:documentation>
 
5453
                                        </xs:annotation>
 
5454
                                </xs:element>
 
5455
                                <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
 
5456
                                        <xs:annotation>
 
5457
                                                <xs:documentation>
 
5458
                                                The annotate element allows you to specify an annotation on this effect.
 
5459
                                                </xs:documentation>
 
5460
                                        </xs:annotation>
 
5461
                                </xs:element>
 
5462
                                <xs:element ref="image" minOccurs="0" maxOccurs="unbounded">
 
5463
                                        <xs:annotation>
 
5464
                                                <xs:documentation>
 
5465
                                                The image element allows you to create image resources which can be shared by multipe profiles.
 
5466
                                                </xs:documentation>
 
5467
                                        </xs:annotation>
 
5468
                                </xs:element>
 
5469
                                <xs:element name="newparam" type="fx_newparam_common" minOccurs="0" maxOccurs="unbounded">
 
5470
                                        <xs:annotation>
 
5471
                                                <xs:documentation>
 
5472
                                                The newparam element allows you to create new effect parameters which can be shared by multipe profiles.
 
5473
                                                </xs:documentation>
 
5474
                                        </xs:annotation>
 
5475
                                </xs:element>
 
5476
                                <xs:element ref="fx_profile_abstract" maxOccurs="unbounded">
 
5477
                                        <xs:annotation>
 
5478
                                                <xs:documentation>
 
5479
                                                This is the substituion group hook which allows you to swap in other COLLADA FX profiles.
 
5480
                                                </xs:documentation>
 
5481
                                        </xs:annotation>
 
5482
                                </xs:element>
 
5483
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
5484
                                        <xs:annotation>
 
5485
                                                <xs:documentation>
 
5486
                                                The extra element may appear any number of times.
 
5487
                                                </xs:documentation>
 
5488
                                        </xs:annotation>
 
5489
                                </xs:element>
 
5490
                        </xs:sequence>
 
5491
                        <xs:attribute name="id" type="xs:ID" use="required">
 
5492
                                <xs:annotation>
 
5493
                                        <xs:documentation>
 
5494
                                        The id attribute is a text string containing the unique identifier of this element. 
 
5495
                                        This value must be unique within the instance document. Optional attribute.
 
5496
                                        </xs:documentation>
 
5497
                                </xs:annotation>
 
5498
                        </xs:attribute>
 
5499
                        <xs:attribute name="name" type="xs:NCName">
 
5500
                                <xs:annotation>
 
5501
                                        <xs:documentation>
 
5502
                                        The name attribute is the text string name of this element. Optional attribute.
 
5503
                                        </xs:documentation>
 
5504
                                </xs:annotation>
 
5505
                        </xs:attribute>
 
5506
                </xs:complexType>
 
5507
        </xs:element>
 
5508
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
5509
        <!-- COLLADA FX GLSL elements                  -->
 
5510
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
5511
        <xs:simpleType name="GL_MAX_LIGHTS_index">
 
5512
                <xs:restriction base="xs:nonNegativeInteger">
 
5513
                        <xs:minInclusive value="0"/>
 
5514
                </xs:restriction>
 
5515
        </xs:simpleType>
 
5516
        <xs:simpleType name="GL_MAX_CLIP_PLANES_index">
 
5517
                <xs:restriction base="xs:nonNegativeInteger">
 
5518
                        <xs:minInclusive value="0"/>
 
5519
                </xs:restriction>
 
5520
        </xs:simpleType>
 
5521
        <xs:simpleType name="GL_MAX_TEXTURE_IMAGE_UNITS_index">
 
5522
                <xs:restriction base="xs:nonNegativeInteger">
 
5523
                        <xs:minInclusive value="0"/>
 
5524
                </xs:restriction>
 
5525
        </xs:simpleType>
 
5526
        <xs:complexType name="gl_sampler1D">
 
5527
                <xs:annotation>
 
5528
                        <xs:documentation>
 
5529
                        A one-dimensional texture sampler for the GLSL profile.
 
5530
                        </xs:documentation>
 
5531
                </xs:annotation>
 
5532
                <xs:complexContent>
 
5533
                        <xs:extension base="fx_sampler1D_common"/>
 
5534
                </xs:complexContent>
 
5535
        </xs:complexType>
 
5536
        <xs:complexType name="gl_sampler2D">
 
5537
                <xs:annotation>
 
5538
                        <xs:documentation>
 
5539
                        A two-dimensional texture sampler for the GLSL profile.
 
5540
                        </xs:documentation>
 
5541
                </xs:annotation>
 
5542
                <xs:complexContent>
 
5543
                        <xs:extension base="fx_sampler2D_common"/>
 
5544
                </xs:complexContent>
 
5545
        </xs:complexType>
 
5546
        <xs:complexType name="gl_sampler3D">
 
5547
                <xs:annotation>
 
5548
                        <xs:documentation>
 
5549
                        A three-dimensional texture sampler for the GLSL profile.
 
5550
                        </xs:documentation>
 
5551
                </xs:annotation>
 
5552
                <xs:complexContent>
 
5553
                        <xs:extension base="fx_sampler3D_common"/>
 
5554
                </xs:complexContent>
 
5555
        </xs:complexType>
 
5556
        <xs:complexType name="gl_samplerCUBE">
 
5557
                <xs:annotation>
 
5558
                        <xs:documentation>
 
5559
                        A cube map texture sampler for the GLSL profile.
 
5560
                        </xs:documentation>
 
5561
                </xs:annotation>
 
5562
                <xs:complexContent>
 
5563
                        <xs:extension base="fx_samplerCUBE_common"/>
 
5564
                </xs:complexContent>
 
5565
        </xs:complexType>
 
5566
        <xs:complexType name="gl_samplerRECT">
 
5567
                <xs:annotation>
 
5568
                        <xs:documentation>
 
5569
                        A two-dimensional texture sampler for the GLSL profile.
 
5570
                        </xs:documentation>
 
5571
                </xs:annotation>
 
5572
                <xs:complexContent>
 
5573
                        <xs:extension base="fx_samplerRECT_common"/>
 
5574
                </xs:complexContent>
 
5575
        </xs:complexType>
 
5576
        <xs:complexType name="gl_samplerDEPTH">
 
5577
                <xs:annotation>
 
5578
                        <xs:documentation>
 
5579
                        A depth texture sampler for the GLSL profile.
 
5580
                        </xs:documentation>
 
5581
                </xs:annotation>
 
5582
                <xs:complexContent>
 
5583
                        <xs:extension base="fx_samplerDEPTH_common"/>
 
5584
                </xs:complexContent>
 
5585
        </xs:complexType>
 
5586
        <xs:simpleType name="gl_blend_type">
 
5587
                <xs:restriction base="xs:string">
 
5588
                        <xs:enumeration value="ZERO">
 
5589
                                <xs:annotation>
 
5590
                                        <xs:appinfo>value=0x0</xs:appinfo>
 
5591
                                </xs:annotation>
 
5592
                        </xs:enumeration>
 
5593
                        <xs:enumeration value="ONE">
 
5594
                                <xs:annotation>
 
5595
                                        <xs:appinfo>value=0x1</xs:appinfo>
 
5596
                                </xs:annotation>
 
5597
                        </xs:enumeration>
 
5598
                        <xs:enumeration value="SRC_COLOR">
 
5599
                                <xs:annotation>
 
5600
                                        <xs:appinfo>value=0x0300</xs:appinfo>
 
5601
                                </xs:annotation>
 
5602
                        </xs:enumeration>
 
5603
                        <xs:enumeration value="ONE_MINUS_SRC_COLOR">
 
5604
                                <xs:annotation>
 
5605
                                        <xs:appinfo>value=0x0301</xs:appinfo>
 
5606
                                </xs:annotation>
 
5607
                        </xs:enumeration>
 
5608
                        <xs:enumeration value="DEST_COLOR">
 
5609
                                <xs:annotation>
 
5610
                                        <xs:appinfo>value=0x0306</xs:appinfo>
 
5611
                                </xs:annotation>
 
5612
                        </xs:enumeration>
 
5613
                        <xs:enumeration value="ONE_MINUS_DEST_COLOR">
 
5614
                                <xs:annotation>
 
5615
                                        <xs:appinfo>value=0x0307</xs:appinfo>
 
5616
                                </xs:annotation>
 
5617
                        </xs:enumeration>
 
5618
                        <xs:enumeration value="SRC_ALPHA">
 
5619
                                <xs:annotation>
 
5620
                                        <xs:appinfo>value=0x0302</xs:appinfo>
 
5621
                                </xs:annotation>
 
5622
                        </xs:enumeration>
 
5623
                        <xs:enumeration value="ONE_MINUS_SRC_ALPHA">
 
5624
                                <xs:annotation>
 
5625
                                        <xs:appinfo>value=0x0303</xs:appinfo>
 
5626
                                </xs:annotation>
 
5627
                        </xs:enumeration>
 
5628
                        <xs:enumeration value="DST_ALPHA">
 
5629
                                <xs:annotation>
 
5630
                                        <xs:appinfo>value=0x0304</xs:appinfo>
 
5631
                                </xs:annotation>
 
5632
                        </xs:enumeration>
 
5633
                        <xs:enumeration value="ONE_MINUS_DST_ALPHA">
 
5634
                                <xs:annotation>
 
5635
                                        <xs:appinfo>value=0x0305</xs:appinfo>
 
5636
                                </xs:annotation>
 
5637
                        </xs:enumeration>
 
5638
                        <xs:enumeration value="CONSTANT_COLOR">
 
5639
                                <xs:annotation>
 
5640
                                        <xs:appinfo>value=0x8001</xs:appinfo>
 
5641
                                </xs:annotation>
 
5642
                        </xs:enumeration>
 
5643
                        <xs:enumeration value="ONE_MINUS_CONSTANT_COLOR">
 
5644
                                <xs:annotation>
 
5645
                                        <xs:appinfo>value=0x8002</xs:appinfo>
 
5646
                                </xs:annotation>
 
5647
                        </xs:enumeration>
 
5648
                        <xs:enumeration value="CONSTANT_ALPHA">
 
5649
                                <xs:annotation>
 
5650
                                        <xs:appinfo>value=0x8003</xs:appinfo>
 
5651
                                </xs:annotation>
 
5652
                        </xs:enumeration>
 
5653
                        <xs:enumeration value="ONE_MINUS_CONSTANT_ALPHA">
 
5654
                                <xs:annotation>
 
5655
                                        <xs:appinfo>value=0x8004</xs:appinfo>
 
5656
                                </xs:annotation>
 
5657
                        </xs:enumeration>
 
5658
                        <xs:enumeration value="SRC_ALPHA_SATURATE">
 
5659
                                <xs:annotation>
 
5660
                                        <xs:appinfo>value=0x0308</xs:appinfo>
 
5661
                                </xs:annotation>
 
5662
                        </xs:enumeration>
 
5663
                </xs:restriction>
 
5664
        </xs:simpleType>
 
5665
        <xs:simpleType name="gl_face_type">
 
5666
                <xs:restriction base="xs:string">
 
5667
                        <xs:enumeration value="FRONT">
 
5668
                                <xs:annotation>
 
5669
                                        <xs:appinfo>value=0x0404</xs:appinfo>
 
5670
                                </xs:annotation>
 
5671
                        </xs:enumeration>
 
5672
                        <xs:enumeration value="BACK">
 
5673
                                <xs:annotation>
 
5674
                                        <xs:appinfo>value=0x0405</xs:appinfo>
 
5675
                                </xs:annotation>
 
5676
                        </xs:enumeration>
 
5677
                        <xs:enumeration value="FRONT_AND_BACK">
 
5678
                                <xs:annotation>
 
5679
                                        <xs:appinfo>value=0x0408</xs:appinfo>
 
5680
                                </xs:annotation>
 
5681
                        </xs:enumeration>
 
5682
                </xs:restriction>
 
5683
        </xs:simpleType>
 
5684
        <xs:simpleType name="gl_blend_equation_type">
 
5685
                <xs:restriction base="xs:string">
 
5686
                        <xs:enumeration value="FUNC_ADD">
 
5687
                                <xs:annotation>
 
5688
                                        <xs:appinfo>value=0x8006</xs:appinfo>
 
5689
                                </xs:annotation>
 
5690
                        </xs:enumeration>
 
5691
                        <xs:enumeration value="FUNC_SUBTRACT">
 
5692
                                <xs:annotation>
 
5693
                                        <xs:appinfo>value=0x800A</xs:appinfo>
 
5694
                                </xs:annotation>
 
5695
                        </xs:enumeration>
 
5696
                        <xs:enumeration value="FUNC_REVERSE_SUBTRACT">
 
5697
                                <xs:annotation>
 
5698
                                        <xs:appinfo>value=0x800B</xs:appinfo>
 
5699
                                </xs:annotation>
 
5700
                        </xs:enumeration>
 
5701
                        <xs:enumeration value="MIN">
 
5702
                                <xs:annotation>
 
5703
                                        <xs:appinfo>value=0x8007</xs:appinfo>
 
5704
                                </xs:annotation>
 
5705
                        </xs:enumeration>
 
5706
                        <xs:enumeration value="MAX">
 
5707
                                <xs:annotation>
 
5708
                                        <xs:appinfo>value=0x8008</xs:appinfo>
 
5709
                                </xs:annotation>
 
5710
                        </xs:enumeration>
 
5711
                </xs:restriction>
 
5712
        </xs:simpleType>
 
5713
        <xs:simpleType name="gl_func_type">
 
5714
                <xs:restriction base="xs:string">
 
5715
                        <xs:enumeration value="NEVER">
 
5716
                                <xs:annotation>
 
5717
                                        <xs:appinfo>value=0x0200</xs:appinfo>
 
5718
                                </xs:annotation>
 
5719
                        </xs:enumeration>
 
5720
                        <xs:enumeration value="LESS">
 
5721
                                <xs:annotation>
 
5722
                                        <xs:appinfo>value=0x0201</xs:appinfo>
 
5723
                                </xs:annotation>
 
5724
                        </xs:enumeration>
 
5725
                        <xs:enumeration value="LEQUAL">
 
5726
                                <xs:annotation>
 
5727
                                        <xs:appinfo>value=0x0203</xs:appinfo>
 
5728
                                </xs:annotation>
 
5729
                        </xs:enumeration>
 
5730
                        <xs:enumeration value="EQUAL">
 
5731
                                <xs:annotation>
 
5732
                                        <xs:appinfo>value=0x0202</xs:appinfo>
 
5733
                                </xs:annotation>
 
5734
                        </xs:enumeration>
 
5735
                        <xs:enumeration value="GREATER">
 
5736
                                <xs:annotation>
 
5737
                                        <xs:appinfo>value=0x0204</xs:appinfo>
 
5738
                                </xs:annotation>
 
5739
                        </xs:enumeration>
 
5740
                        <xs:enumeration value="NOTEQUAL">
 
5741
                                <xs:annotation>
 
5742
                                        <xs:appinfo>value=0x0205</xs:appinfo>
 
5743
                                </xs:annotation>
 
5744
                        </xs:enumeration>
 
5745
                        <xs:enumeration value="GEQUAL">
 
5746
                                <xs:annotation>
 
5747
                                        <xs:appinfo>value=0x0206</xs:appinfo>
 
5748
                                </xs:annotation>
 
5749
                        </xs:enumeration>
 
5750
                        <xs:enumeration value="ALWAYS">
 
5751
                                <xs:annotation>
 
5752
                                        <xs:appinfo>value=0x0207</xs:appinfo>
 
5753
                                </xs:annotation>
 
5754
                        </xs:enumeration>
 
5755
                </xs:restriction>
 
5756
        </xs:simpleType>
 
5757
        <xs:simpleType name="gl_stencil_op_type">
 
5758
                <xs:restriction base="xs:string">
 
5759
                        <xs:enumeration value="KEEP">
 
5760
                                <xs:annotation>
 
5761
                                        <xs:appinfo>value=0x1E00</xs:appinfo>
 
5762
                                </xs:annotation>
 
5763
                        </xs:enumeration>
 
5764
                        <xs:enumeration value="ZERO">
 
5765
                                <xs:annotation>
 
5766
                                        <xs:appinfo>value=0x0</xs:appinfo>
 
5767
                                </xs:annotation>
 
5768
                        </xs:enumeration>
 
5769
                        <xs:enumeration value="REPLACE">
 
5770
                                <xs:annotation>
 
5771
                                        <xs:appinfo>value=0x1E01</xs:appinfo>
 
5772
                                </xs:annotation>
 
5773
                        </xs:enumeration>
 
5774
                        <xs:enumeration value="INCR">
 
5775
                                <xs:annotation>
 
5776
                                        <xs:appinfo>value=0x1E02</xs:appinfo>
 
5777
                                </xs:annotation>
 
5778
                        </xs:enumeration>
 
5779
                        <xs:enumeration value="DECR">
 
5780
                                <xs:annotation>
 
5781
                                        <xs:appinfo>value=0x1E03</xs:appinfo>
 
5782
                                </xs:annotation>
 
5783
                        </xs:enumeration>
 
5784
                        <xs:enumeration value="INVERT">
 
5785
                                <xs:annotation>
 
5786
                                        <xs:appinfo>value=0x150A</xs:appinfo>
 
5787
                                </xs:annotation>
 
5788
                        </xs:enumeration>
 
5789
                        <xs:enumeration value="INCR_WRAP">
 
5790
                                <xs:annotation>
 
5791
                                        <xs:appinfo>value=0x8507</xs:appinfo>
 
5792
                                </xs:annotation>
 
5793
                        </xs:enumeration>
 
5794
                        <xs:enumeration value="DECR_WRAP">
 
5795
                                <xs:annotation>
 
5796
                                        <xs:appinfo>value=0x8508</xs:appinfo>
 
5797
                                </xs:annotation>
 
5798
                        </xs:enumeration>
 
5799
                </xs:restriction>
 
5800
        </xs:simpleType>
 
5801
        <xs:simpleType name="gl_material_type">
 
5802
                <xs:restriction base="xs:string">
 
5803
                        <xs:enumeration value="EMISSION">
 
5804
                                <xs:annotation>
 
5805
                                        <xs:appinfo>value=0x1600</xs:appinfo>
 
5806
                                </xs:annotation>
 
5807
                        </xs:enumeration>
 
5808
                        <xs:enumeration value="AMBIENT">
 
5809
                                <xs:annotation>
 
5810
                                        <xs:appinfo>value=0x1200</xs:appinfo>
 
5811
                                </xs:annotation>
 
5812
                        </xs:enumeration>
 
5813
                        <xs:enumeration value="DIFFUSE">
 
5814
                                <xs:annotation>
 
5815
                                        <xs:appinfo>value=0x1201</xs:appinfo>
 
5816
                                </xs:annotation>
 
5817
                        </xs:enumeration>
 
5818
                        <xs:enumeration value="SPECULAR">
 
5819
                                <xs:annotation>
 
5820
                                        <xs:appinfo>value=0x1202</xs:appinfo>
 
5821
                                </xs:annotation>
 
5822
                        </xs:enumeration>
 
5823
                        <xs:enumeration value="AMBIENT_AND_DIFFUSE">
 
5824
                                <xs:annotation>
 
5825
                                        <xs:appinfo>value=0x1602</xs:appinfo>
 
5826
                                </xs:annotation>
 
5827
                        </xs:enumeration>
 
5828
                </xs:restriction>
 
5829
        </xs:simpleType>
 
5830
        <xs:simpleType name="gl_fog_type">
 
5831
                <xs:restriction base="xs:string">
 
5832
                        <xs:enumeration value="LINEAR">
 
5833
                                <xs:annotation>
 
5834
                                        <xs:appinfo>value=0x2601</xs:appinfo>
 
5835
                                </xs:annotation>
 
5836
                        </xs:enumeration>
 
5837
                        <xs:enumeration value="EXP">
 
5838
                                <xs:annotation>
 
5839
                                        <xs:appinfo>value=0x0800</xs:appinfo>
 
5840
                                </xs:annotation>
 
5841
                        </xs:enumeration>
 
5842
                        <xs:enumeration value="EXP2">
 
5843
                                <xs:annotation>
 
5844
                                        <xs:appinfo>value=0x0801</xs:appinfo>
 
5845
                                </xs:annotation>
 
5846
                        </xs:enumeration>
 
5847
                </xs:restriction>
 
5848
        </xs:simpleType>
 
5849
        <xs:simpleType name="gl_fog_coord_src_type">
 
5850
                <xs:restriction base="xs:string">
 
5851
                        <xs:enumeration value="FOG_COORDINATE">
 
5852
                                <xs:annotation>
 
5853
                                        <xs:appinfo>value=0x8451</xs:appinfo>
 
5854
                                </xs:annotation>
 
5855
                        </xs:enumeration>
 
5856
                        <xs:enumeration value="FRAGMENT_DEPTH">
 
5857
                                <xs:annotation>
 
5858
                                        <xs:appinfo>value=0x8452</xs:appinfo>
 
5859
                                </xs:annotation>
 
5860
                        </xs:enumeration>
 
5861
                </xs:restriction>
 
5862
        </xs:simpleType>
 
5863
        <xs:simpleType name="gl_front_face_type">
 
5864
                <xs:restriction base="xs:string">
 
5865
                        <xs:enumeration value="CW">
 
5866
                                <xs:annotation>
 
5867
                                        <xs:appinfo>value=0x0900</xs:appinfo>
 
5868
                                </xs:annotation>
 
5869
                        </xs:enumeration>
 
5870
                        <xs:enumeration value="CCW">
 
5871
                                <xs:annotation>
 
5872
                                        <xs:appinfo>value=0x0901</xs:appinfo>
 
5873
                                </xs:annotation>
 
5874
                        </xs:enumeration>
 
5875
                </xs:restriction>
 
5876
        </xs:simpleType>
 
5877
        <xs:simpleType name="gl_light_model_color_control_type">
 
5878
                <xs:restriction base="xs:string">
 
5879
                        <xs:enumeration value="SINGLE_COLOR">
 
5880
                                <xs:annotation>
 
5881
                                        <xs:appinfo>value=0x81F9</xs:appinfo>
 
5882
                                </xs:annotation>
 
5883
                        </xs:enumeration>
 
5884
                        <xs:enumeration value="SEPARATE_SPECULAR_COLOR">
 
5885
                                <xs:annotation>
 
5886
                                        <xs:appinfo>value=0x81FA</xs:appinfo>
 
5887
                                </xs:annotation>
 
5888
                        </xs:enumeration>
 
5889
                </xs:restriction>
 
5890
        </xs:simpleType>
 
5891
        <xs:simpleType name="gl_logic_op_type">
 
5892
                <xs:restriction base="xs:string">
 
5893
                        <xs:enumeration value="CLEAR">
 
5894
                                <xs:annotation>
 
5895
                                        <xs:appinfo>value=0x1500</xs:appinfo>
 
5896
                                </xs:annotation>
 
5897
                        </xs:enumeration>
 
5898
                        <xs:enumeration value="AND">
 
5899
                                <xs:annotation>
 
5900
                                        <xs:appinfo>value=0x1501</xs:appinfo>
 
5901
                                </xs:annotation>
 
5902
                        </xs:enumeration>
 
5903
                        <xs:enumeration value="AND_REVERSE">
 
5904
                                <xs:annotation>
 
5905
                                        <xs:appinfo>value=0x1502</xs:appinfo>
 
5906
                                </xs:annotation>
 
5907
                        </xs:enumeration>
 
5908
                        <xs:enumeration value="COPY">
 
5909
                                <xs:annotation>
 
5910
                                        <xs:appinfo>value=0x1503</xs:appinfo>
 
5911
                                </xs:annotation>
 
5912
                        </xs:enumeration>
 
5913
                        <xs:enumeration value="AND_INVERTED">
 
5914
                                <xs:annotation>
 
5915
                                        <xs:appinfo>value=0x1504</xs:appinfo>
 
5916
                                </xs:annotation>
 
5917
                        </xs:enumeration>
 
5918
                        <xs:enumeration value="NOOP">
 
5919
                                <xs:annotation>
 
5920
                                        <xs:appinfo>value=0x1505</xs:appinfo>
 
5921
                                </xs:annotation>
 
5922
                        </xs:enumeration>
 
5923
                        <xs:enumeration value="XOR">
 
5924
                                <xs:annotation>
 
5925
                                        <xs:appinfo>value=0x1506</xs:appinfo>
 
5926
                                </xs:annotation>
 
5927
                        </xs:enumeration>
 
5928
                        <xs:enumeration value="OR">
 
5929
                                <xs:annotation>
 
5930
                                        <xs:appinfo>value=0x1507</xs:appinfo>
 
5931
                                </xs:annotation>
 
5932
                        </xs:enumeration>
 
5933
                        <xs:enumeration value="NOR">
 
5934
                                <xs:annotation>
 
5935
                                        <xs:appinfo>value=0x1508</xs:appinfo>
 
5936
                                </xs:annotation>
 
5937
                        </xs:enumeration>
 
5938
                        <xs:enumeration value="EQUIV">
 
5939
                                <xs:annotation>
 
5940
                                        <xs:appinfo>value=0x1509</xs:appinfo>
 
5941
                                </xs:annotation>
 
5942
                        </xs:enumeration>
 
5943
                        <xs:enumeration value="INVERT">
 
5944
                                <xs:annotation>
 
5945
                                        <xs:appinfo>value=0x150A</xs:appinfo>
 
5946
                                </xs:annotation>
 
5947
                        </xs:enumeration>
 
5948
                        <xs:enumeration value="OR_REVERSE">
 
5949
                                <xs:annotation>
 
5950
                                        <xs:appinfo>value=0x150B</xs:appinfo>
 
5951
                                </xs:annotation>
 
5952
                        </xs:enumeration>
 
5953
                        <xs:enumeration value="COPY_INVERTED">
 
5954
                                <xs:annotation>
 
5955
                                        <xs:appinfo>value=0x150C</xs:appinfo>
 
5956
                                </xs:annotation>
 
5957
                        </xs:enumeration>
 
5958
                        <xs:enumeration value="NAND">
 
5959
                                <xs:annotation>
 
5960
                                        <xs:appinfo>value=0x150E</xs:appinfo>
 
5961
                                </xs:annotation>
 
5962
                        </xs:enumeration>
 
5963
                        <xs:enumeration value="SET">
 
5964
                                <xs:annotation>
 
5965
                                        <xs:appinfo>value=0x150F</xs:appinfo>
 
5966
                                </xs:annotation>
 
5967
                        </xs:enumeration>
 
5968
                </xs:restriction>
 
5969
        </xs:simpleType>
 
5970
        <xs:simpleType name="gl_polygon_mode_type">
 
5971
                <xs:restriction base="xs:string">
 
5972
                        <xs:enumeration value="POINT">
 
5973
                                <xs:annotation>
 
5974
                                        <xs:appinfo>value=0x1B00</xs:appinfo>
 
5975
                                </xs:annotation>
 
5976
                        </xs:enumeration>
 
5977
                        <xs:enumeration value="LINE">
 
5978
                                <xs:annotation>
 
5979
                                        <xs:appinfo>value=0x1B01</xs:appinfo>
 
5980
                                </xs:annotation>
 
5981
                        </xs:enumeration>
 
5982
                        <xs:enumeration value="FILL">
 
5983
                                <xs:annotation>
 
5984
                                        <xs:appinfo>value=0x1B02</xs:appinfo>
 
5985
                                </xs:annotation>
 
5986
                        </xs:enumeration>
 
5987
                </xs:restriction>
 
5988
        </xs:simpleType>
 
5989
        <xs:simpleType name="gl_shade_model_type">
 
5990
                <xs:restriction base="xs:string">
 
5991
                        <xs:enumeration value="FLAT">
 
5992
                                <xs:annotation>
 
5993
                                        <xs:appinfo>value=0x1D00</xs:appinfo>
 
5994
                                </xs:annotation>
 
5995
                        </xs:enumeration>
 
5996
                        <xs:enumeration value="SMOOTH">
 
5997
                                <xs:annotation>
 
5998
                                        <xs:appinfo>value=0x1D01</xs:appinfo>
 
5999
                                </xs:annotation>
 
6000
                        </xs:enumeration>
 
6001
                </xs:restriction>
 
6002
        </xs:simpleType>
 
6003
        <xs:simpleType name="gl_alpha_value_type">
 
6004
                <xs:restriction base="xs:float">
 
6005
                        <xs:minInclusive value="0.0"/>
 
6006
                        <xs:maxInclusive value="1.0"/>
 
6007
                </xs:restriction>
 
6008
        </xs:simpleType>
 
6009
        <xs:simpleType name="gl_enumeration">
 
6010
                <xs:union memberTypes="gl_blend_type gl_face_type gl_blend_equation_type gl_func_type gl_stencil_op_type gl_material_type gl_fog_type gl_fog_coord_src_type gl_front_face_type gl_light_model_color_control_type gl_logic_op_type gl_polygon_mode_type gl_shade_model_type"/>
 
6011
        </xs:simpleType>
 
6012
        <xs:group name="gl_pipeline_settings">
 
6013
                <xs:annotation>
 
6014
                        <xs:documentation>
 
6015
                        A group that defines all of the renderstates used for the CG and GLSL profiles.
 
6016
                        </xs:documentation>
 
6017
                </xs:annotation>
 
6018
                <xs:choice>
 
6019
                        <xs:element name="alpha_func">
 
6020
                                <xs:complexType>
 
6021
                                        <xs:sequence>
 
6022
                                                <xs:element name="func">
 
6023
                                                        <xs:complexType>
 
6024
                                                                <xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
 
6025
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6026
                                                        </xs:complexType>
 
6027
                                                </xs:element>
 
6028
                                                <xs:element name="value">
 
6029
                                                        <xs:complexType>
 
6030
                                                                <xs:attribute name="value" type="gl_alpha_value_type" use="optional" default="0.0"/>
 
6031
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6032
                                                        </xs:complexType>
 
6033
                                                </xs:element>
 
6034
                                        </xs:sequence>
 
6035
                                </xs:complexType>
 
6036
                        </xs:element>
 
6037
                        <xs:element name="blend_func">
 
6038
                                <xs:complexType>
 
6039
                                        <xs:sequence>
 
6040
                                                <xs:element name="src">
 
6041
                                                        <xs:complexType>
 
6042
                                                                <xs:attribute name="value" type="gl_blend_type" use="optional" default="ONE"/>
 
6043
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6044
                                                        </xs:complexType>
 
6045
                                                </xs:element>
 
6046
                                                <xs:element name="dest">
 
6047
                                                        <xs:complexType>
 
6048
                                                                <xs:attribute name="value" type="gl_blend_type" use="optional" default="ZERO"/>
 
6049
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6050
                                                        </xs:complexType>
 
6051
                                                </xs:element>
 
6052
                                        </xs:sequence>
 
6053
                                </xs:complexType>
 
6054
                        </xs:element>
 
6055
                        <xs:element name="blend_func_separate">
 
6056
                                <xs:complexType>
 
6057
                                        <xs:sequence>
 
6058
                                                <xs:element name="src_rgb">
 
6059
                                                        <xs:complexType>
 
6060
                                                                <xs:attribute name="value" type="gl_blend_type" use="optional" default="ONE"/>
 
6061
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6062
                                                        </xs:complexType>
 
6063
                                                </xs:element>
 
6064
                                                <xs:element name="dest_rgb">
 
6065
                                                        <xs:complexType>
 
6066
                                                                <xs:attribute name="value" type="gl_blend_type" use="optional" default="ZERO"/>
 
6067
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6068
                                                        </xs:complexType>
 
6069
                                                </xs:element>
 
6070
                                                <xs:element name="src_alpha">
 
6071
                                                        <xs:complexType>
 
6072
                                                                <xs:attribute name="value" type="gl_blend_type" use="optional" default="ONE"/>
 
6073
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6074
                                                        </xs:complexType>
 
6075
                                                </xs:element>
 
6076
                                                <xs:element name="dest_alpha">
 
6077
                                                        <xs:complexType>
 
6078
                                                                <xs:attribute name="value" type="gl_blend_type" use="optional" default="ZERO"/>
 
6079
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6080
                                                        </xs:complexType>
 
6081
                                                </xs:element>
 
6082
                                        </xs:sequence>
 
6083
                                </xs:complexType>
 
6084
                        </xs:element>
 
6085
                        <xs:element name="blend_equation">
 
6086
                                <xs:complexType>
 
6087
                                        <xs:attribute name="value" type="gl_blend_equation_type" use="optional" default="FUNC_ADD"/>
 
6088
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6089
                                </xs:complexType>
 
6090
                        </xs:element>
 
6091
                        <xs:element name="blend_equation_separate">
 
6092
                                <xs:complexType>
 
6093
                                        <xs:sequence>
 
6094
                                                <xs:element name="rgb">
 
6095
                                                        <xs:complexType>
 
6096
                                                                <xs:attribute name="value" type="gl_blend_equation_type" use="optional" default="FUNC_ADD"/>
 
6097
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6098
                                                        </xs:complexType>
 
6099
                                                </xs:element>
 
6100
                                                <xs:element name="alpha">
 
6101
                                                        <xs:complexType>
 
6102
                                                                <xs:attribute name="value" type="gl_blend_equation_type" use="optional" default="FUNC_ADD"/>
 
6103
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6104
                                                        </xs:complexType>
 
6105
                                                </xs:element>
 
6106
                                        </xs:sequence>
 
6107
                                </xs:complexType>
 
6108
                        </xs:element>
 
6109
                        <xs:element name="color_material">
 
6110
                                <xs:complexType>
 
6111
                                        <xs:sequence>
 
6112
                                                <xs:element name="face">
 
6113
                                                        <xs:complexType>
 
6114
                                                                <xs:attribute name="value" type="gl_face_type" use="optional" default="FRONT_AND_BACK"/>
 
6115
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6116
                                                        </xs:complexType>
 
6117
                                                </xs:element>
 
6118
                                                <xs:element name="mode">
 
6119
                                                        <xs:complexType>
 
6120
                                                                <xs:attribute name="value" type="gl_material_type" use="optional" default="AMBIENT_AND_DIFFUSE"/>
 
6121
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6122
                                                        </xs:complexType>
 
6123
                                                </xs:element>
 
6124
                                        </xs:sequence>
 
6125
                                </xs:complexType>
 
6126
                        </xs:element>
 
6127
                        <xs:element name="cull_face">
 
6128
                                <xs:complexType>
 
6129
                                        <xs:attribute name="value" type="gl_face_type" use="optional" default="BACK"/>
 
6130
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6131
                                </xs:complexType>
 
6132
                        </xs:element>
 
6133
                        <xs:element name="depth_func">
 
6134
                                <xs:complexType>
 
6135
                                        <xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
 
6136
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6137
                                </xs:complexType>
 
6138
                        </xs:element>
 
6139
                        <xs:element name="fog_mode">
 
6140
                                <xs:complexType>
 
6141
                                        <xs:attribute name="value" type="gl_fog_type" use="optional" default="EXP"/>
 
6142
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6143
                                </xs:complexType>
 
6144
                        </xs:element>
 
6145
                        <xs:element name="fog_coord_src">
 
6146
                                <xs:complexType>
 
6147
                                        <xs:attribute name="value" type="gl_fog_coord_src_type" use="optional" default="FOG_COORDINATE"/>
 
6148
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6149
                                </xs:complexType>
 
6150
                        </xs:element>
 
6151
                        <xs:element name="front_face">
 
6152
                                <xs:complexType>
 
6153
                                        <xs:attribute name="value" type="gl_front_face_type" use="optional" default="CCW"/>
 
6154
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6155
                                </xs:complexType>
 
6156
                        </xs:element>
 
6157
                        <xs:element name="light_model_color_control">
 
6158
                                <xs:complexType>
 
6159
                                        <xs:attribute name="value" type="gl_light_model_color_control_type" use="optional" default="SINGLE_COLOR"/>
 
6160
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6161
                                </xs:complexType>
 
6162
                        </xs:element>
 
6163
                        <xs:element name="logic_op">
 
6164
                                <xs:complexType>
 
6165
                                        <xs:attribute name="value" type="gl_logic_op_type" use="optional" default="COPY"/>
 
6166
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6167
                                </xs:complexType>
 
6168
                        </xs:element>
 
6169
                        <xs:element name="polygon_mode">
 
6170
                                <xs:complexType>
 
6171
                                        <xs:sequence>
 
6172
                                                <xs:element name="face">
 
6173
                                                        <xs:complexType>
 
6174
                                                                <xs:attribute name="value" type="gl_face_type" use="optional" default="FRONT_AND_BACK"/>
 
6175
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6176
                                                        </xs:complexType>
 
6177
                                                </xs:element>
 
6178
                                                <xs:element name="mode">
 
6179
                                                        <xs:complexType>
 
6180
                                                                <xs:attribute name="value" type="gl_polygon_mode_type" use="optional" default="FILL"/>
 
6181
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6182
                                                        </xs:complexType>
 
6183
                                                </xs:element>
 
6184
                                        </xs:sequence>
 
6185
                                </xs:complexType>
 
6186
                        </xs:element>
 
6187
                        <xs:element name="shade_model">
 
6188
                                <xs:complexType>
 
6189
                                        <xs:attribute name="value" type="gl_shade_model_type" use="optional" default="SMOOTH"/>
 
6190
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6191
                                </xs:complexType>
 
6192
                        </xs:element>
 
6193
                        <xs:element name="stencil_func">
 
6194
                                <xs:complexType>
 
6195
                                        <xs:sequence>
 
6196
                                                <xs:element name="func">
 
6197
                                                        <xs:complexType>
 
6198
                                                                <xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
 
6199
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6200
                                                        </xs:complexType>
 
6201
                                                </xs:element>
 
6202
                                                <xs:element name="ref">
 
6203
                                                        <xs:complexType>
 
6204
                                                                <xs:attribute name="value" type="xs:unsignedByte" use="optional" default="0"/>
 
6205
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6206
                                                        </xs:complexType>
 
6207
                                                </xs:element>
 
6208
                                                <xs:element name="mask">
 
6209
                                                        <xs:complexType>
 
6210
                                                                <xs:attribute name="value" type="xs:unsignedByte" use="optional" default="255"/>
 
6211
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6212
                                                        </xs:complexType>
 
6213
                                                </xs:element>
 
6214
                                        </xs:sequence>
 
6215
                                </xs:complexType>
 
6216
                        </xs:element>
 
6217
                        <xs:element name="stencil_op">
 
6218
                                <xs:complexType>
 
6219
                                        <xs:sequence>
 
6220
                                                <xs:element name="fail">
 
6221
                                                        <xs:complexType>
 
6222
                                                                <xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
 
6223
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6224
                                                        </xs:complexType>
 
6225
                                                </xs:element>
 
6226
                                                <xs:element name="zfail">
 
6227
                                                        <xs:complexType>
 
6228
                                                                <xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
 
6229
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6230
                                                        </xs:complexType>
 
6231
                                                </xs:element>
 
6232
                                                <xs:element name="zpass">
 
6233
                                                        <xs:complexType>
 
6234
                                                                <xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
 
6235
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6236
                                                        </xs:complexType>
 
6237
                                                </xs:element>
 
6238
                                        </xs:sequence>
 
6239
                                </xs:complexType>
 
6240
                        </xs:element>
 
6241
                        <xs:element name="stencil_func_separate">
 
6242
                                <xs:complexType>
 
6243
                                        <xs:sequence>
 
6244
                                                <xs:element name="front">
 
6245
                                                        <xs:complexType>
 
6246
                                                                <xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
 
6247
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6248
                                                        </xs:complexType>
 
6249
                                                </xs:element>
 
6250
                                                <xs:element name="back">
 
6251
                                                        <xs:complexType>
 
6252
                                                                <xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
 
6253
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6254
                                                        </xs:complexType>
 
6255
                                                </xs:element>
 
6256
                                                <xs:element name="ref">
 
6257
                                                        <xs:complexType>
 
6258
                                                                <xs:attribute name="value" type="xs:unsignedByte" use="optional" default="0"/>
 
6259
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6260
                                                        </xs:complexType>
 
6261
                                                </xs:element>
 
6262
                                                <xs:element name="mask">
 
6263
                                                        <xs:complexType>
 
6264
                                                                <xs:attribute name="value" type="xs:unsignedByte" use="optional" default="255"/>
 
6265
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6266
                                                        </xs:complexType>
 
6267
                                                </xs:element>
 
6268
                                        </xs:sequence>
 
6269
                                </xs:complexType>
 
6270
                        </xs:element>
 
6271
                        <xs:element name="stencil_op_separate">
 
6272
                                <xs:complexType>
 
6273
                                        <xs:sequence>
 
6274
                                                <xs:element name="face">
 
6275
                                                        <xs:complexType>
 
6276
                                                                <xs:attribute name="value" type="gl_face_type" use="optional" default="FRONT_AND_BACK"/>
 
6277
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6278
                                                        </xs:complexType>
 
6279
                                                </xs:element>
 
6280
                                                <xs:element name="fail">
 
6281
                                                        <xs:complexType>
 
6282
                                                                <xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
 
6283
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6284
                                                        </xs:complexType>
 
6285
                                                </xs:element>
 
6286
                                                <xs:element name="zfail">
 
6287
                                                        <xs:complexType>
 
6288
                                                                <xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
 
6289
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6290
                                                        </xs:complexType>
 
6291
                                                </xs:element>
 
6292
                                                <xs:element name="zpass">
 
6293
                                                        <xs:complexType>
 
6294
                                                                <xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
 
6295
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6296
                                                        </xs:complexType>
 
6297
                                                </xs:element>
 
6298
                                        </xs:sequence>
 
6299
                                </xs:complexType>
 
6300
                        </xs:element>
 
6301
                        <xs:element name="stencil_mask_separate">
 
6302
                                <xs:complexType>
 
6303
                                        <xs:sequence>
 
6304
                                                <xs:element name="face">
 
6305
                                                        <xs:complexType>
 
6306
                                                                <xs:attribute name="value" type="gl_face_type" use="optional" default="FRONT_AND_BACK"/>
 
6307
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6308
                                                        </xs:complexType>
 
6309
                                                </xs:element>
 
6310
                                                <xs:element name="mask">
 
6311
                                                        <xs:complexType>
 
6312
                                                                <xs:attribute name="value" type="xs:unsignedByte" use="optional" default="255"/>
 
6313
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6314
                                                        </xs:complexType>
 
6315
                                                </xs:element>
 
6316
                                        </xs:sequence>
 
6317
                                </xs:complexType>
 
6318
                        </xs:element>
 
6319
                        <xs:element name="light_enable">
 
6320
                                <xs:complexType>
 
6321
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6322
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6323
                                        <xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
 
6324
                                </xs:complexType>
 
6325
                        </xs:element>
 
6326
                        <xs:element name="light_ambient">
 
6327
                                <xs:complexType>
 
6328
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
 
6329
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6330
                                        <xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
 
6331
                                </xs:complexType>
 
6332
                        </xs:element>
 
6333
                        <xs:element name="light_diffuse">
 
6334
                                <xs:complexType>
 
6335
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
 
6336
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6337
                                        <xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
 
6338
                                </xs:complexType>
 
6339
                        </xs:element>
 
6340
                        <xs:element name="light_specular">
 
6341
                                <xs:complexType>
 
6342
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
 
6343
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6344
                                        <xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
 
6345
                                </xs:complexType>
 
6346
                        </xs:element>
 
6347
                        <xs:element name="light_position">
 
6348
                                <xs:complexType>
 
6349
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 1 0"/>
 
6350
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6351
                                        <xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
 
6352
                                </xs:complexType>
 
6353
                        </xs:element>
 
6354
                        <xs:element name="light_constant_attenuation">
 
6355
                                <xs:complexType>
 
6356
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
6357
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6358
                                        <xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
 
6359
                                </xs:complexType>
 
6360
                        </xs:element>
 
6361
                        <xs:element name="light_linear_attenuation">
 
6362
                                <xs:complexType>
 
6363
                                        <xs:attribute name="value" type="float" use="optional" default="0"/>
 
6364
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6365
                                        <xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
 
6366
                                </xs:complexType>
 
6367
                        </xs:element>
 
6368
                        <xs:element name="light_quadratic_attenuation">
 
6369
                                <xs:complexType>
 
6370
                                        <xs:attribute name="value" type="float" use="optional" default="0"/>
 
6371
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6372
                                        <xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
 
6373
                                </xs:complexType>
 
6374
                        </xs:element>
 
6375
                        <xs:element name="light_spot_cutoff">
 
6376
                                <xs:complexType>
 
6377
                                        <xs:attribute name="value" type="float" use="optional" default="180"/>
 
6378
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6379
                                        <xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
 
6380
                                </xs:complexType>
 
6381
                        </xs:element>
 
6382
                        <xs:element name="light_spot_direction">
 
6383
                                <xs:complexType>
 
6384
                                        <xs:attribute name="value" type="float3" use="optional" default="0 0 -1"/>
 
6385
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6386
                                        <xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
 
6387
                                </xs:complexType>
 
6388
                        </xs:element>
 
6389
                        <xs:element name="light_spot_exponent">
 
6390
                                <xs:complexType>
 
6391
                                        <xs:attribute name="value" type="float" use="optional" default="0"/>
 
6392
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6393
                                        <xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
 
6394
                                </xs:complexType>
 
6395
                        </xs:element>
 
6396
                        <xs:element name="texture1D">
 
6397
                                <xs:complexType>
 
6398
                                        <xs:choice>
 
6399
                                                <xs:element name="value" type="gl_sampler1D"/>
 
6400
                                                <xs:element name="param" type="xs:NCName"/>
 
6401
                                        </xs:choice>
 
6402
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
 
6403
                                </xs:complexType>
 
6404
                        </xs:element>
 
6405
                        <xs:element name="texture2D">
 
6406
                                <xs:complexType>
 
6407
                                        <xs:choice>
 
6408
                                                <xs:element name="value" type="gl_sampler2D"/>
 
6409
                                                <xs:element name="param" type="xs:NCName"/>
 
6410
                                        </xs:choice>
 
6411
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
 
6412
                                </xs:complexType>
 
6413
                        </xs:element>
 
6414
                        <xs:element name="texture3D">
 
6415
                                <xs:complexType>
 
6416
                                        <xs:choice>
 
6417
                                                <xs:element name="value" type="gl_sampler3D"/>
 
6418
                                                <xs:element name="param" type="xs:NCName"/>
 
6419
                                        </xs:choice>
 
6420
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
 
6421
                                </xs:complexType>
 
6422
                        </xs:element>
 
6423
                        <xs:element name="textureCUBE">
 
6424
                                <xs:complexType>
 
6425
                                        <xs:choice>
 
6426
                                                <xs:element name="value" type="gl_samplerCUBE"/>
 
6427
                                                <xs:element name="param" type="xs:NCName"/>
 
6428
                                        </xs:choice>
 
6429
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
 
6430
                                </xs:complexType>
 
6431
                        </xs:element>
 
6432
                        <xs:element name="textureRECT">
 
6433
                                <xs:complexType>
 
6434
                                        <xs:choice>
 
6435
                                                <xs:element name="value" type="gl_samplerRECT"/>
 
6436
                                                <xs:element name="param" type="xs:NCName"/>
 
6437
                                        </xs:choice>
 
6438
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
 
6439
                                </xs:complexType>
 
6440
                        </xs:element>
 
6441
                        <xs:element name="textureDEPTH">
 
6442
                                <xs:complexType>
 
6443
                                        <xs:choice>
 
6444
                                                <xs:element name="value" type="gl_samplerDEPTH"/>
 
6445
                                                <xs:element name="param" type="xs:NCName"/>
 
6446
                                        </xs:choice>
 
6447
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
 
6448
                                </xs:complexType>
 
6449
                        </xs:element>
 
6450
                        <xs:element name="texture1D_enable">
 
6451
                                <xs:complexType>
 
6452
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6453
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6454
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
 
6455
                                </xs:complexType>
 
6456
                        </xs:element>
 
6457
                        <xs:element name="texture2D_enable">
 
6458
                                <xs:complexType>
 
6459
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6460
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6461
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
 
6462
                                </xs:complexType>
 
6463
                        </xs:element>
 
6464
                        <xs:element name="texture3D_enable">
 
6465
                                <xs:complexType>
 
6466
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6467
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6468
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
 
6469
                                </xs:complexType>
 
6470
                        </xs:element>
 
6471
                        <xs:element name="textureCUBE_enable">
 
6472
                                <xs:complexType>
 
6473
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6474
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6475
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
 
6476
                                </xs:complexType>
 
6477
                        </xs:element>
 
6478
                        <xs:element name="textureRECT_enable">
 
6479
                                <xs:complexType>
 
6480
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6481
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6482
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
 
6483
                                </xs:complexType>
 
6484
                        </xs:element>
 
6485
                        <xs:element name="textureDEPTH_enable">
 
6486
                                <xs:complexType>
 
6487
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6488
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6489
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
 
6490
                                </xs:complexType>
 
6491
                        </xs:element>
 
6492
                        <xs:element name="texture_env_color">
 
6493
                                <xs:complexType>
 
6494
                                        <xs:attribute name="value" type="float4" use="optional"/>
 
6495
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6496
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
 
6497
                                </xs:complexType>
 
6498
                        </xs:element>
 
6499
                        <xs:element name="texture_env_mode">
 
6500
                                <xs:complexType>
 
6501
                                        <xs:attribute name="value" type="string" use="optional"/>
 
6502
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6503
                                        <xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
 
6504
                                </xs:complexType>
 
6505
                        </xs:element>
 
6506
                        <xs:element name="clip_plane">
 
6507
                                <xs:complexType>
 
6508
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
 
6509
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6510
                                        <xs:attribute name="index" type="GL_MAX_CLIP_PLANES_index"/>
 
6511
                                </xs:complexType>
 
6512
                        </xs:element>
 
6513
                        <xs:element name="clip_plane_enable">
 
6514
                                <xs:complexType>
 
6515
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6516
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6517
                                        <xs:attribute name="index" type="GL_MAX_CLIP_PLANES_index"/>
 
6518
                                </xs:complexType>
 
6519
                        </xs:element>
 
6520
                        <xs:element name="blend_color">
 
6521
                                <xs:complexType>
 
6522
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
 
6523
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6524
                                </xs:complexType>
 
6525
                        </xs:element>
 
6526
                        <xs:element name="clear_color">
 
6527
                                <xs:complexType>
 
6528
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
 
6529
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6530
                                </xs:complexType>
 
6531
                        </xs:element>
 
6532
                        <xs:element name="clear_stencil">
 
6533
                                <xs:complexType>
 
6534
                                        <xs:attribute name="value" type="int" use="optional" default="0"/>
 
6535
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6536
                                </xs:complexType>
 
6537
                        </xs:element>
 
6538
                        <xs:element name="clear_depth">
 
6539
                                <xs:complexType>
 
6540
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
6541
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6542
                                </xs:complexType>
 
6543
                        </xs:element>
 
6544
                        <xs:element name="color_mask">
 
6545
                                <xs:complexType>
 
6546
                                        <xs:attribute name="value" type="bool4" use="optional" default="true true true true"/>
 
6547
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6548
                                </xs:complexType>
 
6549
                        </xs:element>
 
6550
                        <xs:element name="depth_bounds">
 
6551
                                <xs:complexType>
 
6552
                                        <xs:attribute name="value" type="float2" use="optional"/>
 
6553
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6554
                                </xs:complexType>
 
6555
                        </xs:element>
 
6556
                        <xs:element name="depth_mask">
 
6557
                                <xs:complexType>
 
6558
                                        <xs:attribute name="value" type="bool" use="optional" default="true"/>
 
6559
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6560
                                </xs:complexType>
 
6561
                        </xs:element>
 
6562
                        <xs:element name="depth_range">
 
6563
                                <xs:complexType>
 
6564
                                        <xs:attribute name="value" type="float2" use="optional" default="0 1"/>
 
6565
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6566
                                </xs:complexType>
 
6567
                        </xs:element>
 
6568
                        <xs:element name="fog_density">
 
6569
                                <xs:complexType>
 
6570
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
6571
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6572
                                </xs:complexType>
 
6573
                        </xs:element>
 
6574
                        <xs:element name="fog_start">
 
6575
                                <xs:complexType>
 
6576
                                        <xs:attribute name="value" type="float" use="optional" default="0"/>
 
6577
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6578
                                </xs:complexType>
 
6579
                        </xs:element>
 
6580
                        <xs:element name="fog_end">
 
6581
                                <xs:complexType>
 
6582
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
6583
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6584
                                </xs:complexType>
 
6585
                        </xs:element>
 
6586
                        <xs:element name="fog_color">
 
6587
                                <xs:complexType>
 
6588
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
 
6589
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6590
                                </xs:complexType>
 
6591
                        </xs:element>
 
6592
                        <xs:element name="light_model_ambient">
 
6593
                                <xs:complexType>
 
6594
                                        <xs:attribute name="value" type="float4" use="optional" default="0.2 0.2 0.2 1.0"/>
 
6595
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6596
                                </xs:complexType>
 
6597
                        </xs:element>
 
6598
                        <xs:element name="lighting_enable">
 
6599
                                <xs:complexType>
 
6600
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6601
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6602
                                </xs:complexType>
 
6603
                        </xs:element>
 
6604
                        <xs:element name="line_stipple">
 
6605
                                <xs:complexType>
 
6606
                                        <xs:attribute name="value" type="int2" use="optional" default="1 65536"/>
 
6607
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6608
                                </xs:complexType>
 
6609
                        </xs:element>
 
6610
                        <xs:element name="line_width">
 
6611
                                <xs:complexType>
 
6612
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
6613
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6614
                                </xs:complexType>
 
6615
                        </xs:element>
 
6616
                        <xs:element name="material_ambient">
 
6617
                                <xs:complexType>
 
6618
                                        <xs:attribute name="value" type="float4" use="optional" default="0.2 0.2 0.2 1.0"/>
 
6619
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6620
                                </xs:complexType>
 
6621
                        </xs:element>
 
6622
                        <xs:element name="material_diffuse">
 
6623
                                <xs:complexType>
 
6624
                                        <xs:attribute name="value" type="float4" use="optional" default="0.8 0.8 0.8 1.0"/>
 
6625
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6626
                                </xs:complexType>
 
6627
                        </xs:element>
 
6628
                        <xs:element name="material_emission">
 
6629
                                <xs:complexType>
 
6630
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
 
6631
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6632
                                </xs:complexType>
 
6633
                        </xs:element>
 
6634
                        <xs:element name="material_shininess">
 
6635
                                <xs:complexType>
 
6636
                                        <xs:attribute name="value" type="float" use="optional" default="0"/>
 
6637
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6638
                                </xs:complexType>
 
6639
                        </xs:element>
 
6640
                        <xs:element name="material_specular">
 
6641
                                <xs:complexType>
 
6642
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
 
6643
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6644
                                </xs:complexType>
 
6645
                        </xs:element>
 
6646
                        <xs:element name="model_view_matrix">
 
6647
                                <xs:complexType>
 
6648
                                        <xs:attribute name="value" type="float4x4" use="optional" default="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"/>
 
6649
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6650
                                </xs:complexType>
 
6651
                        </xs:element>
 
6652
                        <xs:element name="point_distance_attenuation">
 
6653
                                <xs:complexType>
 
6654
                                        <xs:attribute name="value" type="float3" use="optional" default="1 0 0"/>
 
6655
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6656
                                </xs:complexType>
 
6657
                        </xs:element>
 
6658
                        <xs:element name="point_fade_threshold_size">
 
6659
                                <xs:complexType>
 
6660
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
6661
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6662
                                </xs:complexType>
 
6663
                        </xs:element>
 
6664
                        <xs:element name="point_size">
 
6665
                                <xs:complexType>
 
6666
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
6667
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6668
                                </xs:complexType>
 
6669
                        </xs:element>
 
6670
                        <xs:element name="point_size_min">
 
6671
                                <xs:complexType>
 
6672
                                        <xs:attribute name="value" type="float" use="optional" default="0"/>
 
6673
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6674
                                </xs:complexType>
 
6675
                        </xs:element>
 
6676
                        <xs:element name="point_size_max">
 
6677
                                <xs:complexType>
 
6678
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
6679
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6680
                                </xs:complexType>
 
6681
                        </xs:element>
 
6682
                        <xs:element name="polygon_offset">
 
6683
                                <xs:complexType>
 
6684
                                        <xs:attribute name="value" type="float2" use="optional" default="0 0"/>
 
6685
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6686
                                </xs:complexType>
 
6687
                        </xs:element>
 
6688
                        <xs:element name="projection_matrix">
 
6689
                                <xs:complexType>
 
6690
                                        <xs:attribute name="value" type="float4x4" use="optional" default="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"/>
 
6691
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6692
                                </xs:complexType>
 
6693
                        </xs:element>
 
6694
                        <xs:element name="scissor">
 
6695
                                <xs:complexType>
 
6696
                                        <xs:attribute name="value" type="int4" use="optional"/>
 
6697
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6698
                                </xs:complexType>
 
6699
                        </xs:element>
 
6700
                        <xs:element name="stencil_mask">
 
6701
                                <xs:complexType>
 
6702
                                        <xs:attribute name="value" type="int" use="optional" default="4294967295"/>
 
6703
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6704
                                </xs:complexType>
 
6705
                        </xs:element>
 
6706
                        <xs:element name="alpha_test_enable">
 
6707
                                <xs:complexType>
 
6708
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6709
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6710
                                </xs:complexType>
 
6711
                        </xs:element>
 
6712
                        <xs:element name="auto_normal_enable">
 
6713
                                <xs:complexType>
 
6714
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6715
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6716
                                </xs:complexType>
 
6717
                        </xs:element>
 
6718
                        <xs:element name="blend_enable">
 
6719
                                <xs:complexType>
 
6720
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6721
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6722
                                </xs:complexType>
 
6723
                        </xs:element>
 
6724
                        <xs:element name="color_logic_op_enable">
 
6725
                                <xs:complexType>
 
6726
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6727
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6728
                                </xs:complexType>
 
6729
                        </xs:element>
 
6730
                        <xs:element name="color_material_enable">
 
6731
                                <xs:complexType>
 
6732
                                        <xs:attribute name="value" type="bool" use="optional" default="true"/>
 
6733
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6734
                                </xs:complexType>
 
6735
                        </xs:element>
 
6736
                        <xs:element name="cull_face_enable">
 
6737
                                <xs:complexType>
 
6738
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6739
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6740
                                </xs:complexType>
 
6741
                        </xs:element>
 
6742
                        <xs:element name="depth_bounds_enable">
 
6743
                                <xs:complexType>
 
6744
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6745
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6746
                                </xs:complexType>
 
6747
                        </xs:element>
 
6748
                        <xs:element name="depth_clamp_enable">
 
6749
                                <xs:complexType>
 
6750
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6751
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6752
                                </xs:complexType>
 
6753
                        </xs:element>
 
6754
                        <xs:element name="depth_test_enable">
 
6755
                                <xs:complexType>
 
6756
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6757
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6758
                                </xs:complexType>
 
6759
                        </xs:element>
 
6760
                        <xs:element name="dither_enable">
 
6761
                                <xs:complexType>
 
6762
                                        <xs:attribute name="value" type="bool" use="optional" default="true"/>
 
6763
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6764
                                </xs:complexType>
 
6765
                        </xs:element>
 
6766
                        <xs:element name="fog_enable">
 
6767
                                <xs:complexType>
 
6768
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6769
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6770
                                </xs:complexType>
 
6771
                        </xs:element>
 
6772
                        <xs:element name="light_model_local_viewer_enable">
 
6773
                                <xs:complexType>
 
6774
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6775
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6776
                                </xs:complexType>
 
6777
                        </xs:element>
 
6778
                        <xs:element name="light_model_two_side_enable">
 
6779
                                <xs:complexType>
 
6780
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6781
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6782
                                </xs:complexType>
 
6783
                        </xs:element>
 
6784
                        <xs:element name="line_smooth_enable">
 
6785
                                <xs:complexType>
 
6786
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6787
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6788
                                </xs:complexType>
 
6789
                        </xs:element>
 
6790
                        <xs:element name="line_stipple_enable">
 
6791
                                <xs:complexType>
 
6792
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6793
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6794
                                </xs:complexType>
 
6795
                        </xs:element>
 
6796
                        <xs:element name="logic_op_enable">
 
6797
                                <xs:complexType>
 
6798
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6799
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6800
                                </xs:complexType>
 
6801
                        </xs:element>
 
6802
                        <xs:element name="multisample_enable">
 
6803
                                <xs:complexType>
 
6804
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6805
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6806
                                </xs:complexType>
 
6807
                        </xs:element>
 
6808
                        <xs:element name="normalize_enable">
 
6809
                                <xs:complexType>
 
6810
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6811
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6812
                                </xs:complexType>
 
6813
                        </xs:element>
 
6814
                        <xs:element name="point_smooth_enable">
 
6815
                                <xs:complexType>
 
6816
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6817
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6818
                                </xs:complexType>
 
6819
                        </xs:element>
 
6820
                        <xs:element name="polygon_offset_fill_enable">
 
6821
                                <xs:complexType>
 
6822
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6823
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6824
                                </xs:complexType>
 
6825
                        </xs:element>
 
6826
                        <xs:element name="polygon_offset_line_enable">
 
6827
                                <xs:complexType>
 
6828
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6829
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6830
                                </xs:complexType>
 
6831
                        </xs:element>
 
6832
                        <xs:element name="polygon_offset_point_enable">
 
6833
                                <xs:complexType>
 
6834
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6835
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6836
                                </xs:complexType>
 
6837
                        </xs:element>
 
6838
                        <xs:element name="polygon_smooth_enable">
 
6839
                                <xs:complexType>
 
6840
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6841
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6842
                                </xs:complexType>
 
6843
                        </xs:element>
 
6844
                        <xs:element name="polygon_stipple_enable">
 
6845
                                <xs:complexType>
 
6846
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6847
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6848
                                </xs:complexType>
 
6849
                        </xs:element>
 
6850
                        <xs:element name="rescale_normal_enable">
 
6851
                                <xs:complexType>
 
6852
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6853
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6854
                                </xs:complexType>
 
6855
                        </xs:element>
 
6856
                        <xs:element name="sample_alpha_to_coverage_enable">
 
6857
                                <xs:complexType>
 
6858
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6859
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6860
                                </xs:complexType>
 
6861
                        </xs:element>
 
6862
                        <xs:element name="sample_alpha_to_one_enable">
 
6863
                                <xs:complexType>
 
6864
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6865
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6866
                                </xs:complexType>
 
6867
                        </xs:element>
 
6868
                        <xs:element name="sample_coverage_enable">
 
6869
                                <xs:complexType>
 
6870
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6871
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6872
                                </xs:complexType>
 
6873
                        </xs:element>
 
6874
                        <xs:element name="scissor_test_enable">
 
6875
                                <xs:complexType>
 
6876
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6877
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6878
                                </xs:complexType>
 
6879
                        </xs:element>
 
6880
                        <xs:element name="stencil_test_enable">
 
6881
                                <xs:complexType>
 
6882
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
6883
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
6884
                                </xs:complexType>
 
6885
                        </xs:element>
 
6886
                        <xs:element ref="gl_hook_abstract"/>
 
6887
                </xs:choice>
 
6888
        </xs:group>
 
6889
        <xs:element name="gl_hook_abstract" abstract="true"/>
 
6890
        <xs:simpleType name="glsl_float">
 
6891
                <xs:restriction base="xs:float"/>
 
6892
        </xs:simpleType>
 
6893
        <xs:simpleType name="glsl_int">
 
6894
                <xs:restriction base="xs:int"/>
 
6895
        </xs:simpleType>
 
6896
        <xs:simpleType name="glsl_bool">
 
6897
                <xs:restriction base="xs:boolean"/>
 
6898
        </xs:simpleType>
 
6899
        <xs:simpleType name="glsl_ListOfBool">
 
6900
                <xs:list itemType="glsl_bool"/>
 
6901
        </xs:simpleType>
 
6902
        <xs:simpleType name="glsl_ListOfFloat">
 
6903
                <xs:list itemType="glsl_float"/>
 
6904
        </xs:simpleType>
 
6905
        <xs:simpleType name="glsl_ListOfInt">
 
6906
                <xs:list itemType="glsl_int"/>
 
6907
        </xs:simpleType>
 
6908
        <xs:simpleType name="glsl_bool2">
 
6909
                <xs:restriction base="glsl_ListOfBool">
 
6910
                        <xs:minLength value="2"/>
 
6911
                        <xs:maxLength value="2"/>
 
6912
                </xs:restriction>
 
6913
        </xs:simpleType>
 
6914
        <xs:simpleType name="glsl_bool3">
 
6915
                <xs:restriction base="glsl_ListOfBool">
 
6916
                        <xs:minLength value="3"/>
 
6917
                        <xs:maxLength value="3"/>
 
6918
                </xs:restriction>
 
6919
        </xs:simpleType>
 
6920
        <xs:simpleType name="glsl_bool4">
 
6921
                <xs:restriction base="glsl_ListOfBool">
 
6922
                        <xs:minLength value="4"/>
 
6923
                        <xs:maxLength value="4"/>
 
6924
                </xs:restriction>
 
6925
        </xs:simpleType>
 
6926
        <xs:simpleType name="glsl_float2">
 
6927
                <xs:restriction base="glsl_ListOfFloat">
 
6928
                        <xs:minLength value="2"/>
 
6929
                        <xs:maxLength value="2"/>
 
6930
                </xs:restriction>
 
6931
        </xs:simpleType>
 
6932
        <xs:simpleType name="glsl_float3">
 
6933
                <xs:restriction base="glsl_ListOfFloat">
 
6934
                        <xs:minLength value="3"/>
 
6935
                        <xs:maxLength value="3"/>
 
6936
                </xs:restriction>
 
6937
        </xs:simpleType>
 
6938
        <xs:simpleType name="glsl_float4">
 
6939
                <xs:restriction base="glsl_ListOfFloat">
 
6940
                        <xs:minLength value="4"/>
 
6941
                        <xs:maxLength value="4"/>
 
6942
                </xs:restriction>
 
6943
        </xs:simpleType>
 
6944
        <xs:simpleType name="glsl_float2x2">
 
6945
                <xs:restriction base="glsl_ListOfFloat">
 
6946
                        <xs:minLength value="4"/>
 
6947
                        <xs:maxLength value="4"/>
 
6948
                </xs:restriction>
 
6949
        </xs:simpleType>
 
6950
        <xs:simpleType name="glsl_float3x3">
 
6951
                <xs:restriction base="glsl_ListOfFloat">
 
6952
                        <xs:minLength value="9"/>
 
6953
                        <xs:maxLength value="9"/>
 
6954
                </xs:restriction>
 
6955
        </xs:simpleType>
 
6956
        <xs:simpleType name="glsl_float4x4">
 
6957
                <xs:restriction base="glsl_ListOfFloat">
 
6958
                        <xs:minLength value="16"/>
 
6959
                        <xs:maxLength value="16"/>
 
6960
                </xs:restriction>
 
6961
        </xs:simpleType>
 
6962
        <xs:simpleType name="glsl_int2">
 
6963
                <xs:restriction base="glsl_ListOfInt">
 
6964
                        <xs:minLength value="2"/>
 
6965
                        <xs:maxLength value="2"/>
 
6966
                </xs:restriction>
 
6967
        </xs:simpleType>
 
6968
        <xs:simpleType name="glsl_int3">
 
6969
                <xs:restriction base="glsl_ListOfInt">
 
6970
                        <xs:minLength value="3"/>
 
6971
                        <xs:maxLength value="3"/>
 
6972
                </xs:restriction>
 
6973
        </xs:simpleType>
 
6974
        <xs:simpleType name="glsl_int4">
 
6975
                <xs:restriction base="glsl_ListOfInt">
 
6976
                        <xs:minLength value="4"/>
 
6977
                        <xs:maxLength value="4"/>
 
6978
                </xs:restriction>
 
6979
        </xs:simpleType>
 
6980
        <xs:simpleType name="glsl_pipeline_stage">
 
6981
                <xs:restriction base="xs:string">
 
6982
                        <xs:enumeration value="VERTEXPROGRAM"/>
 
6983
                        <xs:enumeration value="FRAGMENTPROGRAM"/>
 
6984
                </xs:restriction>
 
6985
        </xs:simpleType>
 
6986
        <xs:simpleType name="glsl_identifier">
 
6987
                <xs:restriction base="xs:token"/>
 
6988
        </xs:simpleType>
 
6989
        <xs:complexType name="glsl_newarray_type">
 
6990
                <xs:annotation>
 
6991
                        <xs:documentation>
 
6992
                        The glsl_newarray_type is used to creates a parameter of a one-dimensional array type.
 
6993
                        </xs:documentation>
 
6994
                </xs:annotation>
 
6995
                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
6996
                        <xs:group ref="glsl_param_type"/>
 
6997
                        <xs:element name="array" type="glsl_newarray_type">
 
6998
                                <xs:annotation>
 
6999
                                        <xs:documentation>
 
7000
                                        You may recursively nest glsl_newarray elements to create multidimensional arrays.
 
7001
                                        </xs:documentation>
 
7002
                                </xs:annotation>
 
7003
                        </xs:element>
 
7004
                </xs:choice>
 
7005
                <xs:attribute name="length" type="xs:positiveInteger" use="required">
 
7006
                        <xs:annotation>
 
7007
                                <xs:documentation>
 
7008
                                The length attribute specifies the length of the array.
 
7009
                                </xs:documentation>
 
7010
                        </xs:annotation>
 
7011
                </xs:attribute>
 
7012
        </xs:complexType>
 
7013
        <xs:complexType name="glsl_setarray_type">
 
7014
                <xs:annotation>
 
7015
                        <xs:documentation>
 
7016
                        The glsl_newarray_type is used to creates a parameter of a one-dimensional array type.
 
7017
                        </xs:documentation>
 
7018
                </xs:annotation>
 
7019
                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
7020
                        <xs:group ref="glsl_param_type"/>
 
7021
                        <xs:element name="array" type="glsl_setarray_type">
 
7022
                                <xs:annotation>
 
7023
                                        <xs:documentation>
 
7024
                                        You may recursively nest glsl_newarray elements to create multidimensional arrays.
 
7025
                                        </xs:documentation>
 
7026
                                </xs:annotation>
 
7027
                        </xs:element>
 
7028
                </xs:choice>
 
7029
                <xs:attribute name="length" type="xs:positiveInteger" use="optional">
 
7030
                        <xs:annotation>
 
7031
                                <xs:documentation>
 
7032
                                The length attribute specifies the length of the array.
 
7033
                                </xs:documentation>
 
7034
                        </xs:annotation>
 
7035
                </xs:attribute>
 
7036
        </xs:complexType>
 
7037
        <xs:complexType name="glsl_surface_type">
 
7038
                <xs:annotation>
 
7039
                        <xs:documentation>
 
7040
                        A surface type for the GLSL profile. This surface inherits from the fx_surface_common type and adds the
 
7041
                        ability to programmatically generate textures.
 
7042
                        </xs:documentation>
 
7043
                </xs:annotation>
 
7044
                <xs:complexContent>
 
7045
                        <xs:extension base="fx_surface_common">
 
7046
                                <xs:sequence>
 
7047
                                        <xs:element name="generator" minOccurs="0">
 
7048
                                                <xs:annotation>
 
7049
                                                        <xs:documentation>
 
7050
                                                        A procedural surface generator.
 
7051
                                                        </xs:documentation>
 
7052
                                                </xs:annotation>
 
7053
                                                <xs:complexType>
 
7054
                                                        <xs:sequence>
 
7055
                                                                <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
 
7056
                                                                        <xs:annotation>
 
7057
                                                                                <xs:documentation>
 
7058
                                                                                The annotate element allows you to specify an annotation for this surface generator.
 
7059
                                                                                </xs:documentation>
 
7060
                                                                        </xs:annotation>
 
7061
                                                                </xs:element>
 
7062
                                                                <xs:choice maxOccurs="unbounded">
 
7063
                                                                        <xs:element name="code" type="fx_code_profile">
 
7064
                                                                                <xs:annotation>
 
7065
                                                                                        <xs:documentation>
 
7066
                                                                                        The code element allows you to embed GLSL code to use for this surface generator.
 
7067
                                                                                        </xs:documentation>
 
7068
                                                                                </xs:annotation>
 
7069
                                                                        </xs:element>
 
7070
                                                                        <xs:element name="include" type="fx_include_common">
 
7071
                                                                                <xs:annotation>
 
7072
                                                                                        <xs:documentation>
 
7073
                                                                                        The include element allows you to import GLSL code to use for this surface generator.
 
7074
                                                                                        </xs:documentation>
 
7075
                                                                                </xs:annotation>
 
7076
                                                                        </xs:element>
 
7077
                                                                </xs:choice>
 
7078
                                                                <xs:element name="name">
 
7079
                                                                        <xs:annotation>
 
7080
                                                                                <xs:documentation>
 
7081
                                                                                The entry symbol for the shader function.
 
7082
                                                                                </xs:documentation>
 
7083
                                                                        </xs:annotation>
 
7084
                                                                        <xs:complexType>
 
7085
                                                                                <xs:simpleContent>
 
7086
                                                                                        <xs:extension base="xs:NCName">
 
7087
                                                                                                <xs:attribute name="source" type="xs:NCName" use="optional"/>
 
7088
                                                                                        </xs:extension>
 
7089
                                                                                </xs:simpleContent>
 
7090
                                                                        </xs:complexType>
 
7091
                                                                </xs:element>
 
7092
                                                                <xs:element name="setparam" type="glsl_setparam_simple" minOccurs="0" maxOccurs="unbounded">
 
7093
                                                                        <xs:annotation>
 
7094
                                                                                <xs:documentation>
 
7095
                                                                                The setparam element allows you to assign a new value to a previously defined parameter.
 
7096
                                                                                </xs:documentation>
 
7097
                                                                        </xs:annotation>
 
7098
                                                                </xs:element>
 
7099
                                                        </xs:sequence>
 
7100
                                                </xs:complexType>
 
7101
                                        </xs:element>
 
7102
                                </xs:sequence>
 
7103
                        </xs:extension>
 
7104
                </xs:complexContent>
 
7105
        </xs:complexType>
 
7106
        <xs:group name="glsl_param_type">
 
7107
                <xs:annotation>
 
7108
                        <xs:documentation>
 
7109
                        A group that specifies the allowable types for GLSL profile parameters.
 
7110
                        </xs:documentation>
 
7111
                </xs:annotation>
 
7112
                <xs:choice>
 
7113
                        <xs:element name="bool" type="glsl_bool"/>
 
7114
                        <xs:element name="bool2" type="glsl_bool2"/>
 
7115
                        <xs:element name="bool3" type="glsl_bool3"/>
 
7116
                        <xs:element name="bool4" type="glsl_bool4"/>
 
7117
                        <xs:element name="float" type="glsl_float"/>
 
7118
                        <xs:element name="float2" type="glsl_float2"/>
 
7119
                        <xs:element name="float3" type="glsl_float3"/>
 
7120
                        <xs:element name="float4" type="glsl_float4"/>
 
7121
                        <xs:element name="float2x2" type="glsl_float2x2"/>
 
7122
                        <xs:element name="float3x3" type="glsl_float3x3"/>
 
7123
                        <xs:element name="float4x4" type="glsl_float4x4"/>
 
7124
                        <xs:element name="int" type="glsl_int"/>
 
7125
                        <xs:element name="int2" type="glsl_int2"/>
 
7126
                        <xs:element name="int3" type="glsl_int3"/>
 
7127
                        <xs:element name="int4" type="glsl_int4"/>
 
7128
                        <xs:element name="surface" type="glsl_surface_type"/>
 
7129
                        <xs:element name="sampler1D" type="gl_sampler1D"/>
 
7130
                        <xs:element name="sampler2D" type="gl_sampler2D"/>
 
7131
                        <xs:element name="sampler3D" type="gl_sampler3D"/>
 
7132
                        <xs:element name="samplerCUBE" type="gl_samplerCUBE"/>
 
7133
                        <xs:element name="samplerRECT" type="gl_samplerRECT"/>
 
7134
                        <xs:element name="samplerDEPTH" type="gl_samplerDEPTH"/>
 
7135
                        <xs:element name="enum" type="gl_enumeration"/>
 
7136
                </xs:choice>
 
7137
        </xs:group>
 
7138
        <xs:complexType name="glsl_newparam">
 
7139
                <xs:sequence>
 
7140
                        <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
7141
                        <xs:element name="semantic" type="xs:NCName" minOccurs="0"/>
 
7142
                        <xs:element name="modifier" type="fx_modifier_enum_common" minOccurs="0"/>
 
7143
                        <xs:choice>
 
7144
                                <xs:group ref="glsl_param_type"/>
 
7145
                                <xs:element name="array" type="glsl_newarray_type"/>
 
7146
                        </xs:choice>
 
7147
                </xs:sequence>
 
7148
                <xs:attribute name="sid" type="glsl_identifier" use="required"/>
 
7149
        </xs:complexType>
 
7150
        <xs:complexType name="glsl_setparam_simple">
 
7151
                <xs:sequence>
 
7152
                        <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
7153
                        <xs:group ref="glsl_param_type"/>
 
7154
                </xs:sequence>
 
7155
                <xs:attribute name="ref" type="glsl_identifier" use="required"/>
 
7156
        </xs:complexType>
 
7157
        <xs:complexType name="glsl_setparam">
 
7158
                <xs:sequence>
 
7159
                        <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
7160
                        <xs:choice>
 
7161
                                <xs:group ref="glsl_param_type"/>
 
7162
                                <xs:element name="array" type="glsl_setarray_type"/>
 
7163
                        </xs:choice>
 
7164
                </xs:sequence>
 
7165
                <xs:attribute name="ref" type="glsl_identifier" use="required"/>
 
7166
                <xs:attribute name="program" type="xs:NCName"/>
 
7167
        </xs:complexType>
 
7168
        <xs:element name="profile_GLSL" substitutionGroup="fx_profile_abstract">
 
7169
                <xs:annotation>
 
7170
                        <xs:documentation>
 
7171
                        Opens a block of GLSL platform-specific data types and technique declarations.
 
7172
                        </xs:documentation>
 
7173
                </xs:annotation>
 
7174
                <xs:complexType>
 
7175
                        <xs:sequence>
 
7176
                                <xs:element ref="asset" minOccurs="0"/>
 
7177
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
7178
                                        <xs:element name="code" type="fx_code_profile"/>
 
7179
                                        <xs:element name="include" type="fx_include_common"/>
 
7180
                                </xs:choice>
 
7181
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
7182
                                        <xs:element ref="image"/>
 
7183
                                        <xs:element name="newparam" type="glsl_newparam"/>
 
7184
                                </xs:choice>
 
7185
                                <xs:element name="technique" maxOccurs="unbounded">
 
7186
                                        <xs:annotation>
 
7187
                                                <xs:documentation>
 
7188
                                                Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method.
 
7189
                                                </xs:documentation>
 
7190
                                        </xs:annotation>
 
7191
                                        <xs:complexType>
 
7192
                                                <xs:sequence>
 
7193
                                                        <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
7194
                                                        <xs:choice minOccurs="0" maxOccurs="unbounded">
 
7195
                                                                <xs:element name="code" type="fx_code_profile"/>
 
7196
                                                                <xs:element name="include" type="fx_include_common"/>
 
7197
                                                        </xs:choice>
 
7198
                                                        <xs:choice minOccurs="0" maxOccurs="unbounded">
 
7199
                                                                <xs:element ref="image"/>
 
7200
                                                                <xs:element name="newparam" type="glsl_newparam"/>
 
7201
                                                                <xs:element name="setparam" type="glsl_setparam"/>
 
7202
                                                        </xs:choice>
 
7203
                                                        <xs:element name="pass" maxOccurs="unbounded">
 
7204
                                                                <xs:annotation>
 
7205
                                                                        <xs:documentation>
 
7206
                                                                        A static declaration of all the render states, shaders, and settings for one rendering pipeline.
 
7207
                                                                        </xs:documentation>
 
7208
                                                                </xs:annotation>
 
7209
                                                                <xs:complexType>
 
7210
                                                                        <xs:sequence>
 
7211
                                                                                <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
7212
                                                                                <xs:element name="color_target" type="fx_colortarget_common" minOccurs="0" maxOccurs="unbounded"/>
 
7213
                                                                                <xs:element name="depth_target" type="fx_depthtarget_common" minOccurs="0" maxOccurs="unbounded"/>
 
7214
                                                                                <xs:element name="stencil_target" type="fx_stenciltarget_common" minOccurs="0" maxOccurs="unbounded"/>
 
7215
                                                                                <xs:element name="color_clear" type="fx_clearcolor_common" minOccurs="0" maxOccurs="unbounded"/>
 
7216
                                                                                <xs:element name="depth_clear" type="fx_cleardepth_common" minOccurs="0" maxOccurs="unbounded"/>
 
7217
                                                                                <xs:element name="stencil_clear" type="fx_clearstencil_common" minOccurs="0" maxOccurs="unbounded"/>
 
7218
                                                                                <xs:element name="draw" type="fx_draw_common" minOccurs="0"/>
 
7219
                                                                                <xs:choice maxOccurs="unbounded">
 
7220
                                                                                        <xs:group ref="gl_pipeline_settings"/>
 
7221
                                                                                        <xs:element name="shader">
 
7222
                                                                                                <xs:annotation>
 
7223
                                                                                                        <xs:documentation>
 
7224
                                                                                                        Declare and prepare a shader for execution in the rendering pipeline of a pass.
 
7225
                                                                                                        </xs:documentation>
 
7226
                                                                                                </xs:annotation>
 
7227
                                                                                                <xs:complexType>
 
7228
                                                                                                        <xs:sequence>
 
7229
                                                                                                                <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
7230
                                                                                                                <xs:sequence minOccurs="0">
 
7231
                                                                                                                        <xs:element name="compiler_target">
 
7232
                                                                                                                                <xs:annotation>
 
7233
                                                                                                                                        <xs:documentation>
 
7234
                                                                                                                                        A string declaring which profile or platform the compiler is targeting this shader for.
 
7235
                                                                                                                                        </xs:documentation>
 
7236
                                                                                                                                </xs:annotation>
 
7237
                                                                                                                                <xs:complexType>
 
7238
                                                                                                                                        <xs:simpleContent>
 
7239
                                                                                                                                                <xs:extension base="xs:NMTOKEN"/>
 
7240
                                                                                                                                        </xs:simpleContent>
 
7241
                                                                                                                                </xs:complexType>
 
7242
                                                                                                                        </xs:element>
 
7243
                                                                                                                        <xs:element name="compiler_options" type="xs:string" minOccurs="0">
 
7244
                                                                                                                                <xs:annotation>
 
7245
                                                                                                                                        <xs:documentation>
 
7246
                                                                                                                                        A string containing command-line operations for the shader compiler.
 
7247
                                                                                                                                        </xs:documentation>
 
7248
                                                                                                                                </xs:annotation>
 
7249
                                                                                                                        </xs:element>
 
7250
                                                                                                                </xs:sequence>
 
7251
                                                                                                                <xs:element name="name">
 
7252
                                                                                                                        <xs:annotation>
 
7253
                                                                                                                                <xs:documentation>
 
7254
                                                                                                                                The entry symbol for the shader function.
 
7255
                                                                                                                                </xs:documentation>
 
7256
                                                                                                                        </xs:annotation>
 
7257
                                                                                                                        <xs:complexType>
 
7258
                                                                                                                                <xs:simpleContent>
 
7259
                                                                                                                                        <xs:extension base="xs:NCName">
 
7260
                                                                                                                                                <xs:attribute name="source" type="xs:NCName" use="optional"/>
 
7261
                                                                                                                                        </xs:extension>
 
7262
                                                                                                                                </xs:simpleContent>
 
7263
                                                                                                                        </xs:complexType>
 
7264
                                                                                                                </xs:element>
 
7265
                                                                                                                <xs:element name="bind" minOccurs="0" maxOccurs="unbounded">
 
7266
                                                                                                                        <xs:annotation>
 
7267
                                                                                                                                <xs:documentation>
 
7268
                                                                                                                                Binds values to uniform inputs of a shader.
 
7269
                                                                                                                                </xs:documentation>
 
7270
                                                                                                                        </xs:annotation>
 
7271
                                                                                                                        <xs:complexType>
 
7272
                                                                                                                                <xs:choice>
 
7273
                                                                                                                                        <xs:group ref="glsl_param_type"/>
 
7274
                                                                                                                                        <xs:element name="param">
 
7275
                                                                                                                                                <xs:complexType>
 
7276
                                                                                                                                                        <xs:attribute name="ref" type="xs:string" use="required"/>
 
7277
                                                                                                                                                </xs:complexType>
 
7278
                                                                                                                                        </xs:element>
 
7279
                                                                                                                                </xs:choice>
 
7280
                                                                                                                                <xs:attribute name="symbol" type="xs:NCName" use="required">
 
7281
                                                                                                                                        <xs:annotation>
 
7282
                                                                                                                                                <xs:documentation>
 
7283
                                                                                                                                                The identifier for a uniform input parameter to the shader (a formal function parameter or in-scope 
 
7284
                                                                                                                                                global) that will be bound to an external resource.
 
7285
                                                                                                                                                </xs:documentation>
 
7286
                                                                                                                                        </xs:annotation>
 
7287
                                                                                                                                </xs:attribute>
 
7288
                                                                                                                        </xs:complexType>
 
7289
                                                                                                                </xs:element>
 
7290
                                                                                                        </xs:sequence>
 
7291
                                                                                                        <xs:attribute name="stage" type="glsl_pipeline_stage">
 
7292
                                                                                                                <xs:annotation>
 
7293
                                                                                                                        <xs:documentation>
 
7294
                                                                                                                        In which pipeline stage this programmable shader is designed to execute, for example, VERTEX, FRAGMENT, etc.
 
7295
                                                                                                                        </xs:documentation>
 
7296
                                                                                                                </xs:annotation>
 
7297
                                                                                                        </xs:attribute>
 
7298
                                                                                                </xs:complexType>
 
7299
                                                                                        </xs:element>
 
7300
                                                                                </xs:choice>
 
7301
                                                                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
7302
                                                                        </xs:sequence>
 
7303
                                                                        <xs:attribute name="sid" type="xs:NCName" use="optional">
 
7304
                                                                                <xs:annotation>
 
7305
                                                                                        <xs:documentation>
 
7306
                                                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
7307
                                                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
7308
                                                                                        </xs:documentation>
 
7309
                                                                                </xs:annotation>
 
7310
                                                                        </xs:attribute>
 
7311
                                                                </xs:complexType>
 
7312
                                                        </xs:element>
 
7313
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
7314
                                                </xs:sequence>
 
7315
                                                <xs:attribute name="id" type="xs:ID">
 
7316
                                                        <xs:annotation>
 
7317
                                                                <xs:documentation>
 
7318
                                                                The id attribute is a text string containing the unique identifier of this element. 
 
7319
                                                                This value must be unique within the instance document. Optional attribute.
 
7320
                                                                </xs:documentation>
 
7321
                                                        </xs:annotation>
 
7322
                                                </xs:attribute>
 
7323
                                                <xs:attribute name="sid" type="xs:NCName" use="required">
 
7324
                                                        <xs:annotation>
 
7325
                                                                <xs:documentation>
 
7326
                                                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
7327
                                                                This value must be unique within the scope of the parent element. Optional attribute.
 
7328
                                                                </xs:documentation>
 
7329
                                                        </xs:annotation>
 
7330
                                                </xs:attribute>
 
7331
                                        </xs:complexType>
 
7332
                                </xs:element>
 
7333
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
7334
                        </xs:sequence>
 
7335
                        <xs:attribute name="id" type="xs:ID" use="optional">
 
7336
                                <xs:annotation>
 
7337
                                        <xs:documentation>
 
7338
                                        The id attribute is a text string containing the unique identifier of this element. 
 
7339
                                        This value must be unique within the instance document. Optional attribute.
 
7340
                                        </xs:documentation>
 
7341
                                </xs:annotation>
 
7342
                        </xs:attribute>
 
7343
                </xs:complexType>
 
7344
        </xs:element>
 
7345
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
7346
        <!-- COLLADA FX common profile                   -->
 
7347
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
7348
        <xs:complexType name="common_float_or_param_type">
 
7349
                <xs:choice>
 
7350
                        <xs:element name="float">
 
7351
                                <xs:complexType>
 
7352
                                        <xs:simpleContent>
 
7353
                                                <xs:extension base="float">
 
7354
                                                        <xs:attribute name="sid" type="xs:NCName"/>
 
7355
                                                </xs:extension>
 
7356
                                        </xs:simpleContent>
 
7357
                                </xs:complexType>
 
7358
                        </xs:element>
 
7359
                        <xs:element name="param">
 
7360
                                <xs:complexType>
 
7361
                                        <xs:attribute name="ref" type="xs:NCName" use="required"/>
 
7362
                                </xs:complexType>
 
7363
                        </xs:element>
 
7364
                </xs:choice>
 
7365
        </xs:complexType>
 
7366
        <xs:complexType name="common_color_or_texture_type">
 
7367
                <xs:choice>
 
7368
                        <xs:element name="color">
 
7369
                                <xs:complexType>
 
7370
                                        <xs:simpleContent>
 
7371
                                                <xs:extension base="fx_color_common">
 
7372
                                                        <xs:attribute name="sid" type="xs:NCName"/>
 
7373
                                                </xs:extension>
 
7374
                                        </xs:simpleContent>
 
7375
                                </xs:complexType>
 
7376
                        </xs:element>
 
7377
                        <xs:element name="param">
 
7378
                                <xs:complexType>
 
7379
                                        <xs:attribute name="ref" type="xs:NCName" use="required"/>
 
7380
                                </xs:complexType>
 
7381
                        </xs:element>
 
7382
                        <xs:element name="texture">
 
7383
                                <xs:complexType>
 
7384
                                        <xs:sequence>
 
7385
                                                <xs:element ref="extra" minOccurs="0"/>
 
7386
                                        </xs:sequence>
 
7387
                                        <xs:attribute name="texture" type="xs:NCName" use="required"/>
 
7388
                                        <xs:attribute name="texcoord" type="xs:NCName" use="required"/>
 
7389
                                </xs:complexType>
 
7390
                        </xs:element>
 
7391
                </xs:choice>
 
7392
        </xs:complexType>
 
7393
        <xs:complexType name="common_transparent_type">
 
7394
                <xs:complexContent>
 
7395
                        <xs:extension base="common_color_or_texture_type">
 
7396
                                <xs:attribute name="opaque" type="fx_opaque_enum" default="A_ONE"/>
 
7397
                        </xs:extension>
 
7398
                </xs:complexContent>
 
7399
        </xs:complexType>
 
7400
        <xs:complexType name="common_newparam_type">
 
7401
                <xs:sequence>
 
7402
                        <xs:element name="semantic" type="xs:NCName" minOccurs="0"/>
 
7403
                        <xs:choice>
 
7404
                                <xs:element name="float" type="float"/>
 
7405
                                <xs:element name="float2" type="float2"/>
 
7406
                                <xs:element name="float3" type="float3"/>
 
7407
                                <xs:element name="float4" type="float4"/>
 
7408
                                <xs:element name="surface" type="fx_surface_common"/>
 
7409
                                <xs:element name="sampler2D" type="fx_sampler2D_common"/>
 
7410
                        </xs:choice>
 
7411
                </xs:sequence>
 
7412
                <xs:attribute name="sid" type="xs:NCName" use="required">
 
7413
                        <xs:annotation>
 
7414
                                <xs:documentation>
 
7415
                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
7416
                                This value must be unique within the scope of the parent element. Optional attribute.
 
7417
                                </xs:documentation>
 
7418
                        </xs:annotation>
 
7419
                </xs:attribute>
 
7420
        </xs:complexType>
 
7421
        <xs:element name="profile_COMMON" substitutionGroup="fx_profile_abstract">
 
7422
                <xs:annotation>
 
7423
                        <xs:documentation>
 
7424
                        Opens a block of COMMON platform-specific data types and technique declarations.
 
7425
                        </xs:documentation>
 
7426
                </xs:annotation>
 
7427
                <xs:complexType>
 
7428
                        <xs:sequence>
 
7429
                                <xs:element ref="asset" minOccurs="0"/>
 
7430
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
7431
                                        <xs:element ref="image"/>
 
7432
                                        <xs:element name="newparam" type="common_newparam_type"/>
 
7433
                                </xs:choice>
 
7434
                                <xs:element name="technique">
 
7435
                                        <xs:annotation>
 
7436
                                                <xs:documentation>
 
7437
                                                Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method.
 
7438
                                                </xs:documentation>
 
7439
                                        </xs:annotation>
 
7440
                                        <xs:complexType>
 
7441
                                                <xs:sequence>
 
7442
                                                        <xs:element ref="asset" minOccurs="0">
 
7443
                                                                <xs:annotation>
 
7444
                                                                        <xs:documentation>
 
7445
                                                                        The technique element may contain an asset element.
 
7446
                                                                        </xs:documentation>
 
7447
                                                                </xs:annotation>
 
7448
                                                        </xs:element>
 
7449
                                                        <xs:choice minOccurs="0" maxOccurs="unbounded">
 
7450
                                                                <xs:element ref="image"/>
 
7451
                                                                <xs:element name="newparam" type="common_newparam_type"/>
 
7452
                                                        </xs:choice>
 
7453
                                                        <xs:choice>
 
7454
                                                                <xs:element name="constant">
 
7455
                                                                        <xs:complexType>
 
7456
                                                                                <xs:sequence>
 
7457
                                                                                        <xs:element name="emission" type="common_color_or_texture_type" minOccurs="0"/>
 
7458
                                                                                        <xs:element name="reflective" type="common_color_or_texture_type" minOccurs="0"/>
 
7459
                                                                                        <xs:element name="reflectivity" type="common_float_or_param_type" minOccurs="0"/>
 
7460
                                                                                        <xs:element name="transparent" type="common_transparent_type" minOccurs="0"/>
 
7461
                                                                                        <xs:element name="transparency" type="common_float_or_param_type" minOccurs="0"/>
 
7462
                                                                                        <xs:element name="index_of_refraction" type="common_float_or_param_type" minOccurs="0"/>
 
7463
                                                                                </xs:sequence>
 
7464
                                                                        </xs:complexType>
 
7465
                                                                </xs:element>
 
7466
                                                                <xs:element name="lambert">
 
7467
                                                                        <xs:complexType>
 
7468
                                                                                <xs:sequence>
 
7469
                                                                                        <xs:element name="emission" type="common_color_or_texture_type" minOccurs="0"/>
 
7470
                                                                                        <xs:element name="ambient" type="common_color_or_texture_type" minOccurs="0"/>
 
7471
                                                                                        <xs:element name="diffuse" type="common_color_or_texture_type" minOccurs="0"/>
 
7472
                                                                                        <xs:element name="reflective" type="common_color_or_texture_type" minOccurs="0"/>
 
7473
                                                                                        <xs:element name="reflectivity" type="common_float_or_param_type" minOccurs="0"/>
 
7474
                                                                                        <xs:element name="transparent" type="common_transparent_type" minOccurs="0"/>
 
7475
                                                                                        <xs:element name="transparency" type="common_float_or_param_type" minOccurs="0"/>
 
7476
                                                                                        <xs:element name="index_of_refraction" type="common_float_or_param_type" minOccurs="0"/>
 
7477
                                                                                </xs:sequence>
 
7478
                                                                        </xs:complexType>
 
7479
                                                                </xs:element>
 
7480
                                                                <xs:element name="phong">
 
7481
                                                                        <xs:complexType>
 
7482
                                                                                <xs:sequence>
 
7483
                                                                                        <xs:element name="emission" type="common_color_or_texture_type" minOccurs="0"/>
 
7484
                                                                                        <xs:element name="ambient" type="common_color_or_texture_type" minOccurs="0"/>
 
7485
                                                                                        <xs:element name="diffuse" type="common_color_or_texture_type" minOccurs="0"/>
 
7486
                                                                                        <xs:element name="specular" type="common_color_or_texture_type" minOccurs="0"/>
 
7487
                                                                                        <xs:element name="shininess" type="common_float_or_param_type" minOccurs="0"/>
 
7488
                                                                                        <xs:element name="reflective" type="common_color_or_texture_type" minOccurs="0"/>
 
7489
                                                                                        <xs:element name="reflectivity" type="common_float_or_param_type" minOccurs="0"/>
 
7490
                                                                                        <xs:element name="transparent" type="common_transparent_type" minOccurs="0"/>
 
7491
                                                                                        <xs:element name="transparency" type="common_float_or_param_type" minOccurs="0"/>
 
7492
                                                                                        <xs:element name="index_of_refraction" type="common_float_or_param_type" minOccurs="0"/>
 
7493
                                                                        </xs:sequence>
 
7494
                                                                        </xs:complexType>
 
7495
                                                                </xs:element>
 
7496
                                                                <xs:element name="blinn">
 
7497
                                                                        <xs:complexType>
 
7498
                                                                                <xs:sequence>
 
7499
                                                                                        <xs:element name="emission" type="common_color_or_texture_type" minOccurs="0"/>
 
7500
                                                                                        <xs:element name="ambient" type="common_color_or_texture_type" minOccurs="0"/>
 
7501
                                                                                        <xs:element name="diffuse" type="common_color_or_texture_type" minOccurs="0"/>
 
7502
                                                                                        <xs:element name="specular" type="common_color_or_texture_type" minOccurs="0"/>
 
7503
                                                                                        <xs:element name="shininess" type="common_float_or_param_type" minOccurs="0"/>
 
7504
                                                                                        <xs:element name="reflective" type="common_color_or_texture_type" minOccurs="0"/>
 
7505
                                                                                        <xs:element name="reflectivity" type="common_float_or_param_type" minOccurs="0"/>
 
7506
                                                                                        <xs:element name="transparent" type="common_transparent_type" minOccurs="0"/>
 
7507
                                                                                        <xs:element name="transparency" type="common_float_or_param_type" minOccurs="0"/>
 
7508
                                                                                        <xs:element name="index_of_refraction" type="common_float_or_param_type" minOccurs="0"/>
 
7509
                                                                                </xs:sequence>
 
7510
                                                                        </xs:complexType>
 
7511
                                                                </xs:element>
 
7512
                                                        </xs:choice>
 
7513
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
7514
                                                                <xs:annotation>
 
7515
                                                                        <xs:documentation>
 
7516
                                                                        The extra element may appear any number of times.
 
7517
                                                                        </xs:documentation>
 
7518
                                                                </xs:annotation>
 
7519
                                                        </xs:element>
 
7520
                                                </xs:sequence>
 
7521
                                                <xs:attribute name="id" type="xs:ID">
 
7522
                                                        <xs:annotation>
 
7523
                                                                <xs:documentation>
 
7524
                                                                The id attribute is a text string containing the unique identifier of this element. 
 
7525
                                                                This value must be unique within the instance document. Optional attribute.
 
7526
                                                                </xs:documentation>
 
7527
                                                        </xs:annotation>
 
7528
                                                </xs:attribute>
 
7529
                                                <xs:attribute name="sid" type="xs:NCName" use="required">
 
7530
                                                        <xs:annotation>
 
7531
                                                                <xs:documentation>
 
7532
                                                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
7533
                                                                This value must be unique within the scope of the parent element. Optional attribute.
 
7534
                                                                </xs:documentation>
 
7535
                                                        </xs:annotation>
 
7536
                                                </xs:attribute>
 
7537
                                        </xs:complexType>
 
7538
                                </xs:element>
 
7539
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
7540
                                        <xs:annotation>
 
7541
                                                <xs:documentation>
 
7542
                                                The extra element may appear any number of times.
 
7543
                                                </xs:documentation>
 
7544
                                        </xs:annotation>
 
7545
                                </xs:element>
 
7546
                        </xs:sequence>
 
7547
                        <xs:attribute name="id" type="xs:ID" use="optional">
 
7548
                                <xs:annotation>
 
7549
                                        <xs:documentation>
 
7550
                                        The id attribute is a text string containing the unique identifier of this element. 
 
7551
                                        This value must be unique within the instance document. Optional attribute.
 
7552
                                        </xs:documentation>
 
7553
                                </xs:annotation>
 
7554
                        </xs:attribute>
 
7555
                </xs:complexType>
 
7556
        </xs:element>
 
7557
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
7558
        <!-- COLLADA FX Cg elements                      -->
 
7559
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
7560
        <xs:simpleType name="cg_bool">
 
7561
                <xs:restriction base="xs:boolean"/>
 
7562
        </xs:simpleType>
 
7563
        <xs:simpleType name="cg_float">
 
7564
                <xs:restriction base="xs:float"/>
 
7565
        </xs:simpleType>
 
7566
        <xs:simpleType name="cg_int">
 
7567
                <xs:restriction base="xs:int"/>
 
7568
        </xs:simpleType>
 
7569
        <xs:simpleType name="cg_half">
 
7570
                <xs:restriction base="xs:float"/>
 
7571
        </xs:simpleType>
 
7572
        <xs:simpleType name="cg_fixed">
 
7573
                <xs:restriction base="xs:float">
 
7574
                        <xs:minInclusive value="-2.0"/>
 
7575
                        <xs:maxInclusive value="2.0"/>
 
7576
                        <!-- as defined for fp30 profile -->
 
7577
                </xs:restriction>
 
7578
        </xs:simpleType>
 
7579
        <xs:simpleType name="cg_bool1">
 
7580
                <xs:restriction base="xs:boolean"/>
 
7581
        </xs:simpleType>
 
7582
        <xs:simpleType name="cg_float1">
 
7583
                <xs:restriction base="xs:float"/>
 
7584
        </xs:simpleType>
 
7585
        <xs:simpleType name="cg_int1">
 
7586
                <xs:restriction base="xs:int"/>
 
7587
        </xs:simpleType>
 
7588
        <xs:simpleType name="cg_half1">
 
7589
                <xs:restriction base="xs:float"/>
 
7590
        </xs:simpleType>
 
7591
        <xs:simpleType name="cg_fixed1">
 
7592
                <xs:restriction base="xs:float">
 
7593
                        <xs:minInclusive value="-2.0"/>
 
7594
                        <xs:maxInclusive value="2.0"/>
 
7595
                        <!-- as defined for fp30 profile -->
 
7596
                </xs:restriction>
 
7597
        </xs:simpleType>
 
7598
        <xs:simpleType name="cg_ListOfBool">
 
7599
                <xs:list itemType="cg_bool"/>
 
7600
        </xs:simpleType>
 
7601
        <xs:simpleType name="cg_ListOfFloat">
 
7602
                <xs:list itemType="cg_float"/>
 
7603
        </xs:simpleType>
 
7604
        <xs:simpleType name="cg_ListOfInt">
 
7605
                <xs:list itemType="cg_int"/>
 
7606
        </xs:simpleType>
 
7607
        <xs:simpleType name="cg_ListOfHalf">
 
7608
                <xs:list itemType="cg_half"/>
 
7609
        </xs:simpleType>
 
7610
        <xs:simpleType name="cg_ListOfFixed">
 
7611
                <xs:list itemType="cg_fixed"/>
 
7612
        </xs:simpleType>
 
7613
        <xs:simpleType name="cg_bool2">
 
7614
                <xs:restriction base="cg_ListOfBool">
 
7615
                        <xs:minLength value="2"/>
 
7616
                        <xs:maxLength value="2"/>
 
7617
                </xs:restriction>
 
7618
        </xs:simpleType>
 
7619
        <xs:simpleType name="cg_bool3">
 
7620
                <xs:restriction base="cg_ListOfBool">
 
7621
                        <xs:minLength value="3"/>
 
7622
                        <xs:maxLength value="3"/>
 
7623
                </xs:restriction>
 
7624
        </xs:simpleType>
 
7625
        <xs:simpleType name="cg_bool4">
 
7626
                <xs:restriction base="cg_ListOfBool">
 
7627
                        <xs:minLength value="4"/>
 
7628
                        <xs:maxLength value="4"/>
 
7629
                </xs:restriction>
 
7630
        </xs:simpleType>
 
7631
        <xs:simpleType name="cg_bool1x1">
 
7632
                <xs:restriction base="cg_ListOfBool">
 
7633
                        <xs:minLength value="1"/>
 
7634
                        <xs:maxLength value="1"/>
 
7635
                </xs:restriction>
 
7636
        </xs:simpleType>
 
7637
        <xs:simpleType name="cg_bool1x2">
 
7638
                <xs:restriction base="cg_ListOfBool">
 
7639
                        <xs:minLength value="2"/>
 
7640
                        <xs:maxLength value="2"/>
 
7641
                </xs:restriction>
 
7642
        </xs:simpleType>
 
7643
        <xs:simpleType name="cg_bool1x3">
 
7644
                <xs:restriction base="cg_ListOfBool">
 
7645
                        <xs:minLength value="3"/>
 
7646
                        <xs:maxLength value="3"/>
 
7647
                </xs:restriction>
 
7648
        </xs:simpleType>
 
7649
        <xs:simpleType name="cg_bool1x4">
 
7650
                <xs:restriction base="cg_ListOfBool">
 
7651
                        <xs:minLength value="4"/>
 
7652
                        <xs:maxLength value="4"/>
 
7653
                </xs:restriction>
 
7654
        </xs:simpleType>
 
7655
        <xs:simpleType name="cg_bool2x1">
 
7656
                <xs:restriction base="cg_ListOfBool">
 
7657
                        <xs:minLength value="2"/>
 
7658
                        <xs:maxLength value="2"/>
 
7659
                </xs:restriction>
 
7660
        </xs:simpleType>
 
7661
        <xs:simpleType name="cg_bool2x2">
 
7662
                <xs:restriction base="cg_ListOfBool">
 
7663
                        <xs:minLength value="4"/>
 
7664
                        <xs:maxLength value="4"/>
 
7665
                </xs:restriction>
 
7666
        </xs:simpleType>
 
7667
        <xs:simpleType name="cg_bool2x3">
 
7668
                <xs:restriction base="cg_ListOfBool">
 
7669
                        <xs:minLength value="6"/>
 
7670
                        <xs:maxLength value="6"/>
 
7671
                </xs:restriction>
 
7672
        </xs:simpleType>
 
7673
        <xs:simpleType name="cg_bool2x4">
 
7674
                <xs:restriction base="cg_ListOfBool">
 
7675
                        <xs:minLength value="8"/>
 
7676
                        <xs:maxLength value="8"/>
 
7677
                </xs:restriction>
 
7678
        </xs:simpleType>
 
7679
        <xs:simpleType name="cg_bool3x1">
 
7680
                <xs:restriction base="cg_ListOfBool">
 
7681
                        <xs:minLength value="3"/>
 
7682
                        <xs:maxLength value="3"/>
 
7683
                </xs:restriction>
 
7684
        </xs:simpleType>
 
7685
        <xs:simpleType name="cg_bool3x2">
 
7686
                <xs:restriction base="cg_ListOfBool">
 
7687
                        <xs:minLength value="6"/>
 
7688
                        <xs:maxLength value="6"/>
 
7689
                </xs:restriction>
 
7690
        </xs:simpleType>
 
7691
        <xs:simpleType name="cg_bool3x3">
 
7692
                <xs:restriction base="cg_ListOfBool">
 
7693
                        <xs:minLength value="9"/>
 
7694
                        <xs:maxLength value="9"/>
 
7695
                </xs:restriction>
 
7696
        </xs:simpleType>
 
7697
        <xs:simpleType name="cg_bool3x4">
 
7698
                <xs:restriction base="cg_ListOfBool">
 
7699
                        <xs:minLength value="12"/>
 
7700
                        <xs:maxLength value="12"/>
 
7701
                </xs:restriction>
 
7702
        </xs:simpleType>
 
7703
        <xs:simpleType name="cg_bool4x1">
 
7704
                <xs:restriction base="cg_ListOfBool">
 
7705
                        <xs:minLength value="4"/>
 
7706
                        <xs:maxLength value="4"/>
 
7707
                </xs:restriction>
 
7708
        </xs:simpleType>
 
7709
        <xs:simpleType name="cg_bool4x2">
 
7710
                <xs:restriction base="cg_ListOfBool">
 
7711
                        <xs:minLength value="8"/>
 
7712
                        <xs:maxLength value="8"/>
 
7713
                </xs:restriction>
 
7714
        </xs:simpleType>
 
7715
        <xs:simpleType name="cg_bool4x3">
 
7716
                <xs:restriction base="cg_ListOfBool">
 
7717
                        <xs:minLength value="12"/>
 
7718
                        <xs:maxLength value="12"/>
 
7719
                </xs:restriction>
 
7720
        </xs:simpleType>
 
7721
        <xs:simpleType name="cg_bool4x4">
 
7722
                <xs:restriction base="cg_ListOfBool">
 
7723
                        <xs:minLength value="16"/>
 
7724
                        <xs:maxLength value="16"/>
 
7725
                </xs:restriction>
 
7726
        </xs:simpleType>
 
7727
        <xs:simpleType name="cg_float2">
 
7728
                <xs:restriction base="cg_ListOfFloat">
 
7729
                        <xs:minLength value="2"/>
 
7730
                        <xs:maxLength value="2"/>
 
7731
                </xs:restriction>
 
7732
        </xs:simpleType>
 
7733
        <xs:simpleType name="cg_float3">
 
7734
                <xs:restriction base="cg_ListOfFloat">
 
7735
                        <xs:minLength value="3"/>
 
7736
                        <xs:maxLength value="3"/>
 
7737
                </xs:restriction>
 
7738
        </xs:simpleType>
 
7739
        <xs:simpleType name="cg_float4">
 
7740
                <xs:restriction base="cg_ListOfFloat">
 
7741
                        <xs:minLength value="4"/>
 
7742
                        <xs:maxLength value="4"/>
 
7743
                </xs:restriction>
 
7744
        </xs:simpleType>
 
7745
        <xs:simpleType name="cg_float1x1">
 
7746
                <xs:restriction base="cg_ListOfFloat">
 
7747
                        <xs:minLength value="1"/>
 
7748
                        <xs:maxLength value="1"/>
 
7749
                </xs:restriction>
 
7750
        </xs:simpleType>
 
7751
        <xs:simpleType name="cg_float1x2">
 
7752
                <xs:restriction base="cg_ListOfFloat">
 
7753
                        <xs:minLength value="2"/>
 
7754
                        <xs:maxLength value="2"/>
 
7755
                </xs:restriction>
 
7756
        </xs:simpleType>
 
7757
        <xs:simpleType name="cg_float1x3">
 
7758
                <xs:restriction base="cg_ListOfFloat">
 
7759
                        <xs:minLength value="3"/>
 
7760
                        <xs:maxLength value="3"/>
 
7761
                </xs:restriction>
 
7762
        </xs:simpleType>
 
7763
        <xs:simpleType name="cg_float1x4">
 
7764
                <xs:restriction base="cg_ListOfFloat">
 
7765
                        <xs:minLength value="4"/>
 
7766
                        <xs:maxLength value="4"/>
 
7767
                </xs:restriction>
 
7768
        </xs:simpleType>
 
7769
        <xs:simpleType name="cg_float2x1">
 
7770
                <xs:restriction base="cg_ListOfFloat">
 
7771
                        <xs:minLength value="2"/>
 
7772
                        <xs:maxLength value="2"/>
 
7773
                </xs:restriction>
 
7774
        </xs:simpleType>
 
7775
        <xs:simpleType name="cg_float2x2">
 
7776
                <xs:restriction base="cg_ListOfFloat">
 
7777
                        <xs:minLength value="4"/>
 
7778
                        <xs:maxLength value="4"/>
 
7779
                </xs:restriction>
 
7780
        </xs:simpleType>
 
7781
        <xs:simpleType name="cg_float2x3">
 
7782
                <xs:restriction base="cg_ListOfFloat">
 
7783
                        <xs:minLength value="6"/>
 
7784
                        <xs:maxLength value="6"/>
 
7785
                </xs:restriction>
 
7786
        </xs:simpleType>
 
7787
        <xs:simpleType name="cg_float2x4">
 
7788
                <xs:restriction base="cg_ListOfFloat">
 
7789
                        <xs:minLength value="8"/>
 
7790
                        <xs:maxLength value="8"/>
 
7791
                </xs:restriction>
 
7792
        </xs:simpleType>
 
7793
        <xs:simpleType name="cg_float3x1">
 
7794
                <xs:restriction base="cg_ListOfFloat">
 
7795
                        <xs:minLength value="3"/>
 
7796
                        <xs:maxLength value="3"/>
 
7797
                </xs:restriction>
 
7798
        </xs:simpleType>
 
7799
        <xs:simpleType name="cg_float3x2">
 
7800
                <xs:restriction base="cg_ListOfFloat">
 
7801
                        <xs:minLength value="6"/>
 
7802
                        <xs:maxLength value="6"/>
 
7803
                </xs:restriction>
 
7804
        </xs:simpleType>
 
7805
        <xs:simpleType name="cg_float3x3">
 
7806
                <xs:restriction base="cg_ListOfFloat">
 
7807
                        <xs:minLength value="9"/>
 
7808
                        <xs:maxLength value="9"/>
 
7809
                </xs:restriction>
 
7810
        </xs:simpleType>
 
7811
        <xs:simpleType name="cg_float3x4">
 
7812
                <xs:restriction base="cg_ListOfFloat">
 
7813
                        <xs:minLength value="12"/>
 
7814
                        <xs:maxLength value="12"/>
 
7815
                </xs:restriction>
 
7816
        </xs:simpleType>
 
7817
        <xs:simpleType name="cg_float4x1">
 
7818
                <xs:restriction base="cg_ListOfFloat">
 
7819
                        <xs:minLength value="4"/>
 
7820
                        <xs:maxLength value="4"/>
 
7821
                </xs:restriction>
 
7822
        </xs:simpleType>
 
7823
        <xs:simpleType name="cg_float4x2">
 
7824
                <xs:restriction base="cg_ListOfFloat">
 
7825
                        <xs:minLength value="8"/>
 
7826
                        <xs:maxLength value="8"/>
 
7827
                </xs:restriction>
 
7828
        </xs:simpleType>
 
7829
        <xs:simpleType name="cg_float4x3">
 
7830
                <xs:restriction base="cg_ListOfFloat">
 
7831
                        <xs:minLength value="12"/>
 
7832
                        <xs:maxLength value="12"/>
 
7833
                </xs:restriction>
 
7834
        </xs:simpleType>
 
7835
        <xs:simpleType name="cg_float4x4">
 
7836
                <xs:restriction base="cg_ListOfFloat">
 
7837
                        <xs:minLength value="16"/>
 
7838
                        <xs:maxLength value="16"/>
 
7839
                </xs:restriction>
 
7840
        </xs:simpleType>
 
7841
        <xs:simpleType name="cg_int2">
 
7842
                <xs:restriction base="cg_ListOfInt">
 
7843
                        <xs:minLength value="2"/>
 
7844
                        <xs:maxLength value="2"/>
 
7845
                </xs:restriction>
 
7846
        </xs:simpleType>
 
7847
        <xs:simpleType name="cg_int3">
 
7848
                <xs:restriction base="cg_ListOfInt">
 
7849
                        <xs:minLength value="3"/>
 
7850
                        <xs:maxLength value="3"/>
 
7851
                </xs:restriction>
 
7852
        </xs:simpleType>
 
7853
        <xs:simpleType name="cg_int4">
 
7854
                <xs:restriction base="cg_ListOfInt">
 
7855
                        <xs:minLength value="4"/>
 
7856
                        <xs:maxLength value="4"/>
 
7857
                </xs:restriction>
 
7858
        </xs:simpleType>
 
7859
        <xs:simpleType name="cg_int1x1">
 
7860
                <xs:restriction base="cg_ListOfInt">
 
7861
                        <xs:minLength value="1"/>
 
7862
                        <xs:maxLength value="1"/>
 
7863
                </xs:restriction>
 
7864
        </xs:simpleType>
 
7865
        <xs:simpleType name="cg_int1x2">
 
7866
                <xs:restriction base="cg_ListOfInt">
 
7867
                        <xs:minLength value="2"/>
 
7868
                        <xs:maxLength value="2"/>
 
7869
                </xs:restriction>
 
7870
        </xs:simpleType>
 
7871
        <xs:simpleType name="cg_int1x3">
 
7872
                <xs:restriction base="cg_ListOfInt">
 
7873
                        <xs:minLength value="3"/>
 
7874
                        <xs:maxLength value="3"/>
 
7875
                </xs:restriction>
 
7876
        </xs:simpleType>
 
7877
        <xs:simpleType name="cg_int1x4">
 
7878
                <xs:restriction base="cg_ListOfInt">
 
7879
                        <xs:minLength value="4"/>
 
7880
                        <xs:maxLength value="4"/>
 
7881
                </xs:restriction>
 
7882
        </xs:simpleType>
 
7883
        <xs:simpleType name="cg_int2x1">
 
7884
                <xs:restriction base="cg_ListOfInt">
 
7885
                        <xs:minLength value="2"/>
 
7886
                        <xs:maxLength value="2"/>
 
7887
                </xs:restriction>
 
7888
        </xs:simpleType>
 
7889
        <xs:simpleType name="cg_int2x2">
 
7890
                <xs:restriction base="cg_ListOfInt">
 
7891
                        <xs:minLength value="4"/>
 
7892
                        <xs:maxLength value="4"/>
 
7893
                </xs:restriction>
 
7894
        </xs:simpleType>
 
7895
        <xs:simpleType name="cg_int2x3">
 
7896
                <xs:restriction base="cg_ListOfInt">
 
7897
                        <xs:minLength value="6"/>
 
7898
                        <xs:maxLength value="6"/>
 
7899
                </xs:restriction>
 
7900
        </xs:simpleType>
 
7901
        <xs:simpleType name="cg_int2x4">
 
7902
                <xs:restriction base="cg_ListOfInt">
 
7903
                        <xs:minLength value="8"/>
 
7904
                        <xs:maxLength value="8"/>
 
7905
                </xs:restriction>
 
7906
        </xs:simpleType>
 
7907
        <xs:simpleType name="cg_int3x1">
 
7908
                <xs:restriction base="cg_ListOfInt">
 
7909
                        <xs:minLength value="3"/>
 
7910
                        <xs:maxLength value="3"/>
 
7911
                </xs:restriction>
 
7912
        </xs:simpleType>
 
7913
        <xs:simpleType name="cg_int3x2">
 
7914
                <xs:restriction base="cg_ListOfInt">
 
7915
                        <xs:minLength value="6"/>
 
7916
                        <xs:maxLength value="6"/>
 
7917
                </xs:restriction>
 
7918
        </xs:simpleType>
 
7919
        <xs:simpleType name="cg_int3x3">
 
7920
                <xs:restriction base="cg_ListOfInt">
 
7921
                        <xs:minLength value="9"/>
 
7922
                        <xs:maxLength value="9"/>
 
7923
                </xs:restriction>
 
7924
        </xs:simpleType>
 
7925
        <xs:simpleType name="cg_int3x4">
 
7926
                <xs:restriction base="cg_ListOfInt">
 
7927
                        <xs:minLength value="12"/>
 
7928
                        <xs:maxLength value="12"/>
 
7929
                </xs:restriction>
 
7930
        </xs:simpleType>
 
7931
        <xs:simpleType name="cg_int4x1">
 
7932
                <xs:restriction base="cg_ListOfInt">
 
7933
                        <xs:minLength value="4"/>
 
7934
                        <xs:maxLength value="4"/>
 
7935
                </xs:restriction>
 
7936
        </xs:simpleType>
 
7937
        <xs:simpleType name="cg_int4x2">
 
7938
                <xs:restriction base="cg_ListOfInt">
 
7939
                        <xs:minLength value="8"/>
 
7940
                        <xs:maxLength value="8"/>
 
7941
                </xs:restriction>
 
7942
        </xs:simpleType>
 
7943
        <xs:simpleType name="cg_int4x3">
 
7944
                <xs:restriction base="cg_ListOfInt">
 
7945
                        <xs:minLength value="12"/>
 
7946
                        <xs:maxLength value="12"/>
 
7947
                </xs:restriction>
 
7948
        </xs:simpleType>
 
7949
        <xs:simpleType name="cg_int4x4">
 
7950
                <xs:restriction base="cg_ListOfInt">
 
7951
                        <xs:minLength value="16"/>
 
7952
                        <xs:maxLength value="16"/>
 
7953
                </xs:restriction>
 
7954
        </xs:simpleType>
 
7955
        <xs:simpleType name="cg_half2">
 
7956
                <xs:restriction base="cg_ListOfHalf">
 
7957
                        <xs:minLength value="2"/>
 
7958
                        <xs:maxLength value="2"/>
 
7959
                </xs:restriction>
 
7960
        </xs:simpleType>
 
7961
        <xs:simpleType name="cg_half3">
 
7962
                <xs:restriction base="cg_ListOfHalf">
 
7963
                        <xs:minLength value="3"/>
 
7964
                        <xs:maxLength value="3"/>
 
7965
                </xs:restriction>
 
7966
        </xs:simpleType>
 
7967
        <xs:simpleType name="cg_half4">
 
7968
                <xs:restriction base="cg_ListOfHalf">
 
7969
                        <xs:minLength value="4"/>
 
7970
                        <xs:maxLength value="4"/>
 
7971
                </xs:restriction>
 
7972
        </xs:simpleType>
 
7973
        <xs:simpleType name="cg_half1x1">
 
7974
                <xs:restriction base="cg_ListOfHalf">
 
7975
                        <xs:minLength value="1"/>
 
7976
                        <xs:maxLength value="1"/>
 
7977
                </xs:restriction>
 
7978
        </xs:simpleType>
 
7979
        <xs:simpleType name="cg_half1x2">
 
7980
                <xs:restriction base="cg_ListOfHalf">
 
7981
                        <xs:minLength value="2"/>
 
7982
                        <xs:maxLength value="2"/>
 
7983
                </xs:restriction>
 
7984
        </xs:simpleType>
 
7985
        <xs:simpleType name="cg_half1x3">
 
7986
                <xs:restriction base="cg_ListOfHalf">
 
7987
                        <xs:minLength value="3"/>
 
7988
                        <xs:maxLength value="3"/>
 
7989
                </xs:restriction>
 
7990
        </xs:simpleType>
 
7991
        <xs:simpleType name="cg_half1x4">
 
7992
                <xs:restriction base="cg_ListOfHalf">
 
7993
                        <xs:minLength value="4"/>
 
7994
                        <xs:maxLength value="4"/>
 
7995
                </xs:restriction>
 
7996
        </xs:simpleType>
 
7997
        <xs:simpleType name="cg_half2x1">
 
7998
                <xs:restriction base="cg_ListOfHalf">
 
7999
                        <xs:minLength value="2"/>
 
8000
                        <xs:maxLength value="2"/>
 
8001
                </xs:restriction>
 
8002
        </xs:simpleType>
 
8003
        <xs:simpleType name="cg_half2x2">
 
8004
                <xs:restriction base="cg_ListOfHalf">
 
8005
                        <xs:minLength value="4"/>
 
8006
                        <xs:maxLength value="4"/>
 
8007
                </xs:restriction>
 
8008
        </xs:simpleType>
 
8009
        <xs:simpleType name="cg_half2x3">
 
8010
                <xs:restriction base="cg_ListOfHalf">
 
8011
                        <xs:minLength value="6"/>
 
8012
                        <xs:maxLength value="6"/>
 
8013
                </xs:restriction>
 
8014
        </xs:simpleType>
 
8015
        <xs:simpleType name="cg_half2x4">
 
8016
                <xs:restriction base="cg_ListOfHalf">
 
8017
                        <xs:minLength value="8"/>
 
8018
                        <xs:maxLength value="8"/>
 
8019
                </xs:restriction>
 
8020
        </xs:simpleType>
 
8021
        <xs:simpleType name="cg_half3x1">
 
8022
                <xs:restriction base="cg_ListOfHalf">
 
8023
                        <xs:minLength value="3"/>
 
8024
                        <xs:maxLength value="3"/>
 
8025
                </xs:restriction>
 
8026
        </xs:simpleType>
 
8027
        <xs:simpleType name="cg_half3x2">
 
8028
                <xs:restriction base="cg_ListOfHalf">
 
8029
                        <xs:minLength value="6"/>
 
8030
                        <xs:maxLength value="6"/>
 
8031
                </xs:restriction>
 
8032
        </xs:simpleType>
 
8033
        <xs:simpleType name="cg_half3x3">
 
8034
                <xs:restriction base="cg_ListOfHalf">
 
8035
                        <xs:minLength value="9"/>
 
8036
                        <xs:maxLength value="9"/>
 
8037
                </xs:restriction>
 
8038
        </xs:simpleType>
 
8039
        <xs:simpleType name="cg_half3x4">
 
8040
                <xs:restriction base="cg_ListOfHalf">
 
8041
                        <xs:minLength value="12"/>
 
8042
                        <xs:maxLength value="12"/>
 
8043
                </xs:restriction>
 
8044
        </xs:simpleType>
 
8045
        <xs:simpleType name="cg_half4x1">
 
8046
                <xs:restriction base="cg_ListOfHalf">
 
8047
                        <xs:minLength value="4"/>
 
8048
                        <xs:maxLength value="4"/>
 
8049
                </xs:restriction>
 
8050
        </xs:simpleType>
 
8051
        <xs:simpleType name="cg_half4x2">
 
8052
                <xs:restriction base="cg_ListOfHalf">
 
8053
                        <xs:minLength value="8"/>
 
8054
                        <xs:maxLength value="8"/>
 
8055
                </xs:restriction>
 
8056
        </xs:simpleType>
 
8057
        <xs:simpleType name="cg_half4x3">
 
8058
                <xs:restriction base="cg_ListOfHalf">
 
8059
                        <xs:minLength value="12"/>
 
8060
                        <xs:maxLength value="12"/>
 
8061
                </xs:restriction>
 
8062
        </xs:simpleType>
 
8063
        <xs:simpleType name="cg_half4x4">
 
8064
                <xs:restriction base="cg_ListOfHalf">
 
8065
                        <xs:minLength value="16"/>
 
8066
                        <xs:maxLength value="16"/>
 
8067
                </xs:restriction>
 
8068
        </xs:simpleType>
 
8069
        <xs:simpleType name="cg_fixed2">
 
8070
                <xs:restriction base="cg_ListOfFixed">
 
8071
                        <xs:minLength value="2"/>
 
8072
                        <xs:maxLength value="2"/>
 
8073
                </xs:restriction>
 
8074
        </xs:simpleType>
 
8075
        <xs:simpleType name="cg_fixed3">
 
8076
                <xs:restriction base="cg_ListOfFixed">
 
8077
                        <xs:minLength value="3"/>
 
8078
                        <xs:maxLength value="3"/>
 
8079
                </xs:restriction>
 
8080
        </xs:simpleType>
 
8081
        <xs:simpleType name="cg_fixed4">
 
8082
                <xs:restriction base="cg_ListOfFixed">
 
8083
                        <xs:minLength value="4"/>
 
8084
                        <xs:maxLength value="4"/>
 
8085
                </xs:restriction>
 
8086
        </xs:simpleType>
 
8087
        <xs:simpleType name="cg_fixed1x1">
 
8088
                <xs:restriction base="cg_ListOfFixed">
 
8089
                        <xs:minLength value="1"/>
 
8090
                        <xs:maxLength value="1"/>
 
8091
                </xs:restriction>
 
8092
        </xs:simpleType>
 
8093
        <xs:simpleType name="cg_fixed1x2">
 
8094
                <xs:restriction base="cg_ListOfFixed">
 
8095
                        <xs:minLength value="2"/>
 
8096
                        <xs:maxLength value="2"/>
 
8097
                </xs:restriction>
 
8098
        </xs:simpleType>
 
8099
        <xs:simpleType name="cg_fixed1x3">
 
8100
                <xs:restriction base="cg_ListOfFixed">
 
8101
                        <xs:minLength value="3"/>
 
8102
                        <xs:maxLength value="3"/>
 
8103
                </xs:restriction>
 
8104
        </xs:simpleType>
 
8105
        <xs:simpleType name="cg_fixed1x4">
 
8106
                <xs:restriction base="cg_ListOfFixed">
 
8107
                        <xs:minLength value="4"/>
 
8108
                        <xs:maxLength value="4"/>
 
8109
                </xs:restriction>
 
8110
        </xs:simpleType>
 
8111
        <xs:simpleType name="cg_fixed2x1">
 
8112
                <xs:restriction base="cg_ListOfFixed">
 
8113
                        <xs:minLength value="2"/>
 
8114
                        <xs:maxLength value="2"/>
 
8115
                </xs:restriction>
 
8116
        </xs:simpleType>
 
8117
        <xs:simpleType name="cg_fixed2x2">
 
8118
                <xs:restriction base="cg_ListOfFixed">
 
8119
                        <xs:minLength value="4"/>
 
8120
                        <xs:maxLength value="4"/>
 
8121
                </xs:restriction>
 
8122
        </xs:simpleType>
 
8123
        <xs:simpleType name="cg_fixed2x3">
 
8124
                <xs:restriction base="cg_ListOfFixed">
 
8125
                        <xs:minLength value="6"/>
 
8126
                        <xs:maxLength value="6"/>
 
8127
                </xs:restriction>
 
8128
        </xs:simpleType>
 
8129
        <xs:simpleType name="cg_fixed2x4">
 
8130
                <xs:restriction base="cg_ListOfFixed">
 
8131
                        <xs:minLength value="8"/>
 
8132
                        <xs:maxLength value="8"/>
 
8133
                </xs:restriction>
 
8134
        </xs:simpleType>
 
8135
        <xs:simpleType name="cg_fixed3x1">
 
8136
                <xs:restriction base="cg_ListOfFixed">
 
8137
                        <xs:minLength value="3"/>
 
8138
                        <xs:maxLength value="3"/>
 
8139
                </xs:restriction>
 
8140
        </xs:simpleType>
 
8141
        <xs:simpleType name="cg_fixed3x2">
 
8142
                <xs:restriction base="cg_ListOfFixed">
 
8143
                        <xs:minLength value="6"/>
 
8144
                        <xs:maxLength value="6"/>
 
8145
                </xs:restriction>
 
8146
        </xs:simpleType>
 
8147
        <xs:simpleType name="cg_fixed3x3">
 
8148
                <xs:restriction base="cg_ListOfFixed">
 
8149
                        <xs:minLength value="9"/>
 
8150
                        <xs:maxLength value="9"/>
 
8151
                </xs:restriction>
 
8152
        </xs:simpleType>
 
8153
        <xs:simpleType name="cg_fixed3x4">
 
8154
                <xs:restriction base="cg_ListOfFixed">
 
8155
                        <xs:minLength value="12"/>
 
8156
                        <xs:maxLength value="12"/>
 
8157
                </xs:restriction>
 
8158
        </xs:simpleType>
 
8159
        <xs:simpleType name="cg_fixed4x1">
 
8160
                <xs:restriction base="cg_ListOfFixed">
 
8161
                        <xs:minLength value="4"/>
 
8162
                        <xs:maxLength value="4"/>
 
8163
                </xs:restriction>
 
8164
        </xs:simpleType>
 
8165
        <xs:simpleType name="cg_fixed4x2">
 
8166
                <xs:restriction base="cg_ListOfFixed">
 
8167
                        <xs:minLength value="8"/>
 
8168
                        <xs:maxLength value="8"/>
 
8169
                </xs:restriction>
 
8170
        </xs:simpleType>
 
8171
        <xs:simpleType name="cg_fixed4x3">
 
8172
                <xs:restriction base="cg_ListOfFixed">
 
8173
                        <xs:minLength value="12"/>
 
8174
                        <xs:maxLength value="12"/>
 
8175
                </xs:restriction>
 
8176
        </xs:simpleType>
 
8177
        <xs:simpleType name="cg_fixed4x4">
 
8178
                <xs:restriction base="cg_ListOfFixed">
 
8179
                        <xs:minLength value="16"/>
 
8180
                        <xs:maxLength value="16"/>
 
8181
                </xs:restriction>
 
8182
        </xs:simpleType>
 
8183
        <xs:complexType name="cg_sampler1D">
 
8184
                <xs:complexContent>
 
8185
                        <xs:extension base="fx_sampler1D_common"/>
 
8186
                </xs:complexContent>
 
8187
        </xs:complexType>
 
8188
        <xs:complexType name="cg_sampler2D">
 
8189
                <xs:complexContent>
 
8190
                        <xs:extension base="fx_sampler2D_common"/>
 
8191
                </xs:complexContent>
 
8192
        </xs:complexType>
 
8193
        <xs:complexType name="cg_sampler3D">
 
8194
                <xs:complexContent>
 
8195
                        <xs:extension base="fx_sampler3D_common"/>
 
8196
                </xs:complexContent>
 
8197
        </xs:complexType>
 
8198
        <xs:complexType name="cg_samplerCUBE">
 
8199
                <xs:complexContent>
 
8200
                        <xs:extension base="fx_samplerCUBE_common"/>
 
8201
                </xs:complexContent>
 
8202
        </xs:complexType>
 
8203
        <xs:complexType name="cg_samplerRECT">
 
8204
                <xs:complexContent>
 
8205
                        <xs:extension base="fx_samplerRECT_common"/>
 
8206
                </xs:complexContent>
 
8207
        </xs:complexType>
 
8208
        <xs:complexType name="cg_samplerDEPTH">
 
8209
                <xs:complexContent>
 
8210
                        <xs:extension base="fx_samplerDEPTH_common"/>
 
8211
                </xs:complexContent>
 
8212
        </xs:complexType>
 
8213
        <xs:simpleType name="cg_pipeline_stage">
 
8214
                <xs:restriction base="xs:string">
 
8215
                        <xs:enumeration value="VERTEX"/>
 
8216
                        <xs:enumeration value="FRAGMENT"/>
 
8217
                </xs:restriction>
 
8218
        </xs:simpleType>
 
8219
        <xs:simpleType name="cg_identifier">
 
8220
                <xs:restriction base="xs:token"/>
 
8221
                <!-- type used to represent identifiers in Cg, e.g. "myLight.bitmap[2].width" -->
 
8222
        </xs:simpleType>
 
8223
        <xs:complexType name="cg_connect_param">
 
8224
                <xs:annotation>
 
8225
                        <xs:documentation>
 
8226
                        Creates a symbolic connection between two previously defined parameters.
 
8227
                        </xs:documentation>
 
8228
                </xs:annotation>
 
8229
                <xs:attribute name="ref" type="cg_identifier" use="required"/>
 
8230
        </xs:complexType>
 
8231
        <xs:complexType name="cg_newarray_type">
 
8232
                <xs:annotation>
 
8233
                        <xs:documentation>
 
8234
                        Creates a parameter of a one-dimensional array type.
 
8235
                        </xs:documentation>
 
8236
                </xs:annotation>
 
8237
                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
8238
                        <xs:group ref="cg_param_type"/>
 
8239
                        <xs:element name="array" type="cg_newarray_type">
 
8240
                                <xs:annotation>
 
8241
                                        <xs:documentation>
 
8242
                                        Nested array elements allow you to create multidemensional arrays.
 
8243
                                        </xs:documentation>
 
8244
                                </xs:annotation>
 
8245
                        </xs:element>
 
8246
                        <xs:element name="usertype" type="cg_setuser_type">
 
8247
                                <xs:annotation>
 
8248
                                        <xs:documentation>
 
8249
                                        The usertype element allows you to create arrays of usertypes.
 
8250
                                        </xs:documentation>
 
8251
                                </xs:annotation>
 
8252
                        </xs:element>
 
8253
                        <xs:element name="connect_param" type="cg_connect_param"/>
 
8254
                </xs:choice>
 
8255
                <xs:attribute name="length" type="xs:positiveInteger" use="required">
 
8256
                        <xs:annotation>
 
8257
                                <xs:documentation>
 
8258
                                The length attribute specifies the length of the array.
 
8259
                                </xs:documentation>
 
8260
                        </xs:annotation>
 
8261
                </xs:attribute>
 
8262
        </xs:complexType>
 
8263
        <xs:complexType name="cg_setarray_type">
 
8264
                <xs:annotation>
 
8265
                        <xs:documentation>
 
8266
                        Creates a parameter of a one-dimensional array type.
 
8267
                        </xs:documentation>
 
8268
                </xs:annotation>
 
8269
                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
8270
                        <xs:group ref="cg_param_type"/>
 
8271
                        <xs:element name="array" type="cg_setarray_type">
 
8272
                                <xs:annotation>
 
8273
                                        <xs:documentation>
 
8274
                                        Nested array elements allow you to create multidemensional arrays.
 
8275
                                        </xs:documentation>
 
8276
                                </xs:annotation>
 
8277
                        </xs:element>
 
8278
                        <xs:element name="usertype" type="cg_setuser_type">
 
8279
                                <xs:annotation>
 
8280
                                        <xs:documentation>
 
8281
                                        The usertype element allows you to create arrays of usertypes.
 
8282
                                        </xs:documentation>
 
8283
                                </xs:annotation>
 
8284
                        </xs:element>
 
8285
                </xs:choice>
 
8286
                <xs:attribute name="length" type="xs:positiveInteger" use="optional">
 
8287
                        <xs:annotation>
 
8288
                                <xs:documentation>
 
8289
                                The length attribute specifies the length of the array.
 
8290
                                </xs:documentation>
 
8291
                        </xs:annotation>
 
8292
                </xs:attribute>
 
8293
        </xs:complexType>
 
8294
        <xs:complexType name="cg_setuser_type">
 
8295
                <xs:annotation>
 
8296
                        <xs:documentation>
 
8297
                        Creates an instance of a structured class.
 
8298
                        </xs:documentation>
 
8299
                </xs:annotation>
 
8300
                <xs:choice minOccurs="0">
 
8301
                        <xs:annotation>
 
8302
                                <xs:documentation>Some usertypes do not have data.  They may be used only to implement interface functions.</xs:documentation>
 
8303
                        </xs:annotation>
 
8304
                        <xs:choice maxOccurs="unbounded">
 
8305
                                <xs:annotation>
 
8306
                                        <xs:documentation>Use a combination of these to initialize the usertype in an order-dependent manner.</xs:documentation>
 
8307
                                </xs:annotation>
 
8308
                                <xs:group ref="cg_param_type"/>
 
8309
                                <xs:element name="array" type="cg_setarray_type"/>
 
8310
                                <xs:element name="usertype" type="cg_setuser_type"/>
 
8311
                                <xs:element name="connect_param" type="cg_connect_param"/>
 
8312
                        </xs:choice>
 
8313
                        <xs:element name="setparam" type="cg_setparam" maxOccurs="unbounded">
 
8314
                                <xs:annotation>
 
8315
                                        <xs:documentation>Use a series of these to set the members by name.  The ref attribute will be relative to the usertype you are in right now.</xs:documentation>
 
8316
                                </xs:annotation>
 
8317
                        </xs:element>
 
8318
                </xs:choice>
 
8319
                <xs:attribute name="name" type="cg_identifier" use="required"/>
 
8320
                <xs:attribute name="source" type="xs:NCName" use="required">
 
8321
                        <xs:annotation>
 
8322
                                <xs:documentation>
 
8323
                                        Reference a code or include element which defines the usertype
 
8324
                                </xs:documentation>
 
8325
                        </xs:annotation>
 
8326
                </xs:attribute>
 
8327
        </xs:complexType>
 
8328
        <xs:complexType name="cg_surface_type">
 
8329
                <xs:annotation>
 
8330
                        <xs:documentation>
 
8331
                        Declares a resource that can be used both as the source for texture samples and as the target of a rendering pass.
 
8332
                        </xs:documentation>
 
8333
                </xs:annotation>
 
8334
                <xs:complexContent>
 
8335
                        <xs:extension base="fx_surface_common">
 
8336
                                <xs:sequence>
 
8337
                                        <xs:element name="generator" minOccurs="0">
 
8338
                                                <xs:annotation>
 
8339
                                                        <xs:documentation>
 
8340
                                                        A procedural surface generator for the cg profile.
 
8341
                                                        </xs:documentation>
 
8342
                                                </xs:annotation>
 
8343
                                                <xs:complexType>
 
8344
                                                        <xs:sequence>
 
8345
                                                                <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
 
8346
                                                                        <xs:annotation>
 
8347
                                                                                <xs:documentation>
 
8348
                                                                                The annotate element allows you to specify an annotation for this generator.
 
8349
                                                                                </xs:documentation>
 
8350
                                                                        </xs:annotation>
 
8351
                                                                </xs:element>
 
8352
                                                                <xs:choice maxOccurs="unbounded">
 
8353
                                                                        <xs:element name="code" type="fx_code_profile">
 
8354
                                                                                <xs:annotation>
 
8355
                                                                                        <xs:documentation>
 
8356
                                                                                        The code element allows you to embed cg sourcecode for the surface generator.
 
8357
                                                                                        </xs:documentation>
 
8358
                                                                                </xs:annotation>
 
8359
                                                                        </xs:element>
 
8360
                                                                        <xs:element name="include" type="fx_include_common">
 
8361
                                                                                <xs:annotation>
 
8362
                                                                                        <xs:documentation>
 
8363
                                                                                        The include element imports cg source code or precompiled binary shaders into the FX Runtime by referencing an external resource.
 
8364
                                                                                        </xs:documentation>
 
8365
                                                                                </xs:annotation>
 
8366
                                                                        </xs:element>
 
8367
                                                                </xs:choice>
 
8368
                                                                <xs:element name="name">
 
8369
                                                                        <xs:annotation>
 
8370
                                                                                <xs:documentation>
 
8371
                                                                                The entry symbol for the shader function.
 
8372
                                                                                </xs:documentation>
 
8373
                                                                        </xs:annotation>
 
8374
                                                                        <xs:complexType>
 
8375
                                                                                <xs:simpleContent>
 
8376
                                                                                        <xs:extension base="xs:NCName">
 
8377
                                                                                                <xs:attribute name="source" type="xs:NCName" use="optional"/>
 
8378
                                                                                        </xs:extension>
 
8379
                                                                                </xs:simpleContent>
 
8380
                                                                        </xs:complexType>
 
8381
                                                                </xs:element>
 
8382
                                                                <xs:element name="setparam" type="cg_setparam_simple" minOccurs="0" maxOccurs="unbounded">
 
8383
                                                                        <xs:annotation>
 
8384
                                                                                <xs:documentation>
 
8385
                                                                                        Assigns a new value to a previously defined parameter.
 
8386
                                                                                </xs:documentation>
 
8387
                                                                        </xs:annotation>
 
8388
                                                                </xs:element>
 
8389
                                                        </xs:sequence>
 
8390
                                                </xs:complexType>
 
8391
                                        </xs:element>
 
8392
                                </xs:sequence>
 
8393
                        </xs:extension>
 
8394
                </xs:complexContent>
 
8395
        </xs:complexType>
 
8396
        <xs:group name="cg_param_type">
 
8397
                <xs:annotation>
 
8398
                        <xs:documentation>
 
8399
                        A group that specifies the allowable types for CG profile parameters.
 
8400
                        </xs:documentation>
 
8401
                </xs:annotation>
 
8402
                <xs:choice>
 
8403
                        <xs:element name="bool" type="cg_bool"/>
 
8404
                        <xs:element name="bool1" type="cg_bool1"/>
 
8405
                        <xs:element name="bool2" type="cg_bool2"/>
 
8406
                        <xs:element name="bool3" type="cg_bool3"/>
 
8407
                        <xs:element name="bool4" type="cg_bool4"/>
 
8408
                        <xs:element name="bool1x1" type="cg_bool1x1"/>
 
8409
                        <xs:element name="bool1x2" type="cg_bool1x2"/>
 
8410
                        <xs:element name="bool1x3" type="cg_bool1x3"/>
 
8411
                        <xs:element name="bool1x4" type="cg_bool1x4"/>
 
8412
                        <xs:element name="bool2x1" type="cg_bool2x1"/>
 
8413
                        <xs:element name="bool2x2" type="cg_bool2x2"/>
 
8414
                        <xs:element name="bool2x3" type="cg_bool2x3"/>
 
8415
                        <xs:element name="bool2x4" type="cg_bool2x4"/>
 
8416
                        <xs:element name="bool3x1" type="cg_bool3x1"/>
 
8417
                        <xs:element name="bool3x2" type="cg_bool3x2"/>
 
8418
                        <xs:element name="bool3x3" type="cg_bool3x3"/>
 
8419
                        <xs:element name="bool3x4" type="cg_bool3x4"/>
 
8420
                        <xs:element name="bool4x1" type="cg_bool4x1"/>
 
8421
                        <xs:element name="bool4x2" type="cg_bool4x2"/>
 
8422
                        <xs:element name="bool4x3" type="cg_bool4x3"/>
 
8423
                        <xs:element name="bool4x4" type="cg_bool4x4"/>
 
8424
                        <xs:element name="float" type="cg_float"/>
 
8425
                        <xs:element name="float1" type="cg_float1"/>
 
8426
                        <xs:element name="float2" type="cg_float2"/>
 
8427
                        <xs:element name="float3" type="cg_float3"/>
 
8428
                        <xs:element name="float4" type="cg_float4"/>
 
8429
                        <xs:element name="float1x1" type="cg_float1x1"/>
 
8430
                        <xs:element name="float1x2" type="cg_float1x2"/>
 
8431
                        <xs:element name="float1x3" type="cg_float1x3"/>
 
8432
                        <xs:element name="float1x4" type="cg_float1x4"/>
 
8433
                        <xs:element name="float2x1" type="cg_float2x1"/>
 
8434
                        <xs:element name="float2x2" type="cg_float2x2"/>
 
8435
                        <xs:element name="float2x3" type="cg_float2x3"/>
 
8436
                        <xs:element name="float2x4" type="cg_float2x4"/>
 
8437
                        <xs:element name="float3x1" type="cg_float3x1"/>
 
8438
                        <xs:element name="float3x2" type="cg_float3x2"/>
 
8439
                        <xs:element name="float3x3" type="cg_float3x3"/>
 
8440
                        <xs:element name="float3x4" type="cg_float3x4"/>
 
8441
                        <xs:element name="float4x1" type="cg_float4x1"/>
 
8442
                        <xs:element name="float4x2" type="cg_float4x2"/>
 
8443
                        <xs:element name="float4x3" type="cg_float4x3"/>
 
8444
                        <xs:element name="float4x4" type="cg_float4x4"/>
 
8445
                        <xs:element name="int" type="cg_int"/>
 
8446
                        <xs:element name="int1" type="cg_int1"/>
 
8447
                        <xs:element name="int2" type="cg_int2"/>
 
8448
                        <xs:element name="int3" type="cg_int3"/>
 
8449
                        <xs:element name="int4" type="cg_int4"/>
 
8450
                        <xs:element name="int1x1" type="cg_int1x1"/>
 
8451
                        <xs:element name="int1x2" type="cg_int1x2"/>
 
8452
                        <xs:element name="int1x3" type="cg_int1x3"/>
 
8453
                        <xs:element name="int1x4" type="cg_int1x4"/>
 
8454
                        <xs:element name="int2x1" type="cg_int2x1"/>
 
8455
                        <xs:element name="int2x2" type="cg_int2x2"/>
 
8456
                        <xs:element name="int2x3" type="cg_int2x3"/>
 
8457
                        <xs:element name="int2x4" type="cg_int2x4"/>
 
8458
                        <xs:element name="int3x1" type="cg_int3x1"/>
 
8459
                        <xs:element name="int3x2" type="cg_int3x2"/>
 
8460
                        <xs:element name="int3x3" type="cg_int3x3"/>
 
8461
                        <xs:element name="int3x4" type="cg_int3x4"/>
 
8462
                        <xs:element name="int4x1" type="cg_int4x1"/>
 
8463
                        <xs:element name="int4x2" type="cg_int4x2"/>
 
8464
                        <xs:element name="int4x3" type="cg_int4x3"/>
 
8465
                        <xs:element name="int4x4" type="cg_int4x4"/>
 
8466
                        <xs:element name="half" type="cg_half"/>
 
8467
                        <xs:element name="half1" type="cg_half1"/>
 
8468
                        <xs:element name="half2" type="cg_half2"/>
 
8469
                        <xs:element name="half3" type="cg_half3"/>
 
8470
                        <xs:element name="half4" type="cg_half4"/>
 
8471
                        <xs:element name="half1x1" type="cg_half1x1"/>
 
8472
                        <xs:element name="half1x2" type="cg_half1x2"/>
 
8473
                        <xs:element name="half1x3" type="cg_half1x3"/>
 
8474
                        <xs:element name="half1x4" type="cg_half1x4"/>
 
8475
                        <xs:element name="half2x1" type="cg_half2x1"/>
 
8476
                        <xs:element name="half2x2" type="cg_half2x2"/>
 
8477
                        <xs:element name="half2x3" type="cg_half2x3"/>
 
8478
                        <xs:element name="half2x4" type="cg_half2x4"/>
 
8479
                        <xs:element name="half3x1" type="cg_half3x1"/>
 
8480
                        <xs:element name="half3x2" type="cg_half3x2"/>
 
8481
                        <xs:element name="half3x3" type="cg_half3x3"/>
 
8482
                        <xs:element name="half3x4" type="cg_half3x4"/>
 
8483
                        <xs:element name="half4x1" type="cg_half4x1"/>
 
8484
                        <xs:element name="half4x2" type="cg_half4x2"/>
 
8485
                        <xs:element name="half4x3" type="cg_half4x3"/>
 
8486
                        <xs:element name="half4x4" type="cg_half4x4"/>
 
8487
                        <xs:element name="fixed" type="cg_fixed"/>
 
8488
                        <xs:element name="fixed1" type="cg_fixed1"/>
 
8489
                        <xs:element name="fixed2" type="cg_fixed2"/>
 
8490
                        <xs:element name="fixed3" type="cg_fixed3"/>
 
8491
                        <xs:element name="fixed4" type="cg_fixed4"/>
 
8492
                        <xs:element name="fixed1x1" type="cg_fixed1x1"/>
 
8493
                        <xs:element name="fixed1x2" type="cg_fixed1x2"/>
 
8494
                        <xs:element name="fixed1x3" type="cg_fixed1x3"/>
 
8495
                        <xs:element name="fixed1x4" type="cg_fixed1x4"/>
 
8496
                        <xs:element name="fixed2x1" type="cg_fixed2x1"/>
 
8497
                        <xs:element name="fixed2x2" type="cg_fixed2x2"/>
 
8498
                        <xs:element name="fixed2x3" type="cg_fixed2x3"/>
 
8499
                        <xs:element name="fixed2x4" type="cg_fixed2x4"/>
 
8500
                        <xs:element name="fixed3x1" type="cg_fixed3x1"/>
 
8501
                        <xs:element name="fixed3x2" type="cg_fixed3x2"/>
 
8502
                        <xs:element name="fixed3x3" type="cg_fixed3x3"/>
 
8503
                        <xs:element name="fixed3x4" type="cg_fixed3x4"/>
 
8504
                        <xs:element name="fixed4x1" type="cg_fixed4x1"/>
 
8505
                        <xs:element name="fixed4x2" type="cg_fixed4x2"/>
 
8506
                        <xs:element name="fixed4x3" type="cg_fixed4x3"/>
 
8507
                        <xs:element name="fixed4x4" type="cg_fixed4x4"/>
 
8508
                        <xs:element name="surface" type="cg_surface_type"/>
 
8509
                        <xs:element name="sampler1D" type="cg_sampler1D"/>
 
8510
                        <xs:element name="sampler2D" type="cg_sampler2D"/>
 
8511
                        <xs:element name="sampler3D" type="cg_sampler3D"/>
 
8512
                        <xs:element name="samplerRECT" type="cg_samplerRECT"/>
 
8513
                        <xs:element name="samplerCUBE" type="cg_samplerCUBE"/>
 
8514
                        <xs:element name="samplerDEPTH" type="cg_samplerDEPTH"/>
 
8515
                        <xs:element name="string" type="xs:string"/>
 
8516
                        <xs:element name="enum" type="gl_enumeration"/>
 
8517
                </xs:choice>
 
8518
        </xs:group>
 
8519
        <xs:complexType name="cg_newparam">
 
8520
                <xs:annotation>
 
8521
                        <xs:documentation>
 
8522
                        Create a new, named param object in the CG Runtime, assign it a type, an initial value, and additional attributes at declaration time.
 
8523
                        </xs:documentation>
 
8524
                </xs:annotation>
 
8525
                <xs:sequence>
 
8526
                        <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
 
8527
                                <xs:annotation>
 
8528
                                        <xs:documentation>
 
8529
                                        The annotate element allows you to specify an annotation for this new param.
 
8530
                                        </xs:documentation>
 
8531
                                </xs:annotation>
 
8532
                        </xs:element>
 
8533
                        <xs:element name="semantic" type="xs:NCName" minOccurs="0">
 
8534
                                <xs:annotation>
 
8535
                                        <xs:documentation>
 
8536
                                        The semantic element allows you to specify a semantic for this new param.
 
8537
                                        </xs:documentation>
 
8538
                                </xs:annotation>
 
8539
                        </xs:element>
 
8540
                        <xs:element name="modifier" type="fx_modifier_enum_common" minOccurs="0">
 
8541
                                <xs:annotation>
 
8542
                                        <xs:documentation>
 
8543
                                        The modifier element allows you to specify a modifier for this new param.
 
8544
                                        </xs:documentation>
 
8545
                                </xs:annotation>
 
8546
                        </xs:element>
 
8547
                        <xs:choice>
 
8548
                                <xs:group ref="cg_param_type"/>
 
8549
                                <xs:element name="usertype" type="cg_setuser_type"/>
 
8550
                                <xs:element name="array" type="cg_newarray_type"/>
 
8551
                        </xs:choice>
 
8552
                </xs:sequence>
 
8553
                <xs:attribute name="sid" type="cg_identifier" use="required"/>
 
8554
        </xs:complexType>
 
8555
        <xs:complexType name="cg_setparam_simple">
 
8556
                <xs:sequence>
 
8557
                        <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
8558
                        <xs:group ref="cg_param_type"/>
 
8559
                </xs:sequence>
 
8560
                <xs:attribute name="ref" type="cg_identifier" use="required"/>
 
8561
        </xs:complexType>
 
8562
        <xs:complexType name="cg_setparam">
 
8563
                <xs:annotation>
 
8564
                        <xs:documentation>
 
8565
                        Assigns a new value to a previously defined parameter.
 
8566
                        </xs:documentation>
 
8567
                </xs:annotation>
 
8568
                <xs:choice>
 
8569
                        <xs:group ref="cg_param_type"/>
 
8570
                        <xs:element name="usertype" type="cg_setuser_type"/>
 
8571
                        <xs:element name="array" type="cg_setarray_type"/>
 
8572
                        <xs:element name="connect_param" type="cg_connect_param"/>
 
8573
                </xs:choice>
 
8574
                <xs:attribute name="ref" type="cg_identifier" use="required"/>
 
8575
                <xs:attribute name="program" type="xs:NCName"/>
 
8576
        </xs:complexType>
 
8577
        <xs:element name="profile_CG" substitutionGroup="fx_profile_abstract">
 
8578
                <xs:annotation>
 
8579
                        <xs:documentation>
 
8580
                        Opens a block of CG platform-specific data types and technique declarations.
 
8581
                        </xs:documentation>
 
8582
                </xs:annotation>
 
8583
                <xs:complexType>
 
8584
                        <xs:sequence>
 
8585
                                <xs:element ref="asset" minOccurs="0"/>
 
8586
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
8587
                                        <xs:element name="code" type="fx_code_profile"/>
 
8588
                                        <xs:element name="include" type="fx_include_common"/>
 
8589
                                </xs:choice>
 
8590
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
8591
                                        <xs:element ref="image"/>
 
8592
                                        <xs:element name="newparam" type="cg_newparam"/>
 
8593
                                </xs:choice>
 
8594
                                <xs:element name="technique" maxOccurs="unbounded">
 
8595
                                        <xs:annotation>
 
8596
                                                <xs:documentation>
 
8597
                                                Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method.
 
8598
                                                </xs:documentation>
 
8599
                                        </xs:annotation>
 
8600
                                        <xs:complexType>
 
8601
                                                <xs:sequence>
 
8602
                                                        <xs:element ref="asset" minOccurs="0">
 
8603
                                                                <xs:annotation>
 
8604
                                                                        <xs:documentation>
 
8605
                                                                        The technique element may contain an asset element.
 
8606
                                                                        </xs:documentation>
 
8607
                                                                </xs:annotation>
 
8608
                                                        </xs:element>
 
8609
                                                        <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
8610
                                                        <xs:choice minOccurs="0" maxOccurs="unbounded">
 
8611
                                                                <xs:element name="code" type="fx_code_profile"/>
 
8612
                                                                <xs:element name="include" type="fx_include_common"/>
 
8613
                                                        </xs:choice>
 
8614
                                                        <xs:choice minOccurs="0" maxOccurs="unbounded">
 
8615
                                                                <xs:element ref="image"/>
 
8616
                                                                <xs:element name="newparam" type="cg_newparam"/>
 
8617
                                                                <xs:element name="setparam" type="cg_setparam"/>
 
8618
                                                        </xs:choice>
 
8619
                                                        <xs:element name="pass" maxOccurs="unbounded">
 
8620
                                                                <xs:annotation>
 
8621
                                                                        <xs:documentation>
 
8622
                                                                        A static declaration of all the render states, shaders, and settings for one rendering pipeline.
 
8623
                                                                        </xs:documentation>
 
8624
                                                                </xs:annotation>
 
8625
                                                                <xs:complexType>
 
8626
                                                                        <xs:sequence>
 
8627
                                                                                <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
8628
                                                                                <xs:element name="color_target" type="fx_colortarget_common" minOccurs="0" maxOccurs="unbounded"/>
 
8629
                                                                                <xs:element name="depth_target" type="fx_depthtarget_common" minOccurs="0" maxOccurs="unbounded"/>
 
8630
                                                                                <xs:element name="stencil_target" type="fx_stenciltarget_common" minOccurs="0" maxOccurs="unbounded"/>
 
8631
                                                                                <xs:element name="color_clear" type="fx_clearcolor_common" minOccurs="0" maxOccurs="unbounded"/>
 
8632
                                                                                <xs:element name="depth_clear" type="fx_cleardepth_common" minOccurs="0" maxOccurs="unbounded"/>
 
8633
                                                                                <xs:element name="stencil_clear" type="fx_clearstencil_common" minOccurs="0" maxOccurs="unbounded"/>
 
8634
                                                                                <xs:element name="draw" type="fx_draw_common" minOccurs="0"/>
 
8635
                                                                                <xs:choice maxOccurs="unbounded">
 
8636
                                                                                        <xs:group ref="gl_pipeline_settings"/>
 
8637
                                                                                        <xs:element name="shader">
 
8638
                                                                                                <xs:annotation>
 
8639
                                                                                                        <xs:documentation>
 
8640
                                                                                                        Declare and prepare a shader for execution in the rendering pipeline of a pass.
 
8641
                                                                                                        </xs:documentation>
 
8642
                                                                                                </xs:annotation>
 
8643
                                                                                                <xs:complexType>
 
8644
                                                                                                        <xs:sequence>
 
8645
                                                                                                                <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
8646
                                                                                                                <xs:sequence minOccurs="0">
 
8647
                                                                                                                        <xs:element name="compiler_target">
 
8648
                                                                                                                                <xs:complexType>
 
8649
                                                                                                                                        <xs:simpleContent>
 
8650
                                                                                                                                                <xs:extension base="xs:NMTOKEN"/>
 
8651
                                                                                                                                        </xs:simpleContent>
 
8652
                                                                                                                                </xs:complexType>
 
8653
                                                                                                                        </xs:element>
 
8654
                                                                                                                        <xs:element name="compiler_options" type="xs:string" minOccurs="0">
 
8655
                                                                                                                                <xs:annotation>
 
8656
                                                                                                                                        <xs:documentation>
 
8657
                                                                                                                                        A string containing command-line operations for the shader compiler.
 
8658
                                                                                                                                        </xs:documentation>
 
8659
                                                                                                                                </xs:annotation>
 
8660
                                                                                                                        </xs:element>
 
8661
                                                                                                                </xs:sequence>
 
8662
                                                                                                                <xs:element name="name">
 
8663
                                                                                                                        <xs:annotation>
 
8664
                                                                                                                                <xs:documentation>
 
8665
                                                                                                                                The entry symbol for the shader function.
 
8666
                                                                                                                                </xs:documentation>
 
8667
                                                                                                                        </xs:annotation>
 
8668
                                                                                                                        <xs:complexType>
 
8669
                                                                                                                                <xs:simpleContent>
 
8670
                                                                                                                                        <xs:extension base="xs:NCName">
 
8671
                                                                                                                                                <xs:attribute name="source" type="xs:NCName" use="optional"/>
 
8672
                                                                                                                                        </xs:extension>
 
8673
                                                                                                                                </xs:simpleContent>
 
8674
                                                                                                                        </xs:complexType>
 
8675
                                                                                                                </xs:element>
 
8676
                                                                                                                <xs:element name="bind" minOccurs="0" maxOccurs="unbounded">
 
8677
                                                                                                                        <xs:annotation>
 
8678
                                                                                                                                <xs:documentation>
 
8679
                                                                                                                                Binds values to uniform inputs of a shader.
 
8680
                                                                                                                                </xs:documentation>
 
8681
                                                                                                                        </xs:annotation>
 
8682
                                                                                                                        <xs:complexType>
 
8683
                                                                                                                                <xs:choice>
 
8684
                                                                                                                                        <xs:group ref="cg_param_type"/>
 
8685
                                                                                                                                        <xs:element name="param">
 
8686
                                                                                                                                                <xs:annotation>
 
8687
                                                                                                                                                        <xs:documentation>
 
8688
                                                                                                                                                        References a predefined parameter in shader binding declarations.
 
8689
                                                                                                                                                        </xs:documentation>
 
8690
                                                                                                                                                </xs:annotation>
 
8691
                                                                                                                                                <xs:complexType>
 
8692
                                                                                                                                                        <xs:attribute name="ref" type="xs:NCName" use="required"/>
 
8693
                                                                                                                                                </xs:complexType>
 
8694
                                                                                                                                        </xs:element>
 
8695
                                                                                                                                </xs:choice>
 
8696
                                                                                                                                <xs:attribute name="symbol" type="xs:NCName" use="required">
 
8697
                                                                                                                                        <xs:annotation>
 
8698
                                                                                                                                                <xs:documentation>
 
8699
                                                                                                                                                The identifier for a uniform input parameter to the shader (a formal function parameter or in-scope 
 
8700
                                                                                                                                                global) that will be bound to an external resource.
 
8701
                                                                                                                                                </xs:documentation>
 
8702
                                                                                                                                        </xs:annotation>
 
8703
                                                                                                                                </xs:attribute>
 
8704
                                                                                                                        </xs:complexType>
 
8705
                                                                                                                </xs:element>
 
8706
                                                                                                        </xs:sequence>
 
8707
                                                                                                        <xs:attribute name="stage" type="cg_pipeline_stage">
 
8708
                                                                                                                <xs:annotation>
 
8709
                                                                                                                        <xs:documentation>
 
8710
                                                                                                                        In which pipeline stage this programmable shader is designed to execute, for example, VERTEX, FRAGMENT, etc.
 
8711
                                                                                                                        </xs:documentation>
 
8712
                                                                                                                </xs:annotation>
 
8713
                                                                                                        </xs:attribute>
 
8714
                                                                                                </xs:complexType>
 
8715
                                                                                        </xs:element>
 
8716
                                                                                </xs:choice>
 
8717
                                                                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
8718
                                                                        </xs:sequence>
 
8719
                                                                        <xs:attribute name="sid" type="xs:NCName" use="optional">
 
8720
                                                                                <xs:annotation>
 
8721
                                                                                        <xs:documentation>
 
8722
                                                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
8723
                                                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
8724
                                                                                        </xs:documentation>
 
8725
                                                                                </xs:annotation>
 
8726
                                                                        </xs:attribute>
 
8727
                                                                </xs:complexType>
 
8728
                                                        </xs:element>
 
8729
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
8730
                                                </xs:sequence>
 
8731
                                                <xs:attribute name="id" type="xs:ID">
 
8732
                                                        <xs:annotation>
 
8733
                                                                <xs:documentation>
 
8734
                                                                The id attribute is a text string containing the unique identifier of this element. 
 
8735
                                                                This value must be unique within the instance document. Optional attribute.
 
8736
                                                                </xs:documentation>
 
8737
                                                        </xs:annotation>
 
8738
                                                </xs:attribute>
 
8739
                                                <xs:attribute name="sid" type="xs:NCName" use="required">
 
8740
                                                        <xs:annotation>
 
8741
                                                                <xs:documentation>
 
8742
                                                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
8743
                                                                This value must be unique within the scope of the parent element. Optional attribute.
 
8744
                                                                </xs:documentation>
 
8745
                                                        </xs:annotation>
 
8746
                                                </xs:attribute>
 
8747
                                        </xs:complexType>
 
8748
                                </xs:element>
 
8749
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
8750
                        </xs:sequence>
 
8751
                        <xs:attribute name="id" type="xs:ID" use="optional">
 
8752
                                <xs:annotation>
 
8753
                                        <xs:documentation>
 
8754
                                        The id attribute is a text string containing the unique identifier of this element. 
 
8755
                                        This value must be unique within the instance document. Optional attribute.
 
8756
                                        </xs:documentation>
 
8757
                                </xs:annotation>
 
8758
                        </xs:attribute>
 
8759
                        <xs:attribute name="platform" type="xs:NCName" use="optional" default="PC">
 
8760
                                <xs:annotation>
 
8761
                                        <xs:documentation>
 
8762
                                        The type of platform. This is a vendor-defined character string that indicates the platform or capability target for the technique. Optional
 
8763
                                        </xs:documentation>
 
8764
                                </xs:annotation>
 
8765
                        </xs:attribute>
 
8766
                </xs:complexType>
 
8767
        </xs:element>
 
8768
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
8769
        <!-- COLLADA FX GLES elements                  -->
 
8770
        <!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
 
8771
        <!-- these maximum values are from the GL.h from Khronos. Not all of them are defined in the spec -->
 
8772
        <xs:simpleType name="GLES_MAX_LIGHTS_index">
 
8773
                <xs:restriction base="xs:nonNegativeInteger">
 
8774
                        <xs:minInclusive value="0"/>
 
8775
                        <xs:maxExclusive value="7"/>
 
8776
                </xs:restriction>
 
8777
        </xs:simpleType>
 
8778
        <xs:simpleType name="GLES_MAX_CLIP_PLANES_index">
 
8779
                <xs:restriction base="xs:nonNegativeInteger">
 
8780
                        <xs:minInclusive value="0"/>
 
8781
                        <xs:maxExclusive value="5"/>
 
8782
                </xs:restriction>
 
8783
        </xs:simpleType>
 
8784
        <xs:simpleType name="GLES_MAX_TEXTURE_COORDS_index">
 
8785
                <xs:restriction base="xs:nonNegativeInteger">
 
8786
                        <xs:minInclusive value="0"/>
 
8787
                        <xs:maxExclusive value="8"/>
 
8788
                </xs:restriction>
 
8789
        </xs:simpleType>
 
8790
        <xs:simpleType name="GLES_MAX_TEXTURE_IMAGE_UNITS_index">
 
8791
                <xs:restriction base="xs:nonNegativeInteger">
 
8792
                        <xs:minInclusive value="0"/>
 
8793
                        <xs:maxExclusive value="31"/>
 
8794
                </xs:restriction>
 
8795
        </xs:simpleType>
 
8796
        <xs:simpleType name="gles_texenv_mode_enums">
 
8797
                <xs:restriction base="xs:token">
 
8798
                        <xs:enumeration value="REPLACE">
 
8799
                                <xs:annotation>
 
8800
                                        <xs:appinfo>value=0x1E01</xs:appinfo>
 
8801
                                </xs:annotation>
 
8802
                        </xs:enumeration>
 
8803
                        <xs:enumeration value="MODULATE">
 
8804
                                <xs:annotation>
 
8805
                                        <xs:appinfo>value=0x2100</xs:appinfo>
 
8806
                                </xs:annotation>
 
8807
                        </xs:enumeration>
 
8808
                        <xs:enumeration value="DECAL">
 
8809
                                <xs:annotation>
 
8810
                                        <xs:appinfo>value=0x2101</xs:appinfo>
 
8811
                                </xs:annotation>
 
8812
                        </xs:enumeration>
 
8813
                        <xs:enumeration value="BLEND">
 
8814
                                <xs:annotation>
 
8815
                                        <xs:appinfo>value=0x0BE2</xs:appinfo>
 
8816
                                </xs:annotation>
 
8817
                        </xs:enumeration>
 
8818
                        <xs:enumeration value="ADD">
 
8819
                                <xs:annotation>
 
8820
                                        <xs:appinfo>value=0x0104</xs:appinfo>
 
8821
                                </xs:annotation>
 
8822
                        </xs:enumeration>
 
8823
                </xs:restriction>
 
8824
        </xs:simpleType>
 
8825
        <xs:complexType name="gles_texture_constant_type">
 
8826
                <xs:attribute name="value" type="float4" use="optional"/>
 
8827
                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
8828
        </xs:complexType>
 
8829
        <xs:complexType name="gles_texenv_command_type">
 
8830
                <xs:sequence>
 
8831
                        <xs:element name="constant" type="gles_texture_constant_type" minOccurs="0"/>
 
8832
                </xs:sequence>
 
8833
                <xs:attribute name="operator" type="gles_texenv_mode_enums"/>
 
8834
                <xs:attribute name="unit" type="xs:NCName"/>
 
8835
        </xs:complexType>
 
8836
        <xs:simpleType name="gles_texcombiner_operatorRGB_enums">
 
8837
                <xs:restriction base="xs:token">
 
8838
                        <xs:enumeration value="REPLACE">
 
8839
                                <xs:annotation>
 
8840
                                        <xs:appinfo>value=0x1E01</xs:appinfo>
 
8841
                                </xs:annotation>
 
8842
                        </xs:enumeration>
 
8843
                        <xs:enumeration value="MODULATE">
 
8844
                                <xs:annotation>
 
8845
                                        <xs:appinfo>value=0x2100</xs:appinfo>
 
8846
                                </xs:annotation>
 
8847
                        </xs:enumeration>
 
8848
                        <xs:enumeration value="ADD">
 
8849
                                <xs:annotation>
 
8850
                                        <xs:appinfo>value=0x0104</xs:appinfo>
 
8851
                                </xs:annotation>
 
8852
                        </xs:enumeration>
 
8853
                        <xs:enumeration value="ADD_SIGNED">
 
8854
                                <xs:annotation>
 
8855
                                        <xs:appinfo>value=0x8574</xs:appinfo>
 
8856
                                </xs:annotation>
 
8857
                        </xs:enumeration>
 
8858
                        <xs:enumeration value="INTERPOLATE">
 
8859
                                <xs:annotation>
 
8860
                                        <xs:appinfo>value=0x8575</xs:appinfo>
 
8861
                                </xs:annotation>
 
8862
                        </xs:enumeration>
 
8863
                        <xs:enumeration value="SUBTRACT">
 
8864
                                <xs:annotation>
 
8865
                                        <xs:appinfo>value=0x84E7</xs:appinfo>
 
8866
                                </xs:annotation>
 
8867
                        </xs:enumeration>
 
8868
                        <xs:enumeration value="DOT3_RGB">
 
8869
                                <xs:annotation>
 
8870
                                        <xs:appinfo>value=0x86AE</xs:appinfo>
 
8871
                                </xs:annotation>
 
8872
                        </xs:enumeration>
 
8873
                        <xs:enumeration value="DOT3_RGBA">
 
8874
                                <xs:annotation>
 
8875
                                        <xs:appinfo>value=0x86AF</xs:appinfo>
 
8876
                                </xs:annotation>
 
8877
                        </xs:enumeration>
 
8878
                </xs:restriction>
 
8879
        </xs:simpleType>
 
8880
        <xs:simpleType name="gles_texcombiner_operatorAlpha_enums">
 
8881
                <xs:restriction base="xs:token">
 
8882
                        <xs:enumeration value="REPLACE">
 
8883
                                <xs:annotation>
 
8884
                                        <xs:appinfo>value=0x1E01</xs:appinfo>
 
8885
                                </xs:annotation>
 
8886
                        </xs:enumeration>
 
8887
                        <xs:enumeration value="MODULATE">
 
8888
                                <xs:annotation>
 
8889
                                        <xs:appinfo>value=0x2100</xs:appinfo>
 
8890
                                </xs:annotation>
 
8891
                        </xs:enumeration>
 
8892
                        <xs:enumeration value="ADD">
 
8893
                                <xs:annotation>
 
8894
                                        <xs:appinfo>value=0x0104</xs:appinfo>
 
8895
                                </xs:annotation>
 
8896
                        </xs:enumeration>
 
8897
                        <xs:enumeration value="ADD_SIGNED">
 
8898
                                <xs:annotation>
 
8899
                                        <xs:appinfo>value=0x8574</xs:appinfo>
 
8900
                                </xs:annotation>
 
8901
                        </xs:enumeration>
 
8902
                        <xs:enumeration value="INTERPOLATE">
 
8903
                                <xs:annotation>
 
8904
                                        <xs:appinfo>value=0x8575</xs:appinfo>
 
8905
                                </xs:annotation>
 
8906
                        </xs:enumeration>
 
8907
                        <xs:enumeration value="SUBTRACT">
 
8908
                                <xs:annotation>
 
8909
                                        <xs:appinfo>value=0x84E7</xs:appinfo>
 
8910
                                </xs:annotation>
 
8911
                        </xs:enumeration>
 
8912
                </xs:restriction>
 
8913
        </xs:simpleType>
 
8914
        <xs:simpleType name="gles_texcombiner_source_enums">
 
8915
                <xs:restriction base="xs:token">
 
8916
                        <xs:enumeration value="TEXTURE">
 
8917
                                <xs:annotation>
 
8918
                                        <xs:appinfo>value=0x1702</xs:appinfo>
 
8919
                                </xs:annotation>
 
8920
                        </xs:enumeration>
 
8921
                        <xs:enumeration value="CONSTANT">
 
8922
                                <xs:annotation>
 
8923
                                        <xs:appinfo>value=0x8576</xs:appinfo>
 
8924
                                </xs:annotation>
 
8925
                        </xs:enumeration>
 
8926
                        <xs:enumeration value="PRIMARY">
 
8927
                                <xs:annotation>
 
8928
                                        <xs:appinfo>value=0x8577</xs:appinfo>
 
8929
                                </xs:annotation>
 
8930
                        </xs:enumeration>
 
8931
                        <xs:enumeration value="PREVIOUS">
 
8932
                                <xs:annotation>
 
8933
                                        <xs:appinfo>value=0x8578</xs:appinfo>
 
8934
                                </xs:annotation>
 
8935
                        </xs:enumeration>
 
8936
                </xs:restriction>
 
8937
        </xs:simpleType>
 
8938
        <xs:simpleType name="gles_texcombiner_operandRGB_enums">
 
8939
                <xs:restriction base="gl_blend_type">
 
8940
                        <xs:enumeration value="SRC_COLOR">
 
8941
                                <xs:annotation>
 
8942
                                        <xs:appinfo>value=0x0300</xs:appinfo>
 
8943
                                </xs:annotation>
 
8944
                        </xs:enumeration>
 
8945
                        <xs:enumeration value="ONE_MINUS_SRC_COLOR">
 
8946
                                <xs:annotation>
 
8947
                                        <xs:appinfo>value=0x0301</xs:appinfo>
 
8948
                                </xs:annotation>
 
8949
                        </xs:enumeration>
 
8950
                        <xs:enumeration value="SRC_ALPHA">
 
8951
                                <xs:annotation>
 
8952
                                        <xs:appinfo>value=0x0302</xs:appinfo>
 
8953
                                </xs:annotation>
 
8954
                        </xs:enumeration>
 
8955
                        <xs:enumeration value="ONE_MINUS_SRC_ALPHA">
 
8956
                                <xs:annotation>
 
8957
                                        <xs:appinfo>value=0x0303</xs:appinfo>
 
8958
                                </xs:annotation>
 
8959
                        </xs:enumeration>
 
8960
                </xs:restriction>
 
8961
        </xs:simpleType>
 
8962
        <xs:simpleType name="gles_texcombiner_operandAlpha_enums">
 
8963
                <xs:restriction base="gl_blend_type">
 
8964
                        <xs:enumeration value="SRC_ALPHA">
 
8965
                                <xs:annotation>
 
8966
                                        <xs:appinfo>value=0x0302</xs:appinfo>
 
8967
                                </xs:annotation>
 
8968
                        </xs:enumeration>
 
8969
                        <xs:enumeration value="ONE_MINUS_SRC_ALPHA">
 
8970
                                <xs:annotation>
 
8971
                                        <xs:appinfo>value=0x0303</xs:appinfo>
 
8972
                                </xs:annotation>
 
8973
                        </xs:enumeration>
 
8974
                </xs:restriction>
 
8975
        </xs:simpleType>
 
8976
        <xs:simpleType name="gles_texcombiner_argument_index_type">
 
8977
                <xs:restriction base="xs:nonNegativeInteger">
 
8978
                        <xs:minInclusive value="0"/>
 
8979
                        <xs:maxInclusive value="2"/>
 
8980
                </xs:restriction>
 
8981
        </xs:simpleType>
 
8982
        <xs:complexType name="gles_texcombiner_argumentRGB_type">
 
8983
                <xs:attribute name="source" type="gles_texcombiner_source_enums"/>
 
8984
                <xs:attribute name="operand" type="gles_texcombiner_operandRGB_enums" default="SRC_COLOR"/>
 
8985
                <xs:attribute name="unit" type="xs:NCName" use="optional"/>
 
8986
        </xs:complexType>
 
8987
        <xs:complexType name="gles_texcombiner_argumentAlpha_type">
 
8988
                <xs:attribute name="source" type="gles_texcombiner_source_enums"/>
 
8989
                <xs:attribute name="operand" type="gles_texcombiner_operandAlpha_enums" default="SRC_ALPHA"/>
 
8990
                <xs:attribute name="unit" type="xs:NCName" use="optional"/>
 
8991
        </xs:complexType>
 
8992
        <xs:complexType name="gles_texcombiner_commandRGB_type">
 
8993
                <xs:annotation>
 
8994
                        <xs:documentation>
 
8995
                        Defines the RGB portion of a texture_pipeline command. This is a combiner-mode texturing operation.
 
8996
                        </xs:documentation>
 
8997
                </xs:annotation>
 
8998
                <xs:sequence>
 
8999
                        <xs:element name="argument" type="gles_texcombiner_argumentRGB_type" maxOccurs="3"/>
 
9000
                </xs:sequence>
 
9001
                <xs:attribute name="operator" type="gles_texcombiner_operatorRGB_enums"/>
 
9002
                <xs:attribute name="scale" type="xs:float" use="optional"/>
 
9003
        </xs:complexType>
 
9004
        <xs:complexType name="gles_texcombiner_commandAlpha_type">
 
9005
                <xs:sequence>
 
9006
                        <xs:element name="argument" type="gles_texcombiner_argumentAlpha_type" maxOccurs="3"/>
 
9007
                </xs:sequence>
 
9008
                <xs:attribute name="operator" type="gles_texcombiner_operatorAlpha_enums"/>
 
9009
                <xs:attribute name="scale" type="xs:float" use="optional"/>
 
9010
        </xs:complexType>
 
9011
        <xs:complexType name="gles_texcombiner_command_type">
 
9012
                <xs:sequence>
 
9013
                        <xs:element name="constant" type="gles_texture_constant_type" minOccurs="0"/>
 
9014
                        <xs:element name="RGB" type="gles_texcombiner_commandRGB_type" minOccurs="0"/>
 
9015
                        <xs:element name="alpha" type="gles_texcombiner_commandAlpha_type" minOccurs="0"/>
 
9016
                </xs:sequence>
 
9017
        </xs:complexType>
 
9018
        <xs:complexType name="gles_texture_pipeline">
 
9019
                <xs:annotation>
 
9020
                        <xs:documentation>
 
9021
                        Defines a set of texturing commands that will be converted into multitexturing operations using glTexEnv in regular and combiner mode.
 
9022
                        </xs:documentation>
 
9023
                </xs:annotation>
 
9024
                <xs:choice maxOccurs="unbounded">
 
9025
                        <xs:element name="texcombiner" type="gles_texcombiner_command_type">
 
9026
                                <xs:annotation>
 
9027
                                        <xs:documentation>
 
9028
                                        Defines a texture_pipeline command. This is a combiner-mode texturing operation.
 
9029
                                        </xs:documentation>
 
9030
                                </xs:annotation>
 
9031
                        </xs:element>
 
9032
                        <xs:element name="texenv" type="gles_texenv_command_type">
 
9033
                                <xs:annotation>
 
9034
                                        <xs:documentation>
 
9035
                                        Defines a texture_pipeline command. It is a simple noncombiner mode of texturing operations.
 
9036
                                        </xs:documentation>
 
9037
                                </xs:annotation>
 
9038
                        </xs:element>
 
9039
                        <xs:element ref="extra">
 
9040
                                <xs:annotation>
 
9041
                                        <xs:documentation>
 
9042
                                        The extra element may appear any number of times.
 
9043
                                        OpenGL ES extensions may be used here.
 
9044
                                        </xs:documentation>
 
9045
                                </xs:annotation>
 
9046
                        </xs:element>
 
9047
                </xs:choice>
 
9048
                <xs:attribute name="sid" type="xs:NCName">
 
9049
                        <xs:annotation>
 
9050
                                <xs:documentation>
 
9051
                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
9052
                                This value must be unique within the scope of the parent element. Optional attribute.
 
9053
                                </xs:documentation>
 
9054
                        </xs:annotation>
 
9055
                </xs:attribute>
 
9056
        </xs:complexType>
 
9057
        <xs:complexType name="gles_texture_unit">
 
9058
                <xs:sequence>
 
9059
                        <xs:element name="surface" type="xs:NCName" minOccurs="0"/>
 
9060
                        <xs:element name="sampler_state" type="xs:NCName" minOccurs="0"/>
 
9061
                        <xs:element name="texcoord" minOccurs="0">
 
9062
                                <xs:complexType>
 
9063
                                        <xs:attribute name="semantic" type="xs:NCName"/>
 
9064
                                </xs:complexType>
 
9065
                        </xs:element>
 
9066
                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
9067
                </xs:sequence>
 
9068
                <xs:attribute name="sid" type="xs:NCName">
 
9069
                        <xs:annotation>
 
9070
                                <xs:documentation>
 
9071
                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
9072
                                This value must be unique within the scope of the parent element. Optional attribute.
 
9073
                                </xs:documentation>
 
9074
                        </xs:annotation>
 
9075
                </xs:attribute>
 
9076
        </xs:complexType>
 
9077
        <xs:simpleType name="gles_sampler_wrap">
 
9078
                <xs:restriction base="xs:NMTOKEN">
 
9079
                        <xs:enumeration value="REPEAT"/>
 
9080
                        <xs:enumeration value="CLAMP"/>
 
9081
                        <xs:enumeration value="CLAMP_TO_EDGE"/>
 
9082
                        <xs:enumeration value="MIRRORED_REPEAT">
 
9083
                                <xs:annotation>
 
9084
                                        <xs:documentation>
 
9085
                                        supported by GLES 1.1 only
 
9086
                                        </xs:documentation>
 
9087
                                </xs:annotation>
 
9088
                        </xs:enumeration>
 
9089
                </xs:restriction>
 
9090
        </xs:simpleType>
 
9091
        <xs:complexType name="gles_sampler_state">
 
9092
                <xs:annotation>
 
9093
                        <xs:documentation>
 
9094
                        Two-dimensional texture sampler state for profile_GLES. This is a bundle of sampler-specific states that will be referenced by one or more texture_units.
 
9095
                        </xs:documentation>
 
9096
                </xs:annotation>
 
9097
                <xs:sequence>
 
9098
                        <xs:element name="wrap_s" type="gles_sampler_wrap" default="REPEAT" minOccurs="0"/>
 
9099
                        <xs:element name="wrap_t" type="gles_sampler_wrap" default="REPEAT" minOccurs="0"/>
 
9100
                        <xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
9101
                        <xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
9102
                        <xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
 
9103
                        <xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="255" minOccurs="0"/>
 
9104
                        <!-- perhaps bias not really supported but can be kludged in the app somewhat-->
 
9105
                        <xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
 
9106
                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
9107
                                <xs:annotation>
 
9108
                                        <xs:documentation>
 
9109
                                        The extra element may appear any number of times.
 
9110
                                        OpenGL ES extensions may be used here.
 
9111
                                        </xs:documentation>
 
9112
                                </xs:annotation>
 
9113
                        </xs:element>
 
9114
                </xs:sequence>
 
9115
                <xs:attribute name="sid" type="xs:NCName">
 
9116
                        <xs:annotation>
 
9117
                                <xs:documentation>
 
9118
                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
9119
                                This value must be unique within the scope of the parent element. Optional attribute.
 
9120
                                </xs:documentation>
 
9121
                        </xs:annotation>
 
9122
                </xs:attribute>
 
9123
        </xs:complexType>
 
9124
        <xs:simpleType name="gles_stencil_op_type">
 
9125
                <xs:restriction base="xs:string">
 
9126
                        <xs:enumeration value="KEEP">
 
9127
                                <xs:annotation>
 
9128
                                        <xs:appinfo>value=0x1E00</xs:appinfo>
 
9129
                                </xs:annotation>
 
9130
                        </xs:enumeration>
 
9131
                        <xs:enumeration value="ZERO">
 
9132
                                <xs:annotation>
 
9133
                                        <xs:appinfo>value=0x0</xs:appinfo>
 
9134
                                </xs:annotation>
 
9135
                        </xs:enumeration>
 
9136
                        <xs:enumeration value="REPLACE">
 
9137
                                <xs:annotation>
 
9138
                                        <xs:appinfo>value=0x1E01</xs:appinfo>
 
9139
                                </xs:annotation>
 
9140
                        </xs:enumeration>
 
9141
                        <xs:enumeration value="INCR">
 
9142
                                <xs:annotation>
 
9143
                                        <xs:appinfo>value=0x1E02</xs:appinfo>
 
9144
                                </xs:annotation>
 
9145
                        </xs:enumeration>
 
9146
                        <xs:enumeration value="DECR">
 
9147
                                <xs:annotation>
 
9148
                                        <xs:appinfo>value=0x1E03</xs:appinfo>
 
9149
                                </xs:annotation>
 
9150
                        </xs:enumeration>
 
9151
                        <xs:enumeration value="INVERT">
 
9152
                                <xs:annotation>
 
9153
                                        <xs:appinfo>value=0x150A</xs:appinfo>
 
9154
                                </xs:annotation>
 
9155
                        </xs:enumeration>
 
9156
                </xs:restriction>
 
9157
        </xs:simpleType>
 
9158
        <xs:simpleType name="gles_enumeration">
 
9159
                <xs:union memberTypes="gl_blend_type gl_face_type gl_func_type gl_stencil_op_type gl_material_type gl_fog_type gl_front_face_type gl_light_model_color_control_type gl_logic_op_type gl_polygon_mode_type gl_shade_model_type"/>
 
9160
        </xs:simpleType>
 
9161
        <xs:group name="gles_pipeline_settings">
 
9162
                <xs:annotation>
 
9163
                        <xs:documentation>
 
9164
                        A group that contains the renderstates available for the GLES profile.
 
9165
                        </xs:documentation>
 
9166
                </xs:annotation>
 
9167
                <xs:choice>
 
9168
                        <xs:element name="alpha_func">
 
9169
                                <xs:complexType>
 
9170
                                        <xs:sequence>
 
9171
                                                <xs:element name="func">
 
9172
                                                        <xs:complexType>
 
9173
                                                                <xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
 
9174
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9175
                                                        </xs:complexType>
 
9176
                                                </xs:element>
 
9177
                                                <xs:element name="value">
 
9178
                                                        <xs:complexType>
 
9179
                                                                <xs:attribute name="value" type="gl_alpha_value_type" use="optional" default="0.0"/>
 
9180
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9181
                                                        </xs:complexType>
 
9182
                                                </xs:element>
 
9183
                                        </xs:sequence>
 
9184
                                </xs:complexType>
 
9185
                        </xs:element>
 
9186
                        <xs:element name="blend_func">
 
9187
                                <xs:complexType>
 
9188
                                        <xs:sequence>
 
9189
                                                <xs:element name="src">
 
9190
                                                        <xs:complexType>
 
9191
                                                                <xs:attribute name="value" type="gl_blend_type" use="optional" default="ONE"/>
 
9192
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9193
                                                        </xs:complexType>
 
9194
                                                </xs:element>
 
9195
                                                <xs:element name="dest">
 
9196
                                                        <xs:complexType>
 
9197
                                                                <xs:attribute name="value" type="gl_blend_type" use="optional" default="ZERO"/>
 
9198
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9199
                                                        </xs:complexType>
 
9200
                                                </xs:element>
 
9201
                                        </xs:sequence>
 
9202
                                </xs:complexType>
 
9203
                        </xs:element>
 
9204
                        <xs:element name="clear_color">
 
9205
                                <xs:complexType>
 
9206
                                        <xs:attribute name="value" type="float4" use="optional"/>
 
9207
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9208
                                </xs:complexType>
 
9209
                        </xs:element>
 
9210
                        <xs:element name="clear_stencil">
 
9211
                                <xs:complexType>
 
9212
                                        <xs:attribute name="value" type="int" use="optional"/>
 
9213
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9214
                                </xs:complexType>
 
9215
                        </xs:element>
 
9216
                        <xs:element name="clear_depth">
 
9217
                                <xs:complexType>
 
9218
                                        <xs:attribute name="value" type="float" use="optional"/>
 
9219
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9220
                                </xs:complexType>
 
9221
                        </xs:element>
 
9222
                        <xs:element name="clip_plane">
 
9223
                                <xs:complexType>
 
9224
                                        <xs:attribute name="value" type="bool4" use="optional"/>
 
9225
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9226
                                        <xs:attribute name="index" type="GLES_MAX_CLIP_PLANES_index" use="required"/>
 
9227
                                </xs:complexType>
 
9228
                        </xs:element>
 
9229
                        <xs:element name="color_mask">
 
9230
                                <xs:complexType>
 
9231
                                        <xs:attribute name="value" type="bool4" use="optional"/>
 
9232
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9233
                                </xs:complexType>
 
9234
                        </xs:element>
 
9235
                        <xs:element name="cull_face">
 
9236
                                <xs:complexType>
 
9237
                                        <xs:attribute name="value" type="gl_face_type" use="optional" default="BACK"/>
 
9238
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9239
                                </xs:complexType>
 
9240
                        </xs:element>
 
9241
                        <xs:element name="depth_func">
 
9242
                                <xs:complexType>
 
9243
                                        <xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
 
9244
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9245
                                </xs:complexType>
 
9246
                        </xs:element>
 
9247
                        <xs:element name="depth_mask">
 
9248
                                <xs:complexType>
 
9249
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9250
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9251
                                </xs:complexType>
 
9252
                        </xs:element>
 
9253
                        <xs:element name="depth_range">
 
9254
                                <xs:complexType>
 
9255
                                        <xs:attribute name="value" type="float2" use="optional" default="0 1"/>
 
9256
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9257
                                </xs:complexType>
 
9258
                        </xs:element>
 
9259
                        <xs:element name="fog_color">
 
9260
                                <xs:complexType>
 
9261
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
 
9262
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9263
                                </xs:complexType>
 
9264
                        </xs:element>
 
9265
                        <xs:element name="fog_density">
 
9266
                                <xs:complexType>
 
9267
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
9268
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9269
                                </xs:complexType>
 
9270
                        </xs:element>
 
9271
                        <xs:element name="fog_mode">
 
9272
                                <xs:complexType>
 
9273
                                        <xs:attribute name="value" type="gl_fog_type" use="optional" default="EXP"/>
 
9274
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9275
                                </xs:complexType>
 
9276
                        </xs:element>
 
9277
                        <xs:element name="fog_start">
 
9278
                                <xs:complexType>
 
9279
                                        <xs:attribute name="value" type="float" use="optional" default="0"/>
 
9280
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9281
                                </xs:complexType>
 
9282
                        </xs:element>
 
9283
                        <xs:element name="fog_end">
 
9284
                                <xs:complexType>
 
9285
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
9286
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9287
                                </xs:complexType>
 
9288
                        </xs:element>
 
9289
                        <xs:element name="front_face">
 
9290
                                <xs:complexType>
 
9291
                                        <xs:attribute name="value" type="gl_front_face_type" use="optional" default="CCW"/>
 
9292
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9293
                                </xs:complexType>
 
9294
                        </xs:element>
 
9295
                        <xs:element name="texture_pipeline">
 
9296
                                <xs:complexType>
 
9297
                                        <xs:sequence>
 
9298
                                                <xs:element name="value" type="gles_texture_pipeline" minOccurs="0"/>
 
9299
                                        </xs:sequence>
 
9300
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9301
                                </xs:complexType>
 
9302
                        </xs:element>
 
9303
                        <xs:element name="logic_op">
 
9304
                                <xs:complexType>
 
9305
                                        <xs:attribute name="value" type="gl_logic_op_type" use="optional" default="COPY"/>
 
9306
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9307
                                </xs:complexType>
 
9308
                        </xs:element>
 
9309
                        <xs:element name="light_ambient">
 
9310
                                <xs:complexType>
 
9311
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
 
9312
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9313
                                        <xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
 
9314
                                </xs:complexType>
 
9315
                        </xs:element>
 
9316
                        <xs:element name="light_diffuse">
 
9317
                                <xs:complexType>
 
9318
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
 
9319
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9320
                                        <xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
 
9321
                                </xs:complexType>
 
9322
                        </xs:element>
 
9323
                        <xs:element name="light_specular">
 
9324
                                <xs:complexType>
 
9325
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
 
9326
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9327
                                        <xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
 
9328
                                </xs:complexType>
 
9329
                        </xs:element>
 
9330
                        <xs:element name="light_position">
 
9331
                                <xs:complexType>
 
9332
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 1 0"/>
 
9333
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9334
                                        <xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
 
9335
                                </xs:complexType>
 
9336
                        </xs:element>
 
9337
                        <xs:element name="light_constant_attenuation">
 
9338
                                <xs:complexType>
 
9339
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
9340
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9341
                                        <xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
 
9342
                                </xs:complexType>
 
9343
                        </xs:element>
 
9344
                        <xs:element name="light_linear_attenutation">
 
9345
                                <xs:complexType>
 
9346
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
9347
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9348
                                        <xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
 
9349
                                </xs:complexType>
 
9350
                        </xs:element>
 
9351
                        <xs:element name="light_quadratic_attenuation">
 
9352
                                <xs:complexType>
 
9353
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
9354
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9355
                                        <xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
 
9356
                                </xs:complexType>
 
9357
                        </xs:element>
 
9358
                        <xs:element name="light_spot_cutoff">
 
9359
                                <xs:complexType>
 
9360
                                        <xs:attribute name="value" type="float" use="optional" default="180"/>
 
9361
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9362
                                        <xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
 
9363
                                </xs:complexType>
 
9364
                        </xs:element>
 
9365
                        <xs:element name="light_spot_direction">
 
9366
                                <xs:complexType>
 
9367
                                        <xs:attribute name="value" type="float3" use="optional" default="0 0 -1"/>
 
9368
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9369
                                        <xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
 
9370
                                </xs:complexType>
 
9371
                        </xs:element>
 
9372
                        <xs:element name="light_spot_exponent">
 
9373
                                <xs:complexType>
 
9374
                                        <xs:attribute name="value" type="float" use="optional" default="0"/>
 
9375
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9376
                                        <xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
 
9377
                                </xs:complexType>
 
9378
                        </xs:element>
 
9379
                        <xs:element name="light_model_ambient">
 
9380
                                <xs:complexType>
 
9381
                                        <xs:attribute name="value" type="float4" use="optional" default="0.2 0.2 0.2 1.0"/>
 
9382
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9383
                                </xs:complexType>
 
9384
                        </xs:element>
 
9385
                        <xs:element name="line_width">
 
9386
                                <xs:complexType>
 
9387
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
9388
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9389
                                </xs:complexType>
 
9390
                        </xs:element>
 
9391
                        <xs:element name="material_ambient">
 
9392
                                <xs:complexType>
 
9393
                                        <xs:attribute name="value" type="float4" use="optional" default="0.2 0.2 0.2 1.0"/>
 
9394
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9395
                                </xs:complexType>
 
9396
                        </xs:element>
 
9397
                        <xs:element name="material_diffuse">
 
9398
                                <xs:complexType>
 
9399
                                        <xs:attribute name="value" type="float4" use="optional" default="0.8 0.8 0.8 1.0"/>
 
9400
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9401
                                </xs:complexType>
 
9402
                        </xs:element>
 
9403
                        <xs:element name="material_emission">
 
9404
                                <xs:complexType>
 
9405
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
 
9406
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9407
                                </xs:complexType>
 
9408
                        </xs:element>
 
9409
                        <xs:element name="material_shininess">
 
9410
                                <xs:complexType>
 
9411
                                        <xs:attribute name="value" type="float" use="optional" default="0"/>
 
9412
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9413
                                </xs:complexType>
 
9414
                        </xs:element>
 
9415
                        <xs:element name="material_specular">
 
9416
                                <xs:complexType>
 
9417
                                        <xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
 
9418
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9419
                                </xs:complexType>
 
9420
                        </xs:element>
 
9421
                        <xs:element name="model_view_matrix">
 
9422
                                <xs:complexType>
 
9423
                                        <xs:attribute name="value" type="float4x4" use="optional" default="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"/>
 
9424
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9425
                                </xs:complexType>
 
9426
                        </xs:element>
 
9427
                        <xs:element name="point_distance_attenuation">
 
9428
                                <xs:complexType>
 
9429
                                        <xs:attribute name="value" type="float3" use="optional" default="1 0 0"/>
 
9430
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9431
                                </xs:complexType>
 
9432
                        </xs:element>
 
9433
                        <xs:element name="point_fade_threshold_size">
 
9434
                                <xs:complexType>
 
9435
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
9436
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9437
                                </xs:complexType>
 
9438
                        </xs:element>
 
9439
                        <xs:element name="point_size">
 
9440
                                <xs:complexType>
 
9441
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
9442
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9443
                                </xs:complexType>
 
9444
                        </xs:element>
 
9445
                        <xs:element name="point_size_min">
 
9446
                                <xs:complexType>
 
9447
                                        <xs:attribute name="value" type="float" use="optional" default="0"/>
 
9448
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9449
                                </xs:complexType>
 
9450
                        </xs:element>
 
9451
                        <xs:element name="point_size_max">
 
9452
                                <xs:complexType>
 
9453
                                        <xs:attribute name="value" type="float" use="optional" default="1"/>
 
9454
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9455
                                </xs:complexType>
 
9456
                        </xs:element>
 
9457
                        <xs:element name="polygon_offset">
 
9458
                                <xs:complexType>
 
9459
                                        <xs:attribute name="value" type="float2" use="optional" default="0 0"/>
 
9460
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9461
                                </xs:complexType>
 
9462
                        </xs:element>
 
9463
                        <xs:element name="projection_matrix">
 
9464
                                <xs:complexType>
 
9465
                                        <xs:attribute name="value" type="float4x4" use="optional" default="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"/>
 
9466
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9467
                                </xs:complexType>
 
9468
                        </xs:element>
 
9469
                        <xs:element name="scissor">
 
9470
                                <xs:complexType>
 
9471
                                        <xs:attribute name="value" type="int4" use="optional"/>
 
9472
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9473
                                </xs:complexType>
 
9474
                        </xs:element>
 
9475
                        <xs:element name="shade_model">
 
9476
                                <xs:complexType>
 
9477
                                        <xs:attribute name="value" type="gl_shade_model_type" use="optional" default="SMOOTH"/>
 
9478
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9479
                                </xs:complexType>
 
9480
                        </xs:element>
 
9481
                        <xs:element name="stencil_func">
 
9482
                                <xs:complexType>
 
9483
                                        <xs:sequence>
 
9484
                                                <xs:element name="func">
 
9485
                                                        <xs:complexType>
 
9486
                                                                <xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
 
9487
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9488
                                                        </xs:complexType>
 
9489
                                                </xs:element>
 
9490
                                                <xs:element name="ref">
 
9491
                                                        <xs:complexType>
 
9492
                                                                <xs:attribute name="value" type="xs:unsignedByte" use="optional" default="0"/>
 
9493
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9494
                                                        </xs:complexType>
 
9495
                                                </xs:element>
 
9496
                                                <xs:element name="mask">
 
9497
                                                        <xs:complexType>
 
9498
                                                                <xs:attribute name="value" type="xs:unsignedByte" use="optional" default="255"/>
 
9499
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9500
                                                        </xs:complexType>
 
9501
                                                </xs:element>
 
9502
                                        </xs:sequence>
 
9503
                                </xs:complexType>
 
9504
                        </xs:element>
 
9505
                        <xs:element name="stencil_mask">
 
9506
                                <xs:complexType>
 
9507
                                        <xs:attribute name="value" type="int" use="optional" default="4294967295"/>
 
9508
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9509
                                </xs:complexType>
 
9510
                        </xs:element>
 
9511
                        <xs:element name="stencil_op">
 
9512
                                <xs:complexType>
 
9513
                                        <xs:sequence>
 
9514
                                                <xs:element name="fail">
 
9515
                                                        <xs:complexType>
 
9516
                                                                <xs:attribute name="value" type="gles_stencil_op_type" use="optional" default="KEEP"/>
 
9517
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9518
                                                        </xs:complexType>
 
9519
                                                </xs:element>
 
9520
                                                <xs:element name="zfail">
 
9521
                                                        <xs:complexType>
 
9522
                                                                <xs:attribute name="value" type="gles_stencil_op_type" use="optional" default="KEEP"/>
 
9523
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9524
                                                        </xs:complexType>
 
9525
                                                </xs:element>
 
9526
                                                <xs:element name="zpass">
 
9527
                                                        <xs:complexType>
 
9528
                                                                <xs:attribute name="value" type="gles_stencil_op_type" use="optional" default="KEEP"/>
 
9529
                                                                <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9530
                                                        </xs:complexType>
 
9531
                                                </xs:element>
 
9532
                                        </xs:sequence>
 
9533
                                </xs:complexType>
 
9534
                        </xs:element>
 
9535
                        <xs:element name="alpha_test_enable">
 
9536
                                <xs:complexType>
 
9537
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9538
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9539
                                </xs:complexType>
 
9540
                        </xs:element>
 
9541
                        <xs:element name="blend_enable">
 
9542
                                <xs:complexType>
 
9543
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9544
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9545
                                </xs:complexType>
 
9546
                        </xs:element>
 
9547
                        <xs:element name="clip_plane_enable">
 
9548
                                <xs:complexType>
 
9549
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9550
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9551
                                        <xs:attribute name="index" type="GLES_MAX_CLIP_PLANES_index"/>
 
9552
                                </xs:complexType>
 
9553
                        </xs:element>
 
9554
                        <xs:element name="color_logic_op_enable">
 
9555
                                <xs:complexType>
 
9556
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9557
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9558
                                </xs:complexType>
 
9559
                        </xs:element>
 
9560
                        <xs:element name="color_material_enable">
 
9561
                                <xs:complexType>
 
9562
                                        <xs:attribute name="value" type="bool" use="optional" default="true"/>
 
9563
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9564
                                </xs:complexType>
 
9565
                        </xs:element>
 
9566
                        <xs:element name="cull_face_enable">
 
9567
                                <xs:complexType>
 
9568
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9569
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9570
                                </xs:complexType>
 
9571
                        </xs:element>
 
9572
                        <xs:element name="depth_test_enable">
 
9573
                                <xs:complexType>
 
9574
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9575
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9576
                                </xs:complexType>
 
9577
                        </xs:element>
 
9578
                        <xs:element name="dither_enable">
 
9579
                                <xs:complexType>
 
9580
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9581
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9582
                                </xs:complexType>
 
9583
                        </xs:element>
 
9584
                        <xs:element name="fog_enable">
 
9585
                                <xs:complexType>
 
9586
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9587
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9588
                                </xs:complexType>
 
9589
                        </xs:element>
 
9590
                        <xs:element name="texture_pipeline_enable">
 
9591
                                <xs:complexType>
 
9592
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9593
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9594
                                </xs:complexType>
 
9595
                        </xs:element>
 
9596
                        <xs:element name="light_enable">
 
9597
                                <xs:complexType>
 
9598
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9599
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9600
                                        <xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
 
9601
                                </xs:complexType>
 
9602
                        </xs:element>
 
9603
                        <xs:element name="lighting_enable">
 
9604
                                <xs:complexType>
 
9605
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9606
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9607
                                </xs:complexType>
 
9608
                        </xs:element>
 
9609
                        <xs:element name="light_model_two_side_enable">
 
9610
                                <xs:complexType>
 
9611
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9612
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9613
                                </xs:complexType>
 
9614
                        </xs:element>
 
9615
                        <xs:element name="line_smooth_enable">
 
9616
                                <xs:complexType>
 
9617
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9618
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9619
                                </xs:complexType>
 
9620
                        </xs:element>
 
9621
                        <xs:element name="multisample_enable">
 
9622
                                <xs:complexType>
 
9623
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9624
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9625
                                </xs:complexType>
 
9626
                        </xs:element>
 
9627
                        <xs:element name="normalize_enable">
 
9628
                                <xs:complexType>
 
9629
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9630
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9631
                                </xs:complexType>
 
9632
                        </xs:element>
 
9633
                        <xs:element name="point_smooth_enable">
 
9634
                                <xs:complexType>
 
9635
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9636
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9637
                                </xs:complexType>
 
9638
                        </xs:element>
 
9639
                        <xs:element name="polygon_offset_fill_enable">
 
9640
                                <xs:complexType>
 
9641
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9642
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9643
                                </xs:complexType>
 
9644
                        </xs:element>
 
9645
                        <xs:element name="rescale_normal_enable">
 
9646
                                <xs:complexType>
 
9647
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9648
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9649
                                </xs:complexType>
 
9650
                        </xs:element>
 
9651
                        <xs:element name="sample_alpha_to_coverage_enable">
 
9652
                                <xs:complexType>
 
9653
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9654
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9655
                                </xs:complexType>
 
9656
                        </xs:element>
 
9657
                        <xs:element name="sample_alpha_to_one_enable">
 
9658
                                <xs:complexType>
 
9659
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9660
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9661
                                </xs:complexType>
 
9662
                        </xs:element>
 
9663
                        <xs:element name="sample_coverage_enable">
 
9664
                                <xs:complexType>
 
9665
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9666
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9667
                                </xs:complexType>
 
9668
                        </xs:element>
 
9669
                        <xs:element name="scissor_test_enable">
 
9670
                                <xs:complexType>
 
9671
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9672
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9673
                                </xs:complexType>
 
9674
                        </xs:element>
 
9675
                        <xs:element name="stencil_test_enable">
 
9676
                                <xs:complexType>
 
9677
                                        <xs:attribute name="value" type="bool" use="optional" default="false"/>
 
9678
                                        <xs:attribute name="param" type="xs:NCName" use="optional"/>
 
9679
                                </xs:complexType>
 
9680
                        </xs:element>
 
9681
                </xs:choice>
 
9682
        </xs:group>
 
9683
        <!-- - - - - - - - - - - - - - - - - - - - -->
 
9684
        <xs:group name="gles_basic_type_common">
 
9685
                <xs:annotation>
 
9686
                        <xs:documentation>
 
9687
                        A group that defines the available variable types for GLES parameters.
 
9688
                        </xs:documentation>
 
9689
                </xs:annotation>
 
9690
                <xs:choice>
 
9691
                        <xs:element name="bool" type="bool"/>
 
9692
                        <xs:element name="bool2" type="bool2"/>
 
9693
                        <xs:element name="bool3" type="bool3"/>
 
9694
                        <xs:element name="bool4" type="bool4"/>
 
9695
                        <xs:element name="int" type="int"/>
 
9696
                        <xs:element name="int2" type="int2"/>
 
9697
                        <xs:element name="int3" type="int3"/>
 
9698
                        <xs:element name="int4" type="int4"/>
 
9699
                        <xs:element name="float" type="float"/>
 
9700
                        <xs:element name="float2" type="float2"/>
 
9701
                        <xs:element name="float3" type="float3"/>
 
9702
                        <xs:element name="float4" type="float4"/>
 
9703
                        <xs:element name="float1x1" type="float"/>
 
9704
                        <xs:element name="float1x2" type="float2"/>
 
9705
                        <xs:element name="float1x3" type="float3"/>
 
9706
                        <xs:element name="float1x4" type="float4"/>
 
9707
                        <xs:element name="float2x1" type="float2"/>
 
9708
                        <xs:element name="float2x2" type="float2x2"/>
 
9709
                        <xs:element name="float2x3" type="float2x3"/>
 
9710
                        <xs:element name="float2x4" type="float2x4"/>
 
9711
                        <xs:element name="float3x1" type="float3"/>
 
9712
                        <xs:element name="float3x2" type="float3x2"/>
 
9713
                        <xs:element name="float3x3" type="float3x3"/>
 
9714
                        <xs:element name="float3x4" type="float3x4"/>
 
9715
                        <xs:element name="float4x1" type="float4"/>
 
9716
                        <xs:element name="float4x2" type="float4x2"/>
 
9717
                        <xs:element name="float4x3" type="float4x3"/>
 
9718
                        <xs:element name="float4x4" type="float4x4"/>
 
9719
                        <xs:element name="surface" type="fx_surface_common"/>
 
9720
                        <xs:element name="texture_pipeline" type="gles_texture_pipeline"/>
 
9721
                        <xs:element name="sampler_state" type="gles_sampler_state"/>
 
9722
                        <xs:element name="texture_unit" type="gles_texture_unit"/>
 
9723
                        <xs:element name="enum" type="gles_enumeration"/>
 
9724
                </xs:choice>
 
9725
        </xs:group>
 
9726
        <xs:complexType name="gles_newparam">
 
9727
                <xs:annotation>
 
9728
                        <xs:documentation>
 
9729
                        Create a new, named param object in the GLES Runtime, assign it a type, an initial value, and additional attributes at declaration time.
 
9730
                        </xs:documentation>
 
9731
                </xs:annotation>
 
9732
                <xs:sequence>
 
9733
                        <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
 
9734
                                <xs:annotation>
 
9735
                                        <xs:documentation>
 
9736
                                        The annotate element allows you to specify an annotation for this new param.
 
9737
                                        </xs:documentation>
 
9738
                                </xs:annotation>
 
9739
                        </xs:element>
 
9740
                        <xs:element name="semantic" type="xs:NCName" minOccurs="0">
 
9741
                                <xs:annotation>
 
9742
                                        <xs:documentation>
 
9743
                                        The semantic element allows you to specify a semantic for this new param.
 
9744
                                        </xs:documentation>
 
9745
                                </xs:annotation>
 
9746
                        </xs:element>
 
9747
                        <xs:element name="modifier" type="fx_modifier_enum_common" minOccurs="0">
 
9748
                                <xs:annotation>
 
9749
                                        <xs:documentation>
 
9750
                                        The modifier element allows you to specify a modifier for this new param.
 
9751
                                        </xs:documentation>
 
9752
                                </xs:annotation>
 
9753
                        </xs:element>
 
9754
                        <xs:group ref="gles_basic_type_common"/>
 
9755
                </xs:sequence>
 
9756
                <xs:attribute name="sid" type="xs:NCName" use="required">
 
9757
                        <xs:annotation>
 
9758
                                <xs:documentation>
 
9759
                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
9760
                                This value must be unique within the scope of the parent element.
 
9761
                                </xs:documentation>
 
9762
                        </xs:annotation>
 
9763
                </xs:attribute>
 
9764
        </xs:complexType>
 
9765
        <xs:simpleType name="gles_rendertarget_common">
 
9766
                <xs:restriction base="xs:NCName"/>
 
9767
        </xs:simpleType>
 
9768
        <xs:element name="profile_GLES" substitutionGroup="fx_profile_abstract">
 
9769
                <xs:annotation>
 
9770
                        <xs:documentation>
 
9771
                        Opens a block of GLES platform-specific data types and technique declarations.
 
9772
                        </xs:documentation>
 
9773
                </xs:annotation>
 
9774
                <xs:complexType>
 
9775
                        <xs:sequence>
 
9776
                                <xs:element ref="asset" minOccurs="0"/>
 
9777
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
9778
                                        <xs:element ref="image"/>
 
9779
                                        <xs:element name="newparam" type="gles_newparam"/>
 
9780
                                </xs:choice>
 
9781
                                <xs:element name="technique" maxOccurs="unbounded">
 
9782
                                        <xs:annotation>
 
9783
                                                <xs:documentation>
 
9784
                                                Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method.
 
9785
                                                </xs:documentation>
 
9786
                                        </xs:annotation>
 
9787
                                        <xs:complexType>
 
9788
                                                <xs:sequence>
 
9789
                                                        <xs:element ref="asset" minOccurs="0"/>
 
9790
                                                        <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
9791
                                                        <xs:choice minOccurs="0" maxOccurs="unbounded">
 
9792
                                                                <xs:element ref="image"/>
 
9793
                                                                <xs:element name="newparam" type="gles_newparam"/>
 
9794
                                                                <xs:element name="setparam">
 
9795
                                                                        <xs:complexType>
 
9796
                                                                                <xs:sequence>
 
9797
                                                                                        <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
9798
                                                                                        <xs:group ref="gles_basic_type_common"/>
 
9799
                                                                                </xs:sequence>
 
9800
                                                                                <xs:attribute name="ref" type="xs:NCName" use="required"/>
 
9801
                                                                        </xs:complexType>
 
9802
                                                                </xs:element>
 
9803
                                                        </xs:choice>
 
9804
                                                        <xs:element name="pass" maxOccurs="unbounded">
 
9805
                                                                <xs:annotation>
 
9806
                                                                        <xs:documentation>
 
9807
                                                                        A static declaration of all the render states, shaders, and settings for one rendering pipeline.
 
9808
                                                                        </xs:documentation>
 
9809
                                                                </xs:annotation>
 
9810
                                                                <xs:complexType>
 
9811
                                                                        <xs:sequence>
 
9812
                                                                                <xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
 
9813
                                                                                <xs:element name="color_target" type="gles_rendertarget_common" minOccurs="0"/>
 
9814
                                                                                <xs:element name="depth_target" type="gles_rendertarget_common" minOccurs="0"/>
 
9815
                                                                                <xs:element name="stencil_target" type="gles_rendertarget_common" minOccurs="0"/>
 
9816
                                                                                <xs:element name="color_clear" type="fx_color_common" minOccurs="0"/>
 
9817
                                                                                <xs:element name="depth_clear" type="float" minOccurs="0"/>
 
9818
                                                                                <xs:element name="stencil_clear" type="xs:byte" minOccurs="0"/>
 
9819
                                                                                <xs:element name="draw" type="fx_draw_common" minOccurs="0"/>
 
9820
                                                                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
9821
                                                                                        <xs:group ref="gles_pipeline_settings"/>
 
9822
                                                                                </xs:choice>
 
9823
                                                                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
9824
                                                                        </xs:sequence>
 
9825
                                                                        <xs:attribute name="sid" type="xs:NCName" use="optional">
 
9826
                                                                                <xs:annotation>
 
9827
                                                                                        <xs:documentation>
 
9828
                                                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
9829
                                                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
9830
                                                                                        </xs:documentation>
 
9831
                                                                                </xs:annotation>
 
9832
                                                                        </xs:attribute>
 
9833
                                                                </xs:complexType>
 
9834
                                                        </xs:element>
 
9835
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
9836
                                                </xs:sequence>
 
9837
                                                <xs:attribute name="id" type="xs:ID"/>
 
9838
                                                <xs:attribute name="sid" type="xs:NCName" use="required">
 
9839
                                                        <xs:annotation>
 
9840
                                                                <xs:documentation>
 
9841
                                                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
9842
                                                                This value must be unique within the scope of the parent element.
 
9843
                                                                </xs:documentation>
 
9844
                                                        </xs:annotation>
 
9845
                                                </xs:attribute>
 
9846
                                        </xs:complexType>
 
9847
                                </xs:element>
 
9848
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
 
9849
                        </xs:sequence>
 
9850
                        <xs:attribute name="id" type="xs:ID" use="optional">
 
9851
                                <xs:annotation>
 
9852
                                        <xs:documentation>
 
9853
                                        The id attribute is a text string containing the unique identifier of this element. 
 
9854
                                        This value must be unique within the instance document. Optional attribute.
 
9855
                                        </xs:documentation>
 
9856
                                </xs:annotation>
 
9857
                        </xs:attribute>
 
9858
                        <xs:attribute name="platform" type="xs:NCName" use="optional" default="PC">
 
9859
                                <xs:annotation>
 
9860
                                        <xs:documentation>
 
9861
                                        The type of platform. This is a vendor-defined character string that indicates the platform or capability target for the technique. Optional
 
9862
                                        </xs:documentation>
 
9863
                                </xs:annotation>
 
9864
                        </xs:attribute>
 
9865
                </xs:complexType>
 
9866
        </xs:element>
 
9867
        <!-- COLLADA Physics -->
 
9868
        <!-- new geometry types -->
 
9869
        <xs:element name="box">
 
9870
                <xs:annotation>
 
9871
                        <xs:documentation>
 
9872
                        An axis-aligned, centered box primitive.
 
9873
                        </xs:documentation>
 
9874
                </xs:annotation>
 
9875
                <xs:complexType>
 
9876
                        <xs:sequence>
 
9877
                                <xs:element name="half_extents" type="float3">
 
9878
                                        <xs:annotation>
 
9879
                                                <xs:documentation>
 
9880
                                                3 float values that represent the extents of the box
 
9881
                                                </xs:documentation>
 
9882
                                        </xs:annotation>
 
9883
                                </xs:element>
 
9884
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
9885
                                        <xs:annotation>
 
9886
                                                <xs:documentation>
 
9887
                                                The extra element may appear any number of times.
 
9888
                                                </xs:documentation>
 
9889
                                        </xs:annotation>
 
9890
                                </xs:element>
 
9891
                        </xs:sequence>
 
9892
                </xs:complexType>
 
9893
        </xs:element>
 
9894
        <xs:element name="plane">
 
9895
                <xs:annotation>
 
9896
                        <xs:documentation>
 
9897
                        An infinite plane primitive.
 
9898
                        </xs:documentation>
 
9899
                </xs:annotation>
 
9900
                <xs:complexType>
 
9901
                        <xs:sequence>
 
9902
                                <xs:element name="equation" type="float4">
 
9903
                                        <xs:annotation>
 
9904
                                                <xs:documentation>
 
9905
                                                4 float values that represent the coefficients for the planeā€™s equation:    Ax + By + Cz + D = 0
 
9906
                                                </xs:documentation>
 
9907
                                        </xs:annotation>
 
9908
                                </xs:element>
 
9909
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
9910
                                        <xs:annotation>
 
9911
                                                <xs:documentation>
 
9912
                                                The extra element may appear any number of times.
 
9913
                                                </xs:documentation>
 
9914
                                        </xs:annotation>
 
9915
                                </xs:element>
 
9916
                        </xs:sequence>
 
9917
                </xs:complexType>
 
9918
        </xs:element>
 
9919
        <xs:element name="sphere">
 
9920
                <xs:annotation>
 
9921
                        <xs:documentation>
 
9922
                        A centered sphere primitive.
 
9923
                        </xs:documentation>
 
9924
                </xs:annotation>
 
9925
                <xs:complexType>
 
9926
                        <xs:sequence>
 
9927
                                <xs:element name="radius" type="float">
 
9928
                                        <xs:annotation>
 
9929
                                                <xs:documentation>
 
9930
                                                A float value that represents the radius of the sphere
 
9931
                                                </xs:documentation>
 
9932
                                        </xs:annotation>
 
9933
                                </xs:element>
 
9934
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
9935
                                        <xs:annotation>
 
9936
                                                <xs:documentation>
 
9937
                                                The extra element may appear any number of times.
 
9938
                                                </xs:documentation>
 
9939
                                        </xs:annotation>
 
9940
                                </xs:element>
 
9941
                        </xs:sequence>
 
9942
                </xs:complexType>
 
9943
        </xs:element>
 
9944
        <xs:element name="ellipsoid">
 
9945
                <xs:complexType>
 
9946
                        <xs:sequence>
 
9947
                                <xs:element name="size" type="float3"/>
 
9948
                        </xs:sequence>
 
9949
                </xs:complexType>
 
9950
        </xs:element>
 
9951
        <xs:element name="cylinder">
 
9952
                <xs:annotation>
 
9953
                        <xs:documentation>
 
9954
                        A cylinder primitive that is centered on, and aligned with. the local Y axis.
 
9955
                        </xs:documentation>
 
9956
                </xs:annotation>
 
9957
                <xs:complexType>
 
9958
                        <xs:sequence>
 
9959
                                <xs:element name="height" type="float">
 
9960
                                        <xs:annotation>
 
9961
                                                <xs:documentation>
 
9962
                                                A float value that represents the length of the cylinder along the Y axis.
 
9963
                                                </xs:documentation>
 
9964
                                        </xs:annotation>
 
9965
                                </xs:element>
 
9966
                                <xs:element name="radius" type="float2">
 
9967
                                        <xs:annotation>
 
9968
                                                <xs:documentation>
 
9969
                                                float2 values that represent the radii of the cylinder.
 
9970
                                                </xs:documentation>
 
9971
                                        </xs:annotation>
 
9972
                                </xs:element>
 
9973
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
9974
                                        <xs:annotation>
 
9975
                                                <xs:documentation>
 
9976
                                                The extra element may appear any number of times.
 
9977
                                                </xs:documentation>
 
9978
                                        </xs:annotation>
 
9979
                                </xs:element>
 
9980
                        </xs:sequence>
 
9981
                </xs:complexType>
 
9982
        </xs:element>
 
9983
        <xs:element name="tapered_cylinder">
 
9984
                <xs:annotation>
 
9985
                        <xs:documentation>
 
9986
                        A tapered cylinder primitive that is centered on and aligned with the local Y axis.
 
9987
                        </xs:documentation>
 
9988
                </xs:annotation>
 
9989
                <xs:complexType>
 
9990
                        <xs:sequence>
 
9991
                                <xs:element name="height" type="float">
 
9992
                                        <xs:annotation>
 
9993
                                                <xs:documentation>
 
9994
                                                A float value that represents the length of the cylinder along the Y axis.
 
9995
                                                </xs:documentation>
 
9996
                                        </xs:annotation>
 
9997
                                </xs:element>
 
9998
                                <xs:element name="radius1" type="float2">
 
9999
                                        <xs:annotation>
 
10000
                                                <xs:documentation>
 
10001
                                                Two float values that represent the radii of the tapered cylinder at the positive (height/2) 
 
10002
                                                Y value. Both ends of the tapered cylinder may be elliptical.
 
10003
                                                </xs:documentation>
 
10004
                                        </xs:annotation>
 
10005
                                </xs:element>
 
10006
                                <xs:element name="radius2" type="float2">
 
10007
                                        <xs:annotation>
 
10008
                                                <xs:documentation>
 
10009
                                                Two float values that represent the radii of the tapered cylinder at the negative (height/2) 
 
10010
                                                Y value.Both ends of the tapered cylinder may be elliptical.
 
10011
                                                </xs:documentation>
 
10012
                                        </xs:annotation>
 
10013
                                </xs:element>
 
10014
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10015
                                        <xs:annotation>
 
10016
                                                <xs:documentation>
 
10017
                                                The extra element may appear any number of times.
 
10018
                                                </xs:documentation>
 
10019
                                        </xs:annotation>
 
10020
                                </xs:element>
 
10021
                        </xs:sequence>
 
10022
                </xs:complexType>
 
10023
        </xs:element>
 
10024
        <xs:element name="capsule">
 
10025
                <xs:annotation>
 
10026
                        <xs:documentation>
 
10027
                        A capsule primitive that is centered on and aligned with the local Y axis.
 
10028
                        </xs:documentation>
 
10029
                </xs:annotation>
 
10030
                <xs:complexType>
 
10031
                        <xs:sequence>
 
10032
                                <xs:element name="height" type="float">
 
10033
                                        <xs:annotation>
 
10034
                                                <xs:documentation>
 
10035
                                                A float value that represents the length of the line segment connecting the centers 
 
10036
                                                of the capping hemispheres.
 
10037
                                                </xs:documentation>
 
10038
                                        </xs:annotation>
 
10039
                                </xs:element>
 
10040
                                <xs:element name="radius" type="float2">
 
10041
                                        <xs:annotation>
 
10042
                                                <xs:documentation>
 
10043
                                                Two float values that represent the radii of the capsule (it may be elliptical)
 
10044
                                                </xs:documentation>
 
10045
                                        </xs:annotation>
 
10046
                                </xs:element>
 
10047
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10048
                                        <xs:annotation>
 
10049
                                                <xs:documentation>
 
10050
                                                The extra element may appear any number of times.
 
10051
                                                </xs:documentation>
 
10052
                                        </xs:annotation>
 
10053
                                </xs:element>
 
10054
                        </xs:sequence>
 
10055
                </xs:complexType>
 
10056
        </xs:element>
 
10057
        <xs:element name="tapered_capsule">
 
10058
                <xs:annotation>
 
10059
                        <xs:documentation>
 
10060
                        A tapered capsule primitive that is centered on, and aligned with, the local Y axis.
 
10061
                        </xs:documentation>
 
10062
                </xs:annotation>
 
10063
                <xs:complexType>
 
10064
                        <xs:sequence>
 
10065
                                <xs:element name="height" type="float">
 
10066
                                        <xs:annotation>
 
10067
                                                <xs:documentation>
 
10068
                                                A float value that represents the length of the line segment connecting the centers of the 
 
10069
                                                capping hemispheres.
 
10070
                                                </xs:documentation>
 
10071
                                        </xs:annotation>
 
10072
                                </xs:element>
 
10073
                                <xs:element name="radius1" type="float2">
 
10074
                                        <xs:annotation>
 
10075
                                                <xs:documentation>
 
10076
                                                Two float values that represent the radii of the tapered capsule at the positive (height/2) 
 
10077
                                                Y value.Both ends of the tapered capsule may be elliptical.
 
10078
                                                </xs:documentation>
 
10079
                                        </xs:annotation>
 
10080
                                </xs:element>
 
10081
                                <xs:element name="radius2" type="float2">
 
10082
                                        <xs:annotation>
 
10083
                                                <xs:documentation>
 
10084
                                                Two float values that represent the radii of the tapered capsule at the negative (height/2) 
 
10085
                                                Y value.Both ends of the tapered capsule may be elliptical.
 
10086
                                                </xs:documentation>
 
10087
                                        </xs:annotation>
 
10088
                                </xs:element>
 
10089
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10090
                                        <xs:annotation>
 
10091
                                                <xs:documentation>
 
10092
                                                The extra element may appear any number of times.
 
10093
                                                </xs:documentation>
 
10094
                                        </xs:annotation>
 
10095
                                </xs:element>
 
10096
                        </xs:sequence>
 
10097
                </xs:complexType>
 
10098
        </xs:element>
 
10099
        <xs:element name="convex_mesh">
 
10100
                <xs:annotation>
 
10101
                        <xs:documentation>
 
10102
                        The definition of the convex_mesh element is identical to the mesh element with the exception that 
 
10103
                        instead of a complete description (source, vertices, polygons etc.), it may simply point to another 
 
10104
                        geometry to derive its shape. The latter case means that the convex hull of that geometry should 
 
10105
                        be computed and is indicated by the optional ā€œconvex_hull_ofā€ attribute.
 
10106
                        </xs:documentation>
 
10107
                </xs:annotation>
 
10108
                <xs:complexType>
 
10109
                        <xs:sequence minOccurs="0">
 
10110
                                <xs:element ref="source" maxOccurs="unbounded"/>
 
10111
                                <xs:element ref="vertices"/>
 
10112
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
10113
                                        <xs:element ref="lines"/>
 
10114
                                        <xs:element ref="linestrips"/>
 
10115
                                        <xs:element ref="polygons"/>
 
10116
                                        <xs:element ref="polylist"/>
 
10117
                                        <xs:element ref="triangles"/>
 
10118
                                        <xs:element ref="trifans"/>
 
10119
                                        <xs:element ref="tristrips"/>
 
10120
                                </xs:choice>
 
10121
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10122
                                        <xs:annotation>
 
10123
                                                <xs:documentation>
 
10124
                                                The extra element may appear any number of times.
 
10125
                                                </xs:documentation>
 
10126
                                        </xs:annotation>
 
10127
                                </xs:element>
 
10128
                        </xs:sequence>
 
10129
                        <xs:attribute name="convex_hull_of" type="xs:anyURI">
 
10130
                                <xs:annotation>
 
10131
                                        <xs:documentation>
 
10132
                                        The convex_hull_of attribute is a URI string of geometry to compute the convex hull of. 
 
10133
                                        Optional attribute.
 
10134
                                        </xs:documentation>
 
10135
                                </xs:annotation>
 
10136
                        </xs:attribute>
 
10137
                </xs:complexType>
 
10138
        </xs:element>
 
10139
        <!-- physics object elements -->
 
10140
        <xs:element name="force_field">
 
10141
                <xs:annotation>
 
10142
                        <xs:documentation>
 
10143
                        A general container for force-fields. At the moment, it only has techniques and extra elements.
 
10144
                        </xs:documentation>
 
10145
                </xs:annotation>
 
10146
                <xs:complexType>
 
10147
                        <xs:sequence>
 
10148
                                <xs:element ref="asset" minOccurs="0">
 
10149
                                        <xs:annotation>
 
10150
                                                <xs:documentation>
 
10151
                                                The force_field element may contain an asset element.
 
10152
                                                </xs:documentation>
 
10153
                                        </xs:annotation>
 
10154
                                </xs:element>
 
10155
                                <xs:element ref="technique" maxOccurs="unbounded">
 
10156
                                        <xs:annotation>
 
10157
                                                <xs:documentation>
 
10158
                                                This element must contain at least one non-common profile technique.
 
10159
                                                </xs:documentation>
 
10160
                                        </xs:annotation>
 
10161
                                </xs:element>
 
10162
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10163
                                        <xs:annotation>
 
10164
                                                <xs:documentation>
 
10165
                                                The extra element may appear any number of times.
 
10166
                                                </xs:documentation>
 
10167
                                        </xs:annotation>
 
10168
                                </xs:element>
 
10169
                        </xs:sequence>
 
10170
                        <xs:attribute name="id" type="xs:ID">
 
10171
                                <xs:annotation>
 
10172
                                        <xs:documentation>
 
10173
                                        The id attribute is a text string containing the unique identifier of this element. This value 
 
10174
                                        must be unique within the instance document. Optional attribute.
 
10175
                                        </xs:documentation>
 
10176
                                </xs:annotation>
 
10177
                        </xs:attribute>
 
10178
                        <xs:attribute name="name" type="xs:NCName">
 
10179
                                <xs:annotation>
 
10180
                                        <xs:documentation>
 
10181
                                        The name attribute is the text string name of this element. Optional attribute.
 
10182
                                        </xs:documentation>
 
10183
                                </xs:annotation>
 
10184
                        </xs:attribute>
 
10185
                </xs:complexType>
 
10186
        </xs:element>
 
10187
        <xs:element name="physics_material">
 
10188
                <xs:annotation>
 
10189
                        <xs:documentation>
 
10190
                        This element defines the physical properties of an object. It contains a technique/profile with 
 
10191
                        parameters. The COMMON profile defines the built-in names, such as static_friction.
 
10192
                        </xs:documentation>
 
10193
                </xs:annotation>
 
10194
                <xs:complexType>
 
10195
                        <xs:sequence>
 
10196
                                <xs:element ref="asset" minOccurs="0">
 
10197
                                        <xs:annotation>
 
10198
                                                <xs:documentation>
 
10199
                                                The physics_material element may contain an asset element.
 
10200
                                                </xs:documentation>
 
10201
                                        </xs:annotation>
 
10202
                                </xs:element>
 
10203
                                <xs:element name="technique_common">
 
10204
                                        <xs:annotation>
 
10205
                                                <xs:documentation>
 
10206
                                                The technique_common element specifies the physics_material information for the common profile 
 
10207
                                                which all COLLADA implementations need to support.
 
10208
                                                </xs:documentation>
 
10209
                                        </xs:annotation>
 
10210
                                        <xs:complexType>
 
10211
                                                <xs:sequence>
 
10212
                                                        <xs:element name="dynamic_friction" type="TargetableFloat" minOccurs="0">
 
10213
                                                                <xs:annotation>
 
10214
                                                                        <xs:documentation>
 
10215
                                                                        Dynamic friction coefficient
 
10216
                                                                        </xs:documentation>
 
10217
                                                                </xs:annotation>
 
10218
                                                        </xs:element>
 
10219
                                                        <xs:element name="restitution" type="TargetableFloat" minOccurs="0">
 
10220
                                                                <xs:annotation>
 
10221
                                                                        <xs:documentation>
 
10222
                                                                        The proportion of the kinetic energy preserved in the impact (typically ranges from 0.0 to 1.0)
 
10223
                                                                        </xs:documentation>
 
10224
                                                                </xs:annotation>
 
10225
                                                        </xs:element>
 
10226
                                                        <xs:element name="static_friction" type="TargetableFloat" minOccurs="0">
 
10227
                                                                <xs:annotation>
 
10228
                                                                        <xs:documentation>
 
10229
                                                                        Static friction coefficient
 
10230
                                                                        </xs:documentation>
 
10231
                                                                </xs:annotation>
 
10232
                                                        </xs:element>
 
10233
                                                </xs:sequence>
 
10234
                                        </xs:complexType>
 
10235
                                </xs:element>
 
10236
                                <xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
 
10237
                                        <xs:annotation>
 
10238
                                                <xs:documentation>
 
10239
                                                This element may contain any number of non-common profile techniques.
 
10240
                                                </xs:documentation>
 
10241
                                        </xs:annotation>
 
10242
                                </xs:element>
 
10243
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10244
                                        <xs:annotation>
 
10245
                                                <xs:documentation>
 
10246
                                                The extra element may appear any number of times.
 
10247
                                                </xs:documentation>
 
10248
                                        </xs:annotation>
 
10249
                                </xs:element>
 
10250
                        </xs:sequence>
 
10251
                        <xs:attribute name="id" type="xs:ID">
 
10252
                                <xs:annotation>
 
10253
                                        <xs:documentation>
 
10254
                                        The id attribute is a text string containing the unique identifier of this element. 
 
10255
                                        This value must be unique within the instance document. Optional attribute.
 
10256
                                        </xs:documentation>
 
10257
                                </xs:annotation>
 
10258
                        </xs:attribute>
 
10259
                        <xs:attribute name="name" type="xs:NCName">
 
10260
                                <xs:annotation>
 
10261
                                        <xs:documentation>
 
10262
                                        The name attribute is the text string name of this element. Optional attribute.
 
10263
                                        </xs:documentation>
 
10264
                                </xs:annotation>
 
10265
                        </xs:attribute>
 
10266
                </xs:complexType>
 
10267
        </xs:element>
 
10268
        <xs:element name="physics_scene">
 
10269
                <xs:complexType>
 
10270
                        <xs:sequence>
 
10271
                                <xs:element ref="asset" minOccurs="0">
 
10272
                                        <xs:annotation>
 
10273
                                                <xs:documentation>
 
10274
                                                The physics_scene element may contain an asset element.
 
10275
                                                </xs:documentation>
 
10276
                                        </xs:annotation>
 
10277
                                </xs:element>
 
10278
                                <xs:element ref="instance_force_field" minOccurs="0" maxOccurs="unbounded">
 
10279
                                        <xs:annotation>
 
10280
                                                <xs:documentation>
 
10281
                                                There may be any number of instance_force_field elements.
 
10282
                                                </xs:documentation>
 
10283
                                        </xs:annotation>
 
10284
                                </xs:element>
 
10285
                                <xs:element ref="instance_physics_model" minOccurs="0" maxOccurs="unbounded">
 
10286
                                        <xs:annotation>
 
10287
                                                <xs:documentation>
 
10288
                                                There may be any number of instance_physics_model elements.
 
10289
                                                </xs:documentation>
 
10290
                                        </xs:annotation>
 
10291
                                </xs:element>
 
10292
                                <xs:element name="technique_common">
 
10293
                                        <xs:annotation>
 
10294
                                                <xs:documentation>
 
10295
                                                The technique_common element specifies the physics_scene information for the common profile 
 
10296
                                                which all COLLADA implementations need to support.
 
10297
                                                </xs:documentation>
 
10298
                                        </xs:annotation>
 
10299
                                        <xs:complexType>
 
10300
                                                <xs:sequence>
 
10301
                                                        <xs:element name="gravity" type="TargetableFloat3" minOccurs="0">
 
10302
                                                                <xs:annotation>
 
10303
                                                                        <xs:documentation>
 
10304
                                                                        The gravity vector to use for the physics_scene.
 
10305
                                                                        </xs:documentation>
 
10306
                                                                </xs:annotation>
 
10307
                                                        </xs:element>
 
10308
                                                        <xs:element name="time_step" type="TargetableFloat" minOccurs="0">
 
10309
                                                                <xs:annotation>
 
10310
                                                                        <xs:documentation>
 
10311
                                                                        The time_step for the physics_scene.
 
10312
                                                                        </xs:documentation>
 
10313
                                                                </xs:annotation>
 
10314
                                                        </xs:element>
 
10315
                                                </xs:sequence>
 
10316
                                        </xs:complexType>
 
10317
                                </xs:element>
 
10318
                                <xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
 
10319
                                        <xs:annotation>
 
10320
                                                <xs:documentation>
 
10321
                                                This element may contain any number of non-common profile techniques.
 
10322
                                                </xs:documentation>
 
10323
                                        </xs:annotation>
 
10324
                                </xs:element>
 
10325
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10326
                                        <xs:annotation>
 
10327
                                                <xs:documentation>
 
10328
                                                The extra element may appear any number of times.
 
10329
                                                </xs:documentation>
 
10330
                                        </xs:annotation>
 
10331
                                </xs:element>
 
10332
                        </xs:sequence>
 
10333
                        <xs:attribute name="id" type="xs:ID">
 
10334
                                <xs:annotation>
 
10335
                                        <xs:documentation>
 
10336
                                        The id attribute is a text string containing the unique identifier of this element. 
 
10337
                                        This value must be unique within the instance document. Optional attribute.
 
10338
                                        </xs:documentation>
 
10339
                                </xs:annotation>
 
10340
                        </xs:attribute>
 
10341
                        <xs:attribute name="name" type="xs:NCName">
 
10342
                                <xs:annotation>
 
10343
                                        <xs:documentation>
 
10344
                                        The name attribute is the text string name of this element. Optional attribute.
 
10345
                                        </xs:documentation>
 
10346
                                </xs:annotation>
 
10347
                        </xs:attribute>
 
10348
                </xs:complexType>
 
10349
        </xs:element>
 
10350
        <xs:simpleType name="SpringType">
 
10351
                <xs:restriction base="xs:NMTOKEN">
 
10352
                        <xs:enumeration value="LINEAR"/>
 
10353
                        <xs:enumeration value="ANGULAR"/>
 
10354
                </xs:restriction>
 
10355
        </xs:simpleType>
 
10356
        <xs:element name="rigid_body">
 
10357
                <xs:annotation>
 
10358
                        <xs:documentation>
 
10359
                        This element allows for describing simulated bodies that do not deform. These bodies may or may 
 
10360
                        not be connected by constraints (hinge, ball-joint etc.).  Rigid-bodies, constraints etc. are 
 
10361
                        encapsulated in physics_model elements to allow for instantiating complex models.
 
10362
                        </xs:documentation>
 
10363
                </xs:annotation>
 
10364
                <xs:complexType>
 
10365
                        <xs:sequence>
 
10366
                                <xs:element name="technique_common">
 
10367
                                        <xs:annotation>
 
10368
                                                <xs:documentation>
 
10369
                                                The technique_common element specifies the rigid_body information for the common profile which all 
 
10370
                                                COLLADA implementations need to support.
 
10371
                                                </xs:documentation>
 
10372
                                        </xs:annotation>
 
10373
                                        <xs:complexType>
 
10374
                                                <xs:sequence>
 
10375
                                                        <xs:element name="dynamic" minOccurs="0">
 
10376
                                                                <xs:annotation>
 
10377
                                                                        <xs:documentation>
 
10378
                                                                        If false, the rigid_body is not moveable
 
10379
                                                                        </xs:documentation>
 
10380
                                                                </xs:annotation>
 
10381
                                                                <xs:complexType>
 
10382
                                                                        <xs:simpleContent>
 
10383
                                                                                <xs:extension base="bool">
 
10384
                                                                                        <xs:attribute name="sid" type="xs:NCName">
 
10385
                                                                                                <xs:annotation>
 
10386
                                                                                                        <xs:documentation>
 
10387
                                                                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
10388
                                                                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
10389
                                                                                                        </xs:documentation>
 
10390
                                                                                                </xs:annotation>
 
10391
                                                                                        </xs:attribute>
 
10392
                                                                                </xs:extension>
 
10393
                                                                        </xs:simpleContent>
 
10394
                                                                </xs:complexType>
 
10395
                                                        </xs:element>
 
10396
                                                        <xs:element name="mass" type="TargetableFloat" minOccurs="0">
 
10397
                                                                <xs:annotation>
 
10398
                                                                        <xs:documentation>
 
10399
                                                                        The total mass of the rigid-body
 
10400
                                                                        </xs:documentation>
 
10401
                                                                </xs:annotation>
 
10402
                                                        </xs:element>
 
10403
                                                        <xs:element name="mass_frame" minOccurs="0">
 
10404
                                                                <xs:annotation>
 
10405
                                                                        <xs:documentation>
 
10406
                                                                        Defines the center and orientation of mass of the rigid-body relative to the local origin of the 
 
10407
                                                                        ā€œrootā€ shape.This makes the off-diagonal elements of the inertia tensor (products of inertia) all 
 
10408
                                                                        0 and allows us to just store the diagonal elements (moments of inertia).
 
10409
                                                                        </xs:documentation>
 
10410
                                                                </xs:annotation>
 
10411
                                                                <xs:complexType>
 
10412
                                                                        <xs:choice maxOccurs="unbounded">
 
10413
                                                                                <xs:element ref="translate"/>
 
10414
                                                                                <xs:element ref="rotate"/>
 
10415
                                                                        </xs:choice>
 
10416
                                                                </xs:complexType>
 
10417
                                                        </xs:element>
 
10418
                                                        <xs:element name="inertia" type="TargetableFloat3" minOccurs="0">
 
10419
                                                                <xs:annotation>
 
10420
                                                                        <xs:documentation>
 
10421
                                                                        float3 ā€“ The diagonal elements of the inertia tensor (moments of inertia), which is represented 
 
10422
                                                                        in the local frame of the center of mass. See above.
 
10423
                                                                        </xs:documentation>
 
10424
                                                                </xs:annotation>
 
10425
                                                        </xs:element>
 
10426
                                                        <xs:choice minOccurs="0">
 
10427
                                                                <xs:element ref="instance_physics_material">
 
10428
                                                                        <xs:annotation>
 
10429
                                                                                <xs:documentation>
 
10430
                                                                                References a physics_material for the rigid_body.
 
10431
                                                                                </xs:documentation>
 
10432
                                                                        </xs:annotation>
 
10433
                                                                </xs:element>
 
10434
                                                                <xs:element ref="physics_material">
 
10435
                                                                        <xs:annotation>
 
10436
                                                                                <xs:documentation>
 
10437
                                                                                Defines a physics_material for the rigid_body.
 
10438
                                                                                </xs:documentation>
 
10439
                                                                        </xs:annotation>
 
10440
                                                                </xs:element>
 
10441
                                                        </xs:choice>
 
10442
                                                        <xs:element name="shape" maxOccurs="unbounded">
 
10443
                                                                <xs:annotation>
 
10444
                                                                        <xs:documentation>
 
10445
                                                                        This element allows for describing components of a rigid_body.
 
10446
                                                                        </xs:documentation>
 
10447
                                                                </xs:annotation>
 
10448
                                                                <xs:complexType>
 
10449
                                                                        <xs:sequence>
 
10450
                                                                                <xs:element name="hollow" minOccurs="0">
 
10451
                                                                                        <xs:annotation>
 
10452
                                                                                                <xs:documentation>
 
10453
                                                                                                If true, the mass is distributed along the surface of the shape
 
10454
                                                                                                </xs:documentation>
 
10455
                                                                                        </xs:annotation>
 
10456
                                                                                        <xs:complexType>
 
10457
                                                                                                <xs:simpleContent>
 
10458
                                                                                                        <xs:extension base="bool">
 
10459
                                                                                                                <xs:attribute name="sid" type="xs:NCName">
 
10460
                                                                                                                        <xs:annotation>
 
10461
                                                                                                                                <xs:documentation>
 
10462
                                                                                                                                The sid attribute is a text string value containing the sub-identifier of this element. 
 
10463
                                                                                                                                This value must be unique within the scope of the parent element. Optional attribute.
 
10464
                                                                                                                                </xs:documentation>
 
10465
                                                                                                                        </xs:annotation>
 
10466
                                                                                                                </xs:attribute>
 
10467
                                                                                                        </xs:extension>
 
10468
                                                                                                </xs:simpleContent>
 
10469
                                                                                        </xs:complexType>
 
10470
                                                                                </xs:element>
 
10471
                                                                                <xs:element name="mass" type="TargetableFloat" minOccurs="0">
 
10472
                                                                                        <xs:annotation>
 
10473
                                                                                                <xs:documentation>
 
10474
                                                                                                The mass of the shape.
 
10475
                                                                                                </xs:documentation>
 
10476
                                                                                        </xs:annotation>
 
10477
                                                                                </xs:element>
 
10478
                                                                                <xs:element name="density" type="TargetableFloat" minOccurs="0">
 
10479
                                                                                        <xs:annotation>
 
10480
                                                                                                <xs:documentation>
 
10481
                                                                                                The density of the shape.
 
10482
                                                                                                </xs:documentation>
 
10483
                                                                                        </xs:annotation>
 
10484
                                                                                </xs:element>
 
10485
                                                                                <xs:choice minOccurs="0">
 
10486
                                                                                        <xs:element ref="instance_physics_material">
 
10487
                                                                                                <xs:annotation>
 
10488
                                                                                                        <xs:documentation>
 
10489
                                                                                                        References a physics_material for the shape.
 
10490
                                                                                                        </xs:documentation>
 
10491
                                                                                                </xs:annotation>
 
10492
                                                                                        </xs:element>
 
10493
                                                                                        <xs:element ref="physics_material">
 
10494
                                                                                                <xs:annotation>
 
10495
                                                                                                        <xs:documentation>
 
10496
                                                                                                        Defines a physics_material for the shape.
 
10497
                                                                                                        </xs:documentation>
 
10498
                                                                                                </xs:annotation>
 
10499
                                                                                        </xs:element>
 
10500
                                                                                </xs:choice>
 
10501
                                                                                <xs:choice>
 
10502
                                                                                        <xs:element ref="instance_geometry">
 
10503
                                                                                                <xs:annotation>
 
10504
                                                                                                        <xs:documentation>
 
10505
                                                                                                        Instances a geometry to use to define this shape.
 
10506
                                                                                                        </xs:documentation>
 
10507
                                                                                                </xs:annotation>
 
10508
                                                                                        </xs:element>
 
10509
                                                                                        <xs:element ref="plane">
 
10510
                                                                                                <xs:annotation>
 
10511
                                                                                                        <xs:documentation>
 
10512
                                                                                                        Defines a plane to use for this shape.
 
10513
                                                                                                        </xs:documentation>
 
10514
                                                                                                </xs:annotation>
 
10515
                                                                                        </xs:element>
 
10516
                                                                                        <xs:element ref="box">
 
10517
                                                                                                <xs:annotation>
 
10518
                                                                                                        <xs:documentation>
 
10519
                                                                                                        Defines a box to use for this shape.
 
10520
                                                                                                        </xs:documentation>
 
10521
                                                                                                </xs:annotation>
 
10522
                                                                                        </xs:element>
 
10523
                                                                                        <xs:element ref="sphere">
 
10524
                                                                                                <xs:annotation>
 
10525
                                                                                                        <xs:documentation>
 
10526
                                                                                                        Defines a sphere to use for this shape.
 
10527
                                                                                                        </xs:documentation>
 
10528
                                                                                                </xs:annotation>
 
10529
                                                                                        </xs:element>
 
10530
                                                                                        <xs:element ref="cylinder">
 
10531
                                                                                                <xs:annotation>
 
10532
                                                                                                        <xs:documentation>
 
10533
                                                                                                        Defines a cyliner to use for this shape.
 
10534
                                                                                                        </xs:documentation>
 
10535
                                                                                                </xs:annotation>
 
10536
                                                                                        </xs:element>
 
10537
                                                                                        <xs:element ref="tapered_cylinder">
 
10538
                                                                                                <xs:annotation>
 
10539
                                                                                                        <xs:documentation>
 
10540
                                                                                                        Defines a tapered_cylinder to use for this shape.
 
10541
                                                                                                        </xs:documentation>
 
10542
                                                                                                </xs:annotation>
 
10543
                                                                                        </xs:element>
 
10544
                                                                                        <xs:element ref="capsule">
 
10545
                                                                                                <xs:annotation>
 
10546
                                                                                                        <xs:documentation>
 
10547
                                                                                                        Defines a capsule to use for this shape.
 
10548
                                                                                                        </xs:documentation>
 
10549
                                                                                                </xs:annotation>
 
10550
                                                                                        </xs:element>
 
10551
                                                                                        <xs:element ref="tapered_capsule">
 
10552
                                                                                                <xs:annotation>
 
10553
                                                                                                        <xs:documentation>
 
10554
                                                                                                        Defines a tapered_capsule to use for this shape.
 
10555
                                                                                                        </xs:documentation>
 
10556
                                                                                                </xs:annotation>
 
10557
                                                                                        </xs:element>
 
10558
                                                                                </xs:choice>
 
10559
                                                                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
10560
                                                                                        <xs:element ref="translate">
 
10561
                                                                                                <xs:annotation>
 
10562
                                                                                                        <xs:documentation>
 
10563
                                                                                                        Allows a tranformation for the shape.
 
10564
                                                                                                        </xs:documentation>
 
10565
                                                                                                </xs:annotation>
 
10566
                                                                                        </xs:element>
 
10567
                                                                                        <xs:element ref="rotate">
 
10568
                                                                                                <xs:annotation>
 
10569
                                                                                                        <xs:documentation>
 
10570
                                                                                                        Allows a tranformation for the shape.
 
10571
                                                                                                        </xs:documentation>
 
10572
                                                                                                </xs:annotation>
 
10573
                                                                                        </xs:element>
 
10574
                                                                                </xs:choice>
 
10575
                                                                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10576
                                                                                        <xs:annotation>
 
10577
                                                                                                <xs:documentation>
 
10578
                                                                                                The extra element may appear any number of times.
 
10579
                                                                                                </xs:documentation>
 
10580
                                                                                        </xs:annotation>
 
10581
                                                                                </xs:element>
 
10582
                                                                        </xs:sequence>
 
10583
                                                                </xs:complexType>
 
10584
                                                        </xs:element>
 
10585
                                                </xs:sequence>
 
10586
                                        </xs:complexType>
 
10587
                                </xs:element>
 
10588
                                <xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
 
10589
                                        <xs:annotation>
 
10590
                                                <xs:documentation>
 
10591
                                                This element may contain any number of non-common profile techniques.
 
10592
                                                </xs:documentation>
 
10593
                                        </xs:annotation>
 
10594
                                </xs:element>
 
10595
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10596
                                        <xs:annotation>
 
10597
                                                <xs:documentation>
 
10598
                                                The extra element may appear any number of times.
 
10599
                                                </xs:documentation>
 
10600
                                        </xs:annotation>
 
10601
                                </xs:element>
 
10602
                        </xs:sequence>
 
10603
                        <xs:attribute name="sid" type="xs:NCName" use="required">
 
10604
                                <xs:annotation>
 
10605
                                        <xs:documentation>
 
10606
                                        The sid attribute is a text string value containing the sub-identifier of this element. This 
 
10607
                                        value must be unique within the scope of the parent element. Optional attribute.
 
10608
                                        </xs:documentation>
 
10609
                                </xs:annotation>
 
10610
                        </xs:attribute>
 
10611
                        <xs:attribute name="name" type="xs:NCName">
 
10612
                                <xs:annotation>
 
10613
                                        <xs:documentation>
 
10614
                                        The name attribute is the text string name of this element. Optional attribute.
 
10615
                                        </xs:documentation>
 
10616
                                </xs:annotation>
 
10617
                        </xs:attribute>
 
10618
                </xs:complexType>
 
10619
        </xs:element>
 
10620
        <xs:element name="rigid_constraint">
 
10621
                <xs:annotation>
 
10622
                        <xs:documentation>
 
10623
                        This element allows for connecting components, such as rigid_body into complex physics models 
 
10624
                        with moveable parts.
 
10625
                        </xs:documentation>
 
10626
                </xs:annotation>
 
10627
                <xs:complexType>
 
10628
                        <xs:sequence>
 
10629
                                <xs:element name="ref_attachment">
 
10630
                                        <xs:annotation>
 
10631
                                                <xs:documentation>
 
10632
                                                Defines the attachment (to a rigid_body or a node) to be used as the reference-frame.
 
10633
                                                </xs:documentation>
 
10634
                                        </xs:annotation>
 
10635
                                        <xs:complexType>
 
10636
                                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
10637
                                                        <xs:element ref="translate">
 
10638
                                                                <xs:annotation>
 
10639
                                                                        <xs:documentation>
 
10640
                                                                        Allows you to "position" the attachment point.
 
10641
                                                                        </xs:documentation>
 
10642
                                                                </xs:annotation>
 
10643
                                                        </xs:element>
 
10644
                                                        <xs:element ref="rotate">
 
10645
                                                                <xs:annotation>
 
10646
                                                                        <xs:documentation>
 
10647
                                                                        Allows you to "position" the attachment point.
 
10648
                                                                        </xs:documentation>
 
10649
                                                                </xs:annotation>
 
10650
                                                        </xs:element>
 
10651
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10652
                                                                <xs:annotation>
 
10653
                                                                        <xs:documentation>
 
10654
                                                                        The extra element may appear any number of times.
 
10655
                                                                        </xs:documentation>
 
10656
                                                                </xs:annotation>
 
10657
                                                        </xs:element>
 
10658
                                                </xs:choice>
 
10659
                                                <xs:attribute name="rigid_body" type="xs:anyURI">
 
10660
                                                        <xs:annotation>
 
10661
                                                                <xs:documentation>
 
10662
                                                                The ā€œrigid_bodyā€ attribute is a relative reference to a rigid-body within the same 
 
10663
                                                                physics_model.
 
10664
                                                                </xs:documentation>
 
10665
                                                        </xs:annotation>
 
10666
                                                </xs:attribute>
 
10667
                                        </xs:complexType>
 
10668
                                </xs:element>
 
10669
                                <xs:element name="attachment">
 
10670
                                        <xs:annotation>
 
10671
                                                <xs:documentation>
 
10672
                                                Defines an attachment to a rigid-body or a node.
 
10673
                                                </xs:documentation>
 
10674
                                        </xs:annotation>
 
10675
                                        <xs:complexType>
 
10676
                                                <xs:choice minOccurs="0" maxOccurs="unbounded">
 
10677
                                                        <xs:element ref="translate">
 
10678
                                                                <xs:annotation>
 
10679
                                                                        <xs:documentation>
 
10680
                                                                        Allows you to "position" the attachment point.
 
10681
                                                                        </xs:documentation>
 
10682
                                                                </xs:annotation>
 
10683
                                                        </xs:element>
 
10684
                                                        <xs:element ref="rotate">
 
10685
                                                                <xs:annotation>
 
10686
                                                                        <xs:documentation>
 
10687
                                                                        Allows you to "position" the attachment point.
 
10688
                                                                        </xs:documentation>
 
10689
                                                                </xs:annotation>
 
10690
                                                        </xs:element>
 
10691
                                                        <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10692
                                                                <xs:annotation>
 
10693
                                                                        <xs:documentation>
 
10694
                                                                        The extra element may appear any number of times.
 
10695
                                                                        </xs:documentation>
 
10696
                                                                </xs:annotation>
 
10697
                                                        </xs:element>
 
10698
                                                </xs:choice>
 
10699
                                                <xs:attribute name="rigid_body" type="xs:anyURI">
 
10700
                                                        <xs:annotation>
 
10701
                                                                <xs:documentation>
 
10702
                                                                The ā€œrigid_bodyā€ attribute is a relative reference to a rigid-body within the same physics_model.
 
10703
                                                                </xs:documentation>
 
10704
                                                        </xs:annotation>
 
10705
                                                </xs:attribute>
 
10706
                                        </xs:complexType>
 
10707
                                </xs:element>
 
10708
                                <xs:element name="technique_common">
 
10709
                                        <xs:annotation>
 
10710
                                                <xs:documentation>
 
10711
                                                The technique_common element specifies the rigid_constraint information for the common profile 
 
10712
                                                which all COLLADA implementations need to support.
 
10713
                                                </xs:documentation>
 
10714
                                        </xs:annotation>
 
10715
                                        <xs:complexType>
 
10716
                                                <xs:sequence>
 
10717
                                                        <xs:element name="enabled" default="true" minOccurs="0">
 
10718
                                                                <xs:annotation>
 
10719
                                                                        <xs:documentation>
 
10720
                                                                        If false, the constraint doesnā€™t exert any force or influence on the rigid bodies.
 
10721
                                                                        </xs:documentation>
 
10722
                                                                </xs:annotation>
 
10723
                                                                <xs:complexType>
 
10724
                                                                        <xs:simpleContent>
 
10725
                                                                                <xs:extension base="bool">
 
10726
                                                                                        <xs:attribute name="sid" type="xs:NCName">
 
10727
                                                                                                <xs:annotation>
 
10728
                                                                                                        <xs:documentation>
 
10729
                                                                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
10730
                                                                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
10731
                                                                                                        </xs:documentation>
 
10732
                                                                                                </xs:annotation>
 
10733
                                                                                        </xs:attribute>
 
10734
                                                                                </xs:extension>
 
10735
                                                                        </xs:simpleContent>
 
10736
                                                                </xs:complexType>
 
10737
                                                        </xs:element>
 
10738
                                                        <xs:element name="interpenetrate" default="false" minOccurs="0">
 
10739
                                                                <xs:annotation>
 
10740
                                                                        <xs:documentation>
 
10741
                                                                        Indicates whether the attached rigid bodies may inter-penetrate.
 
10742
                                                                        </xs:documentation>
 
10743
                                                                </xs:annotation>
 
10744
                                                                <xs:complexType>
 
10745
                                                                        <xs:simpleContent>
 
10746
                                                                                <xs:extension base="bool">
 
10747
                                                                                        <xs:attribute name="sid" type="xs:NCName">
 
10748
                                                                                                <xs:annotation>
 
10749
                                                                                                        <xs:documentation>
 
10750
                                                                                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
10751
                                                                                                        This value must be unique within the scope of the parent element. Optional attribute.
 
10752
                                                                                                        </xs:documentation>
 
10753
                                                                                                </xs:annotation>
 
10754
                                                                                        </xs:attribute>
 
10755
                                                                                </xs:extension>
 
10756
                                                                        </xs:simpleContent>
 
10757
                                                                </xs:complexType>
 
10758
                                                        </xs:element>
 
10759
                                                        <xs:element name="limits" minOccurs="0">
 
10760
                                                                <xs:annotation>
 
10761
                                                                        <xs:documentation>
 
10762
                                                                        The limits element provides a flexible way to specify the constraint limits (degrees of freedom 
 
10763
                                                                        and ranges).
 
10764
                                                                        </xs:documentation>
 
10765
                                                                </xs:annotation>
 
10766
                                                                <xs:complexType>
 
10767
                                                                        <xs:sequence>
 
10768
                                                                                <xs:element name="swing_cone_and_twist" minOccurs="0">
 
10769
                                                                                        <xs:annotation>
 
10770
                                                                                                <xs:documentation>
 
10771
                                                                                                The swing_cone_and_twist element describes the angular limits along each rotation axis in degrees.
 
10772
                                                                                                The the X and Y limits describe a ā€œswing coneā€ and the Z limits describe the ā€œtwist angleā€ range 
 
10773
                                                                                                </xs:documentation>
 
10774
                                                                                        </xs:annotation>
 
10775
                                                                                        <xs:complexType>
 
10776
                                                                                                <xs:sequence>
 
10777
                                                                                                        <xs:element name="min" type="TargetableFloat3" default="0.0 0.0 0.0" minOccurs="0">
 
10778
                                                                                                                <xs:annotation>
 
10779
                                                                                                                        <xs:documentation>
 
10780
                                                                                                                        The minimum values for the limit.
 
10781
                                                                                                                        </xs:documentation>
 
10782
                                                                                                                </xs:annotation>
 
10783
                                                                                                        </xs:element>
 
10784
                                                                                                        <xs:element name="max" type="TargetableFloat3" default="0.0 0.0 0.0" minOccurs="0">
 
10785
                                                                                                                <xs:annotation>
 
10786
                                                                                                                        <xs:documentation>
 
10787
                                                                                                                        The maximum values for the limit.
 
10788
                                                                                                                        </xs:documentation>
 
10789
                                                                                                                </xs:annotation>
 
10790
                                                                                                        </xs:element>
 
10791
                                                                                                </xs:sequence>
 
10792
                                                                                        </xs:complexType>
 
10793
                                                                                </xs:element>
 
10794
                                                                                <xs:element name="linear" minOccurs="0">
 
10795
                                                                                        <xs:annotation>
 
10796
                                                                                                <xs:documentation>
 
10797
                                                                                                The linear element describes linear (translational) limits along each axis.
 
10798
                                                                                                </xs:documentation>
 
10799
                                                                                        </xs:annotation>
 
10800
                                                                                        <xs:complexType>
 
10801
                                                                                                <xs:sequence>
 
10802
                                                                                                        <xs:element name="min" type="TargetableFloat3" default="0.0 0.0 0.0" minOccurs="0">
 
10803
                                                                                                                <xs:annotation>
 
10804
                                                                                                                        <xs:documentation>
 
10805
                                                                                                                        The minimum values for the limit.
 
10806
                                                                                                                        </xs:documentation>
 
10807
                                                                                                                </xs:annotation>
 
10808
                                                                                                        </xs:element>
 
10809
                                                                                                        <xs:element name="max" type="TargetableFloat3" default="0.0 0.0 0.0" minOccurs="0">
 
10810
                                                                                                                <xs:annotation>
 
10811
                                                                                                                        <xs:documentation>
 
10812
                                                                                                                        The maximum values for the limit.
 
10813
                                                                                                                        </xs:documentation>
 
10814
                                                                                                                </xs:annotation>
 
10815
                                                                                                        </xs:element>
 
10816
                                                                                                </xs:sequence>
 
10817
                                                                                        </xs:complexType>
 
10818
                                                                                </xs:element>
 
10819
                                                                        </xs:sequence>
 
10820
                                                                </xs:complexType>
 
10821
                                                        </xs:element>
 
10822
                                                        <xs:element name="spring" minOccurs="0">
 
10823
                                                                <xs:annotation>
 
10824
                                                                        <xs:documentation>
 
10825
                                                                        Spring, based on distance (ā€œLINEARā€) or angle (ā€œANGULARā€). 
 
10826
                                                                        </xs:documentation>
 
10827
                                                                </xs:annotation>
 
10828
                                                                <xs:complexType>
 
10829
                                                                        <xs:sequence>
 
10830
                                                                                <xs:element name="angular" minOccurs="0">
 
10831
                                                                                        <xs:annotation>
 
10832
                                                                                                <xs:documentation>
 
10833
                                                                                                The angular spring properties.
 
10834
                                                                                                </xs:documentation>
 
10835
                                                                                        </xs:annotation>
 
10836
                                                                                        <xs:complexType>
 
10837
                                                                                                <xs:sequence>
 
10838
                                                                                                        <xs:element name="stiffness" type="TargetableFloat" default="1.0" minOccurs="0">
 
10839
                                                                                                                <xs:annotation>
 
10840
                                                                                                                        <xs:documentation>
 
10841
                                                                                                                        The stiffness (also called spring coefficient) has units of force/angle in degrees. 
 
10842
                                                                                                                        </xs:documentation>
 
10843
                                                                                                                </xs:annotation>
 
10844
                                                                                                        </xs:element>
 
10845
                                                                                                        <xs:element name="damping" type="TargetableFloat" default="0.0" minOccurs="0">
 
10846
                                                                                                                <xs:annotation>
 
10847
                                                                                                                        <xs:documentation>
 
10848
                                                                                                                        The spring damping coefficient.
 
10849
                                                                                                                        </xs:documentation>
 
10850
                                                                                                                </xs:annotation>
 
10851
                                                                                                        </xs:element>
 
10852
                                                                                                        <xs:element name="target_value" type="TargetableFloat" default="0.0" minOccurs="0">
 
10853
                                                                                                                <xs:annotation>
 
10854
                                                                                                                        <xs:documentation>
 
10855
                                                                                                                        The spring's target or resting distance.
 
10856
                                                                                                                        </xs:documentation>
 
10857
                                                                                                                </xs:annotation>
 
10858
                                                                                                        </xs:element>
 
10859
                                                                                                </xs:sequence>
 
10860
                                                                                        </xs:complexType>
 
10861
                                                                                </xs:element>
 
10862
                                                                                <xs:element name="linear" minOccurs="0">
 
10863
                                                                                        <xs:annotation>
 
10864
                                                                                                <xs:documentation>
 
10865
                                                                                                The linear spring properties.
 
10866
                                                                                                </xs:documentation>
 
10867
                                                                                        </xs:annotation>
 
10868
                                                                                        <xs:complexType>
 
10869
                                                                                                <xs:sequence>
 
10870
                                                                                                        <xs:element name="stiffness" type="TargetableFloat" default="1.0" minOccurs="0">
 
10871
                                                                                                                <xs:annotation>
 
10872
                                                                                                                        <xs:documentation>
 
10873
                                                                                                                        The stiffness (also called spring coefficient) has units of force/distance. 
 
10874
                                                                                                                        </xs:documentation>
 
10875
                                                                                                                </xs:annotation>
 
10876
                                                                                                        </xs:element>
 
10877
                                                                                                        <xs:element name="damping" type="TargetableFloat" default="0.0" minOccurs="0">
 
10878
                                                                                                                <xs:annotation>
 
10879
                                                                                                                        <xs:documentation>
 
10880
                                                                                                                        The spring damping coefficient.
 
10881
                                                                                                                        </xs:documentation>
 
10882
                                                                                                                </xs:annotation>
 
10883
                                                                                                        </xs:element>
 
10884
                                                                                                        <xs:element name="target_value" type="TargetableFloat" default="0.0" minOccurs="0">
 
10885
                                                                                                                <xs:annotation>
 
10886
                                                                                                                        <xs:documentation>
 
10887
                                                                                                                        The spring's target or resting distance.
 
10888
                                                                                                                        </xs:documentation>
 
10889
                                                                                                                </xs:annotation>
 
10890
                                                                                                        </xs:element>
 
10891
                                                                                                </xs:sequence>
 
10892
                                                                                        </xs:complexType>
 
10893
                                                                                </xs:element>
 
10894
                                                                        </xs:sequence>
 
10895
                                                                </xs:complexType>
 
10896
                                                        </xs:element>
 
10897
                                                </xs:sequence>
 
10898
                                        </xs:complexType>
 
10899
                                </xs:element>
 
10900
                                <xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
 
10901
                                        <xs:annotation>
 
10902
                                                <xs:documentation>
 
10903
                                                This element may contain any number of non-common profile techniques.
 
10904
                                                </xs:documentation>
 
10905
                                        </xs:annotation>
 
10906
                                </xs:element>
 
10907
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10908
                                        <xs:annotation>
 
10909
                                                <xs:documentation>
 
10910
                                                The extra element may appear any number of times.
 
10911
                                                </xs:documentation>
 
10912
                                        </xs:annotation>
 
10913
                                </xs:element>
 
10914
                        </xs:sequence>
 
10915
                        <xs:attribute name="sid" type="xs:NCName" use="required">
 
10916
                                <xs:annotation>
 
10917
                                        <xs:documentation>
 
10918
                                        The sid attribute is a text string value containing the sub-identifier of this element. 
 
10919
                                        This value must be unique within the scope of the parent element. Optional attribute.
 
10920
                                        </xs:documentation>
 
10921
                                </xs:annotation>
 
10922
                        </xs:attribute>
 
10923
                        <xs:attribute name="name" type="xs:NCName">
 
10924
                                <xs:annotation>
 
10925
                                        <xs:documentation>
 
10926
                                        The name attribute is the text string name of this element. Optional attribute.
 
10927
                                        </xs:documentation>
 
10928
                                </xs:annotation>
 
10929
                        </xs:attribute>
 
10930
                </xs:complexType>
 
10931
        </xs:element>
 
10932
        <xs:element name="physics_model">
 
10933
                <xs:annotation>
 
10934
                        <xs:documentation>
 
10935
                        This element allows for building complex combinations of rigid-bodies and constraints that 
 
10936
                        may be instantiated multiple times.
 
10937
                        </xs:documentation>
 
10938
                </xs:annotation>
 
10939
                <xs:complexType>
 
10940
                        <xs:sequence>
 
10941
                                <xs:element ref="asset" minOccurs="0">
 
10942
                                        <xs:annotation>
 
10943
                                                <xs:documentation>
 
10944
                                                The physics_model element may contain an asset element.
 
10945
                                                </xs:documentation>
 
10946
                                        </xs:annotation>
 
10947
                                </xs:element>
 
10948
                                <xs:element ref="rigid_body" minOccurs="0" maxOccurs="unbounded">
 
10949
                                        <xs:annotation>
 
10950
                                                <xs:documentation>
 
10951
                                                The physics_model may define any number of rigid_body elements.
 
10952
                                                </xs:documentation>
 
10953
                                        </xs:annotation>
 
10954
                                </xs:element>
 
10955
                                <xs:element ref="rigid_constraint" minOccurs="0" maxOccurs="unbounded">
 
10956
                                        <xs:annotation>
 
10957
                                                <xs:documentation>
 
10958
                                                The physics_model may define any number of rigid_constraint elements.
 
10959
                                                </xs:documentation>
 
10960
                                        </xs:annotation>
 
10961
                                </xs:element>
 
10962
                                <xs:element ref="instance_physics_model" minOccurs="0" maxOccurs="unbounded">
 
10963
                                        <xs:annotation>
 
10964
                                                <xs:documentation>
 
10965
                                                The physics_model may instance any number of other physics_model elements.
 
10966
                                                </xs:documentation>
 
10967
                                        </xs:annotation>
 
10968
                                </xs:element>
 
10969
                                <xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
 
10970
                                        <xs:annotation>
 
10971
                                                <xs:documentation>
 
10972
                                                The extra element may appear any number of times.
 
10973
                                                </xs:documentation>
 
10974
                                        </xs:annotation>
 
10975
                                </xs:element>
 
10976
                        </xs:sequence>
 
10977
                        <xs:attribute name="id" type="xs:ID">
 
10978
                                <xs:annotation>
 
10979
                                        <xs:documentation>
 
10980
                                        The id attribute is a text string containing the unique identifier of this element. 
 
10981
                                        This value must be unique within the instance document. Optional attribute.
 
10982
                                        </xs:documentation>
 
10983
                                </xs:annotation>
 
10984
                        </xs:attribute>
 
10985
                        <xs:attribute name="name" type="xs:NCName">
 
10986
                                <xs:annotation>
 
10987
                                        <xs:documentation>
 
10988
                                        The name attribute is the text string name of this element. Optional attribute.
 
10989
                                        </xs:documentation>
 
10990
                                </xs:annotation>
 
10991
                        </xs:attribute>
 
10992
                </xs:complexType>
 
10993
        </xs:element>
 
10994
        <!-- COMMON Profile Types -->
 
10995
        <xs:simpleType name="Common_profile_input">
 
10996
                <xs:annotation>
 
10997
                        <xs:appinfo>constant-strings</xs:appinfo>
 
10998
                </xs:annotation>
 
10999
                <xs:restriction base="xs:NMTOKEN">
 
11000
                        <xs:enumeration value="BINORMAL"/>
 
11001
                        <xs:enumeration value="COLOR"/>
 
11002
                        <xs:enumeration value="CONTINUITY"/>
 
11003
                        <xs:enumeration value="IMAGE"/>
 
11004
                        <xs:enumeration value="IN_TANGENT"/>
 
11005
                        <xs:enumeration value="INPUT"/>
 
11006
                        <xs:enumeration value="INTERPOLATION"/>
 
11007
                        <xs:enumeration value="INV_BIND_MATRIX"/>
 
11008
                        <xs:enumeration value="JOINT"/>
 
11009
                        <xs:enumeration value="LINEAR_STEPS"/>
 
11010
                        <xs:enumeration value="MORPH_TARGET"/>
 
11011
                        <xs:enumeration value="MORPH_WEIGHT"/>
 
11012
                        <xs:enumeration value="NORMAL"/>
 
11013
                        <xs:enumeration value="OUTPUT"/>
 
11014
                        <xs:enumeration value="OUT_TANGENT"/>
 
11015
                        <xs:enumeration value="POSITION"/>
 
11016
                        <xs:enumeration value="TANGENT"/>
 
11017
                        <xs:enumeration value="TEXBINORMAL"/>
 
11018
                        <xs:enumeration value="TEXCOORD"/>
 
11019
                        <xs:enumeration value="TEXTANGENT"/>
 
11020
                        <xs:enumeration value="UV"/>
 
11021
                        <xs:enumeration value="VERTEX"/>
 
11022
                        <xs:enumeration value="WEIGHT"/>
 
11023
                </xs:restriction>
 
11024
        </xs:simpleType>
 
11025
        <xs:simpleType name="Common_profile_param">
 
11026
                <xs:annotation>
 
11027
                        <xs:appinfo>constant-strings</xs:appinfo>
 
11028
                </xs:annotation>
 
11029
                <xs:restriction base="xs:NMTOKEN">
 
11030
                        <xs:enumeration value="A"/>
 
11031
                        <xs:enumeration value="ANGLE"/>
 
11032
                        <xs:enumeration value="B"/>
 
11033
                        <xs:enumeration value="DOUBLE_SIDED"/>
 
11034
                        <xs:enumeration value="G"/>
 
11035
                        <xs:enumeration value="P"/>
 
11036
                        <xs:enumeration value="Q"/>
 
11037
                        <xs:enumeration value="R"/>
 
11038
                        <xs:enumeration value="S"/>
 
11039
                        <xs:enumeration value="T"/>
 
11040
                        <xs:enumeration value="TIME"/>
 
11041
                        <xs:enumeration value="U"/>
 
11042
                        <xs:enumeration value="V"/>
 
11043
                        <xs:enumeration value="W"/>
 
11044
                        <xs:enumeration value="X"/>
 
11045
                        <xs:enumeration value="Y"/>
 
11046
                        <xs:enumeration value="Z"/>
 
11047
                </xs:restriction>
 
11048
        </xs:simpleType>
 
11049
</xs:schema>