OSDN Git Service

1.201.2版リリース配布物にビルド設定が含まれていなかった件に対処
[mikutoga/Pmd2XML.git] / src / main / resources / jp / sfjp / mikutoga / pmd / model / xml / resources / pmdxml-101009.xsd
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <!--
4   MikuMikuDance
5     model-data(*.pmd) on XML
6     schema definition
7
8   License : The MIT License
9   Copyright(c) 2010 MikuToga Partners
10 -->
11
12
13 <xsd:schema
14     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
15
16     targetNamespace="http://mikutoga.sourceforge.jp/xml/ns/pmdxml/101009"
17     xmlns:tns      ="http://mikutoga.sourceforge.jp/xml/ns/pmdxml/101009"
18
19     elementFormDefault="qualified"
20     version="101009"
21 >
22
23     <xsd:annotation>
24         <xsd:documentation>
25             MikuMikuDance model-data(*.pmd) on XML.
26             License : The MIT License
27             Copyright(c) 2010 MikuToga Partners
28         </xsd:documentation>
29     </xsd:annotation>
30
31
32     <xsd:import
33         namespace="http://www.w3.org/XML/1998/namespace"
34         schemaLocation="http://www.w3.org/2001/xml.xsd" />
35
36
37     <!-- ROOT -->
38     <xsd:element name="pmdModel">
39         <xsd:annotation>
40             <xsd:documentation>
41                 Root element.
42             </xsd:documentation>
43         </xsd:annotation>
44
45         <xsd:complexType>
46             <xsd:sequence>
47                 <xsd:element ref="tns:i18nName"
48                     minOccurs="0" maxOccurs="unbounded" />
49                 <xsd:element ref="tns:description"
50                     minOccurs="1" maxOccurs="unbounded" />
51                 <xsd:element ref="tns:license"
52                     minOccurs="0" maxOccurs="unbounded" />
53                 <xsd:element ref="tns:credits"
54                     minOccurs="0" maxOccurs="unbounded" />
55                 <xsd:element ref="tns:meta"
56                     minOccurs="0" maxOccurs="unbounded" />
57                 <xsd:element ref="tns:materialList" />
58                 <xsd:element ref="tns:toonMap" />
59                 <xsd:element ref="tns:boneList" />
60                 <xsd:element ref="tns:boneGroupList" />
61                 <xsd:element ref="tns:ikChainList" />
62                 <xsd:element ref="tns:morphList" />
63                 <xsd:element ref="tns:rigidList" />
64                 <xsd:element ref="tns:rigidGroupList" />
65                 <xsd:element ref="tns:jointList" />
66                 <xsd:element ref="tns:surfaceGroupList" />
67                 <xsd:element ref="tns:vertexList" />
68             </xsd:sequence>
69             <xsd:attribute name="name" type="xsd:string" use="required" />
70             <xsd:attribute
71                 name="schemaVersion"
72                 type="xsd:string"
73                 use="required"
74                 fixed="101009" />
75         </xsd:complexType>
76
77         <xsd:unique name="ModelLang">
78             <xsd:selector xpath="./tns:i18nName" />
79             <xsd:field xpath="@lang" />
80         </xsd:unique>
81
82         <xsd:unique name="DescriptionLang">
83             <xsd:selector xpath="./tns:description" />
84             <xsd:field xpath="@lang" />
85         </xsd:unique>
86
87         <xsd:unique name="LicenseLang">
88             <xsd:selector xpath="./tns:license" />
89             <xsd:field xpath="@lang" />
90         </xsd:unique>
91
92         <xsd:unique name="CreditsLang">
93             <xsd:selector xpath="./tns:credits" />
94             <xsd:field xpath="@lang" />
95         </xsd:unique>
96
97         <xsd:keyref name="Material-SurfaceGroup" refer="tns:SurfaceGroup-Id">
98             <xsd:selector xpath="./tns:materialList/tns:material" />
99             <xsd:field xpath="@surfaceGroupIdRef" />
100         </xsd:keyref>
101
102         <xsd:keyref name="Material-Toon" refer="tns:Toon-Id">
103             <xsd:selector xpath="./tns:materialList/tns:material/tns:toon" />
104             <xsd:field xpath="@toonFileIdRef" />
105         </xsd:keyref>
106
107         <xsd:keyref name="Bone-prev" refer="tns:Bone-Id">
108             <xsd:selector xpath="./tns:boneList/tns:bone/tns:boneChain" />
109             <xsd:field xpath="@prevBoneIdRef" />
110         </xsd:keyref>
111
112         <xsd:keyref name="Bone-next" refer="tns:Bone-Id">
113             <xsd:selector xpath="./tns:boneList/tns:bone/tns:boneChain" />
114             <xsd:field xpath="@nextBoneIdRef" />
115         </xsd:keyref>
116
117         <xsd:keyref name="Bone-ik" refer="tns:Bone-Id">
118             <xsd:selector xpath="./tns:boneList/tns:bone/tns:ikBone" />
119             <xsd:field xpath="@boneIdRef" />
120         </xsd:keyref>
121
122         <xsd:keyref name="BoneGroup-Bone" refer="tns:Bone-Id">
123             <xsd:selector xpath="./tns:boneGroupList/tns:boneGroup/tns:boneGroupMember" />
124             <xsd:field xpath="@boneIdRef" />
125         </xsd:keyref>
126
127         <xsd:keyref name="IkChain-Bone" refer="tns:Bone-Id">
128             <xsd:selector xpath="./tns:ikChainList/tns:ikChain" />
129             <xsd:field xpath="@ikBoneIdRef" />
130         </xsd:keyref>
131
132         <xsd:keyref name="IkChainPart-Bone" refer="tns:Bone-Id">
133             <xsd:selector xpath="./tns:ikChainList/tns:ikChain/tns:chainOrder" />
134             <xsd:field xpath="@boneIdRef" />
135         </xsd:keyref>
136
137         <xsd:keyref name="Morph-Vertex" refer="tns:Vertex-Id">
138             <xsd:selector xpath="./tns:morphList/tns:morph/tns:morphVertex" />
139             <xsd:field xpath="@vtxIdRef" />
140         </xsd:keyref>
141
142         <xsd:keyref name="Rigid-Bone" refer="tns:Bone-Id">
143             <xsd:selector xpath="./tns:rigidList/tns:rigid/tns:linkedBone" />
144             <xsd:field xpath="@boneIdRef" />
145         </xsd:keyref>
146
147         <xsd:keyref name="Rigid-RigidGroup" refer="tns:RigidGroup-Id">
148             <xsd:selector xpath="./tns:rigidList/tns:rigid/tns:throughRigidGroup" />
149             <xsd:field xpath="@rigidGroupIdRef" />
150         </xsd:keyref>
151
152         <xsd:keyref name="RigidGroup-Rigid" refer="tns:Rigid-Id">
153             <xsd:selector xpath="./tns:rigidGroupList/tns:rigidGroup/tns:rigidGroupMember" />
154             <xsd:field xpath="@rigidIdRef" />
155         </xsd:keyref>
156
157         <xsd:keyref name="Joint-Rigid1" refer="tns:Rigid-Id">
158             <xsd:selector xpath="./tns:jointList/tns:joint/tns:jointedRigidPair" />
159             <xsd:field xpath="@rigidIdRef1" />
160         </xsd:keyref>
161
162         <xsd:keyref name="Joint-Rigid2" refer="tns:Rigid-Id">
163             <xsd:selector xpath="./tns:jointList/tns:joint/tns:jointedRigidPair" />
164             <xsd:field xpath="@rigidIdRef2" />
165         </xsd:keyref>
166
167         <xsd:keyref name="Surface-Vertex1" refer="tns:Vertex-Id">
168             <xsd:selector xpath="./tns:surfaceGroupList/tns:surfaceGroup/tns:surface" />
169             <xsd:field xpath="@vtxIdRef1" />
170         </xsd:keyref>
171
172         <xsd:keyref name="Surface-Vertex2" refer="tns:Vertex-Id">
173             <xsd:selector xpath="./tns:surfaceGroupList/tns:surfaceGroup/tns:surface" />
174             <xsd:field xpath="@vtxIdRef2" />
175         </xsd:keyref>
176
177         <xsd:keyref name="Surface-Vertex3" refer="tns:Vertex-Id">
178             <xsd:selector xpath="./tns:surfaceGroupList/tns:surfaceGroup/tns:surface" />
179             <xsd:field xpath="@vtxIdRef3" />
180         </xsd:keyref>
181
182         <xsd:keyref name="Vertex-Bone1" refer="tns:Bone-Id">
183             <xsd:selector xpath="./tns:vertexList/tns:vertex/tns:skinning" />
184             <xsd:field xpath="@boneIdRef1" />
185         </xsd:keyref>
186
187         <xsd:keyref name="Vertex-Bone2" refer="tns:Bone-Id">
188             <xsd:selector xpath="./tns:vertexList/tns:vertex/tns:skinning" />
189             <xsd:field xpath="@boneIdRef2" />
190         </xsd:keyref>
191
192     </xsd:element>
193
194
195     <xsd:simpleType name="NonJaLanguage">
196         <xsd:annotation>
197             <xsd:documentation>
198                 xsd:language except "ja" (Primary-language in MMD)
199             </xsd:documentation>
200         </xsd:annotation>
201
202         <xsd:restriction base="xsd:language">
203             <xsd:pattern value="([^jJ].*)|([jJ][^aA].*)|([jJ][aA].+)" />
204         </xsd:restriction>
205
206     </xsd:simpleType>
207
208
209     <xsd:element name="i18nName">
210         <xsd:annotation>
211             <xsd:documentation>
212                 Multilingual name.
213             </xsd:documentation>
214         </xsd:annotation>
215
216         <xsd:complexType>
217             <xsd:attribute
218                 name="lang"
219                 type="tns:NonJaLanguage"
220                 use="required" />
221             <xsd:attribute
222                 name="name"
223                 type="xsd:string"
224                 use="required" />
225         </xsd:complexType>
226
227     </xsd:element>
228
229
230     <xsd:element name="br">
231         <xsd:annotation>
232             <xsd:documentation>
233                 Break line.
234             </xsd:documentation>
235         </xsd:annotation>
236     </xsd:element>
237
238
239     <xsd:complexType name="bredContent" mixed="true">
240         <xsd:annotation>
241             <xsd:documentation>
242                 Free paragraph with break-line.
243                 Any raw-newline(CR,CRLF) will be ignored later.
244                 But, other white-spaces will be preserved.
245             </xsd:documentation>
246         </xsd:annotation>
247
248         <xsd:sequence>
249             <xsd:element ref="tns:br" minOccurs="0" maxOccurs="unbounded" />
250         </xsd:sequence>
251
252         <xsd:attribute
253             name="lang"
254             type="xsd:language"
255             use="optional"
256             default="ja" />
257         <xsd:attribute ref="xml:space" use="optional" fixed="preserve" />
258
259     </xsd:complexType>
260
261
262     <xsd:element name="description" type="tns:bredContent">
263         <xsd:annotation>
264             <xsd:documentation>
265                 Description note about model.
266             </xsd:documentation>
267         </xsd:annotation>
268     </xsd:element>
269
270
271     <xsd:element name="license" type="tns:bredContent">
272         <xsd:annotation>
273             <xsd:documentation>
274                 License term of usage.
275             </xsd:documentation>
276         </xsd:annotation>
277     </xsd:element>
278
279
280     <xsd:element name="credits" type="tns:bredContent">
281         <xsd:annotation>
282             <xsd:documentation>
283                 Credits for someone.
284             </xsd:documentation>
285         </xsd:annotation>
286     </xsd:element>
287
288
289     <xsd:element name="meta">
290         <xsd:annotation>
291             <xsd:documentation>
292                 Meta-information of model.
293                 Use free.
294                 but, some meta-name has recommended usage.
295                 + "generator" (Generator application name)
296                 + "siteURL" (Website URL)
297                 + "imageURL" (Thumbnail image URL)
298             </xsd:documentation>
299         </xsd:annotation>
300
301         <xsd:complexType>
302             <xsd:attribute
303                 name="name"
304                 type="xsd:NCName"
305                 use="required" />
306             <xsd:attribute
307                 name="content"
308                 type="xsd:string"
309                 use="required" />
310         </xsd:complexType>
311
312     </xsd:element>
313
314
315     <xsd:element name="materialList">
316         <xsd:annotation>
317             <xsd:documentation>
318                 Material list.
319                 All visual things can be tracked from here.
320             </xsd:documentation>
321         </xsd:annotation>
322
323         <xsd:complexType>
324             <xsd:sequence>
325                 <xsd:element
326                     ref="tns:material"
327                     minOccurs="0" maxOccurs="unbounded" />
328             </xsd:sequence>
329         </xsd:complexType>
330
331         <xsd:unique name="SurfaceGroupRef">
332             <xsd:selector xpath="./tns:material" />
333             <xsd:field xpath="@surfaceGroupIdRef" />
334         </xsd:unique>
335
336     </xsd:element>
337
338
339     <xsd:element name="material">
340         <xsd:annotation>
341             <xsd:documentation>
342                 Material definition.
343                 Colors, shading, any other definitions.
344             </xsd:documentation>
345         </xsd:annotation>
346
347         <xsd:complexType>
348             <xsd:sequence>
349                 <xsd:element ref="tns:i18nName" minOccurs="0" maxOccurs="unbounded"/>
350                 <xsd:element ref="tns:diffuse" />
351                 <xsd:element ref="tns:specular" />
352                 <xsd:element ref="tns:ambient" />
353                 <xsd:element ref="tns:toon" minOccurs="0" />
354                 <xsd:element ref="tns:textureFile" minOccurs="0" />
355                 <xsd:element ref="tns:spheremapFile" minOccurs="0" />
356             </xsd:sequence>
357
358             <xsd:attribute
359                 name="name"
360                 type="xsd:string"
361                 use="optional" />
362             <xsd:attribute
363                 name="showEdge"
364                 type="xsd:boolean"
365                 use="required" />
366             <xsd:attribute
367                 name="surfaceGroupIdRef"
368                 type="xsd:NCName"
369                 use="required" />
370         </xsd:complexType>
371
372     </xsd:element>
373
374
375     <xsd:simpleType name="SrgbCompo">
376         <xsd:annotation>
377             <xsd:documentation>
378                 sRGB component value. (0.0 - 1.0)
379             </xsd:documentation>
380         </xsd:annotation>
381
382         <xsd:restriction base="xsd:float">
383             <xsd:minInclusive value="0.0" />
384             <xsd:maxInclusive value="1.0" />
385         </xsd:restriction>
386
387     </xsd:simpleType>
388
389
390     <xsd:element name="diffuse">
391         <xsd:annotation>
392             <xsd:documentation>
393                 Diffuse color definition.
394             </xsd:documentation>
395         </xsd:annotation>
396
397         <xsd:complexType>
398             <xsd:attribute name="r" type="tns:SrgbCompo" use="required" />
399             <xsd:attribute name="g" type="tns:SrgbCompo" use="required" />
400             <xsd:attribute name="b" type="tns:SrgbCompo" use="required" />
401             <xsd:attribute name="alpha" type="tns:SrgbCompo" use="required" />
402         </xsd:complexType>
403
404     </xsd:element>
405
406
407     <xsd:element name="specular">
408         <xsd:annotation>
409             <xsd:documentation>
410                 Specular color definition.
411             </xsd:documentation>
412         </xsd:annotation>
413
414         <xsd:complexType>
415             <xsd:attribute name="r" type="tns:SrgbCompo" use="required" />
416             <xsd:attribute name="g" type="tns:SrgbCompo" use="required" />
417             <xsd:attribute name="b" type="tns:SrgbCompo" use="required" />
418             <xsd:attribute name="shininess" type="xsd:float" use="required" />
419         </xsd:complexType>
420
421     </xsd:element>
422
423
424     <xsd:element name="ambient">
425         <xsd:annotation>
426             <xsd:documentation>
427                 Ambient color definition.
428             </xsd:documentation>
429         </xsd:annotation>
430
431         <xsd:complexType>
432             <xsd:attribute name="r" type="tns:SrgbCompo" use="required" />
433             <xsd:attribute name="g" type="tns:SrgbCompo" use="required" />
434             <xsd:attribute name="b" type="tns:SrgbCompo" use="required" />
435         </xsd:complexType>
436
437     </xsd:element>
438
439
440     <xsd:element name="toon">
441         <xsd:annotation>
442             <xsd:documentation>
443                 Reference for Toon-image.
444             </xsd:documentation>
445         </xsd:annotation>
446
447         <xsd:complexType>
448             <xsd:attribute
449                 name="toonFileIdRef"
450                 type="xsd:NCName"
451                 use="required" />
452         </xsd:complexType>
453
454     </xsd:element>
455
456
457     <xsd:element name="textureFile">
458         <xsd:annotation>
459             <xsd:documentation>
460                 Texture file information.
461             </xsd:documentation>
462         </xsd:annotation>
463
464         <xsd:complexType>
465             <xsd:attribute
466                 name="winFileName"
467                 type="xsd:string"
468                 use="required" />
469         </xsd:complexType>
470
471     </xsd:element>
472
473
474     <xsd:element name="spheremapFile">
475         <xsd:annotation>
476             <xsd:documentation>
477                 Sphere-map file information.
478             </xsd:documentation>
479         </xsd:annotation>
480
481         <xsd:complexType>
482             <xsd:attribute
483                 name="winFileName"
484                 type="xsd:string"
485                 use="required" />
486         </xsd:complexType>
487
488     </xsd:element>
489
490
491     <xsd:element name="toonMap">
492         <xsd:annotation>
493             <xsd:documentation>
494                 Toon-file mappings.
495             </xsd:documentation>
496         </xsd:annotation>
497
498         <xsd:complexType>
499             <xsd:sequence>
500                 <xsd:element
501                     ref="tns:toonDef"
502                     minOccurs="0" maxOccurs="unbounded" />
503             </xsd:sequence>
504         </xsd:complexType>
505
506         <xsd:unique name="ToonIndex">
507             <xsd:selector xpath="./tns:toonDef" />
508             <xsd:field xpath="@index" />
509         </xsd:unique>
510
511         <xsd:key name="Toon-Id">
512             <xsd:selector xpath="./tns:toonDef" />
513             <xsd:field xpath="@toonFileId" />
514         </xsd:key>
515
516     </xsd:element>
517
518
519     <xsd:element name="toonDef">
520         <xsd:annotation>
521             <xsd:documentation>
522                 Toon-file information.
523             </xsd:documentation>
524         </xsd:annotation>
525
526         <xsd:complexType>
527             <xsd:attribute
528                 name="toonFileId"
529                 type="xsd:NCName"
530                 use="required" />
531             <xsd:attribute
532                 name="index"
533                 type="xsd:nonNegativeInteger"
534                 use="required" />
535             <xsd:attribute
536                 name="winFileName"
537                 type="xsd:string"
538                 use="required" />
539         </xsd:complexType>
540
541     </xsd:element>
542
543
544     <xsd:element name="boneList">
545         <xsd:annotation>
546             <xsd:documentation>
547                 List of bone information.
548             </xsd:documentation>
549         </xsd:annotation>
550
551         <xsd:complexType>
552             <xsd:sequence>
553                 <xsd:element ref="tns:bone" minOccurs="0" maxOccurs="unbounded" />
554             </xsd:sequence>
555         </xsd:complexType>
556
557         <xsd:key name="Bone-Id">
558             <xsd:selector xpath="./tns:bone" />
559             <xsd:field xpath="@boneId" />
560         </xsd:key>
561 <!--
562         <xsd:unique name="BoneName">
563             <xsd:selector xpath="./tns:bone" />
564             <xsd:field xpath="@name" />
565         </xsd:unique>
566 -->
567     </xsd:element>
568
569
570     <xsd:simpleType name="BoneType">
571         <xsd:annotation>
572             <xsd:documentation>
573                 bone types.
574             </xsd:documentation>
575         </xsd:annotation>
576
577         <xsd:restriction base="xsd:string">
578             <xsd:enumeration value="ROTATE" />      <!-- 回転 -->
579             <xsd:enumeration value="ROTMOV" />      <!-- 回転/移動 -->
580             <xsd:enumeration value="IK" />          <!-- IK -->
581             <xsd:enumeration value="UNKNOWN" />     <!-- 不明 -->
582             <xsd:enumeration value="UNDERIK" />     <!-- IK影響下(回転) -->
583             <xsd:enumeration value="UNDERROT" />    <!-- 回転影響下 -->
584             <xsd:enumeration value="IKCONNECTED" /> <!-- IK接続先 -->
585             <xsd:enumeration value="HIDDEN" />      <!-- 非表示 -->
586             <xsd:enumeration value="TWIST" />       <!-- 捩り -->
587             <xsd:enumeration value="LINKEDROT" />   <!-- 回転連動 -->
588         </xsd:restriction>
589
590     </xsd:simpleType>
591
592
593     <xsd:element name="bone">
594         <xsd:annotation>
595             <xsd:documentation>
596                 Bone definition.
597             </xsd:documentation>
598         </xsd:annotation>
599
600         <xsd:complexType>
601             <xsd:sequence>
602                 <xsd:element ref="tns:i18nName" minOccurs="0" maxOccurs="unbounded" />
603                 <xsd:element ref="tns:position" />
604                 <xsd:choice minOccurs="0">
605                     <xsd:element ref="tns:rotationRatio" />
606                     <xsd:element ref="tns:ikBone" />
607                 </xsd:choice>
608                 <xsd:element ref="tns:boneChain" />
609             </xsd:sequence>
610
611             <xsd:attribute name="name" type="xsd:string" use="required" />
612             <xsd:attribute name="boneId" type="xsd:NCName" use="required" />
613             <xsd:attribute name="type" type="tns:BoneType" use="required" />
614         </xsd:complexType>
615
616     </xsd:element>
617
618
619     <xsd:element name="boneChain">
620         <xsd:annotation>
621             <xsd:documentation>
622                 Relationship-info between bones.
623             </xsd:documentation>
624         </xsd:annotation>
625
626         <xsd:complexType>
627             <xsd:attribute
628                 name="prevBoneIdRef"
629                 type="xsd:NCName"
630                 use="optional" />
631             <xsd:attribute
632                 name="nextBoneIdRef"
633                 type="xsd:NCName"
634                 use="optional" />
635         </xsd:complexType>
636
637     </xsd:element>
638
639
640     <xsd:element name="rotationRatio">
641         <xsd:annotation>
642             <xsd:documentation>
643                 Rotation ratio between Linked-rotationed bones.
644             </xsd:documentation>
645         </xsd:annotation>
646
647         <xsd:complexType>
648             <xsd:attribute
649                 name="ratio"
650                 type="xsd:integer"
651                 use="required" />
652         </xsd:complexType>
653
654     </xsd:element>
655
656
657     <xsd:element name="ikBone">
658         <xsd:annotation>
659             <xsd:documentation>
660                 Reference to IK-Bone.
661             </xsd:documentation>
662         </xsd:annotation>
663
664         <xsd:complexType>
665             <xsd:attribute
666                 name="boneIdRef"
667                 type="xsd:NCName"
668                 use="required" />
669         </xsd:complexType>
670
671     </xsd:element>
672
673
674     <xsd:element name="boneGroupList">
675         <xsd:annotation>
676             <xsd:documentation>
677                 List of Bone-group.
678             </xsd:documentation>
679         </xsd:annotation>
680
681         <xsd:complexType>
682             <xsd:sequence>
683                 <xsd:element
684                     ref="tns:boneGroup"
685                     minOccurs="0" maxOccurs="unbounded" />
686             </xsd:sequence>
687         </xsd:complexType>
688
689 <!--
690         <xsd:unique name="BoneGroupName">
691             <xsd:selector xpath="./tns:boneGroup" />
692             <xsd:field xpath="@name" />
693         </xsd:unique>
694 -->
695     </xsd:element>
696
697
698     <xsd:element name="boneGroup">
699         <xsd:annotation>
700             <xsd:documentation>
701                 Bone-group.
702             </xsd:documentation>
703         </xsd:annotation>
704
705         <xsd:complexType>
706             <xsd:sequence>
707                 <xsd:element
708                     ref="tns:i18nName"
709                     minOccurs="0" maxOccurs="unbounded" />
710                 <xsd:element
711                     ref="tns:boneGroupMember"
712                     minOccurs="0" maxOccurs="unbounded" />
713             </xsd:sequence>
714             <xsd:attribute
715                 name="name"
716                 type="xsd:string"
717                 use="required" />
718         </xsd:complexType>
719
720     </xsd:element>
721
722
723     <xsd:element name="boneGroupMember">
724         <xsd:annotation>
725             <xsd:documentation>
726                 Member of Bone-group.
727             </xsd:documentation>
728         </xsd:annotation>
729
730         <xsd:complexType>
731             <xsd:attribute
732                 name="boneIdRef"
733                 type="xsd:NCName"
734                 use="required" />
735         </xsd:complexType>
736
737     </xsd:element>
738
739
740     <xsd:element name="ikChainList">
741         <xsd:annotation>
742             <xsd:documentation>
743                 List of IK chain.
744             </xsd:documentation>
745         </xsd:annotation>
746
747         <xsd:complexType>
748             <xsd:sequence>
749                 <xsd:element
750                     ref="tns:ikChain"
751                     minOccurs="0" maxOccurs="unbounded" />
752             </xsd:sequence>
753         </xsd:complexType>
754
755         <xsd:unique name="IkChainBone">
756             <xsd:selector xpath="./tns:ikChain" />
757             <xsd:field xpath="@ikBoneIdRef" />
758         </xsd:unique>
759
760     </xsd:element>
761
762
763     <xsd:element name="ikChain">
764         <xsd:annotation>
765             <xsd:documentation>
766                 IK chained bones definition.
767             </xsd:documentation>
768         </xsd:annotation>
769
770         <xsd:complexType>
771             <xsd:sequence>
772                 <xsd:element
773                     ref="tns:chainOrder"
774                     minOccurs="1" maxOccurs="unbounded" />
775             </xsd:sequence>
776
777             <xsd:attribute
778                 name="ikBoneIdRef"
779                 type="xsd:NCName"
780                 use="required" />
781             <xsd:attribute
782                 name="recursiveDepth"
783                 type="xsd:integer"
784                 use="required" />
785             <xsd:attribute
786                 name="weight"
787                 type="xsd:float"
788                 use="required" />
789         </xsd:complexType>
790
791     </xsd:element>
792
793
794     <xsd:element name="chainOrder">
795         <xsd:annotation>
796             <xsd:documentation>
797                 Part of IK chained bones.
798             </xsd:documentation>
799         </xsd:annotation>
800
801         <xsd:complexType>
802             <xsd:attribute
803                 name="boneIdRef"
804                 type="xsd:NCName"
805                 use="required" />
806         </xsd:complexType>
807
808     </xsd:element>
809
810
811     <xsd:element name="morphList">
812         <xsd:annotation>
813             <xsd:documentation>
814                 List of morphing definition.
815             </xsd:documentation>
816         </xsd:annotation>
817
818         <xsd:complexType>
819             <xsd:sequence>
820                 <xsd:element
821                     ref="tns:morph"
822                     minOccurs="0" maxOccurs="unbounded" />
823             </xsd:sequence>
824         </xsd:complexType>
825
826 <!--
827         <xsd:unique name="MorphName">
828             <xsd:selector xpath="./tns:morph" />
829             <xsd:field xpath="@name" />
830         </xsd:unique>
831 -->
832     </xsd:element>
833
834
835     <xsd:simpleType name="MorphType">
836         <xsd:annotation>
837             <xsd:documentation>
838                 Morph types.
839             </xsd:documentation>
840         </xsd:annotation>
841
842         <xsd:restriction base="xsd:string">
843             <xsd:enumeration value="EYEBROW" /> <!-- まゆ -->
844             <xsd:enumeration value="EYE" />     <!-- 目 -->
845             <xsd:enumeration value="LIP" />     <!-- リップ -->
846             <xsd:enumeration value="EXTRA" />   <!-- その他 -->
847         </xsd:restriction>
848
849     </xsd:simpleType>
850
851
852     <xsd:element name="morph">
853         <xsd:annotation>
854             <xsd:documentation>
855                 Morphing definition.
856             </xsd:documentation>
857         </xsd:annotation>
858
859         <xsd:complexType>
860             <xsd:sequence>
861                 <xsd:element
862                     ref="tns:i18nName"
863                     minOccurs="0" maxOccurs="unbounded" />
864                 <xsd:element
865                     ref="tns:morphVertex"
866                     minOccurs="0" maxOccurs="unbounded" />
867             </xsd:sequence>
868             <xsd:attribute
869                 name="name"
870                 type="xsd:string"
871                 use="required" />
872             <xsd:attribute name="type" type="tns:MorphType" use="required" />
873         </xsd:complexType>
874
875     </xsd:element>
876
877
878     <xsd:element name="morphVertex">
879         <xsd:annotation>
880             <xsd:documentation>
881                 Morphing vertex information.
882             </xsd:documentation>
883         </xsd:annotation>
884
885         <xsd:complexType>
886             <xsd:attribute name="vtxIdRef" type="xsd:NCName" use="required" />
887             <xsd:attribute name="xOff" type="xsd:float" use="required" />
888             <xsd:attribute name="yOff" type="xsd:float" use="required" />
889             <xsd:attribute name="zOff" type="xsd:float" use="required" />
890         </xsd:complexType>
891
892     </xsd:element>
893
894
895     <xsd:element name="rigidList">
896         <xsd:annotation>
897             <xsd:documentation>
898                 list of Rigid-body definition.
899             </xsd:documentation>
900         </xsd:annotation>
901
902         <xsd:complexType>
903             <xsd:sequence>
904                 <xsd:element
905                     ref="tns:rigid"
906                     minOccurs="0" maxOccurs="unbounded" />
907             </xsd:sequence>
908         </xsd:complexType>
909
910         <xsd:key name="Rigid-Id">
911             <xsd:selector xpath="./tns:rigid" />
912             <xsd:field xpath="@rigidId" />
913         </xsd:key>
914 <!--
915         <xsd:unique name="RigidName">
916             <xsd:selector xpath="./tns:rigid" />
917             <xsd:field xpath="@name" />
918         </xsd:unique>
919 -->
920     </xsd:element>
921
922
923     <xsd:simpleType name="RigidBehaviorType">
924         <xsd:annotation>
925             <xsd:documentation>
926                 Rigid bahavior types.
927             </xsd:documentation>
928         </xsd:annotation>
929
930         <xsd:restriction base="xsd:string">
931             <xsd:enumeration value="FOLLOWBONE" />    <!-- ボーン追従 -->
932             <xsd:enumeration value="ONLYDYNAMICS" />  <!-- 物理 -->
933             <xsd:enumeration value="BONEDDYNAMICS" /> <!-- 物理+ボーン -->
934         </xsd:restriction>
935
936     </xsd:simpleType>
937
938
939     <xsd:element name="rigid">
940         <xsd:annotation>
941             <xsd:documentation>
942                 Rigid-body definition.
943             </xsd:documentation>
944         </xsd:annotation>
945
946         <xsd:complexType>
947             <xsd:sequence>
948                 <xsd:element
949                     ref="tns:i18nName"
950                     minOccurs="0" maxOccurs="unbounded" />
951                 <xsd:element ref="tns:linkedBone" minOccurs="0" />
952
953                 <xsd:choice>
954                     <xsd:element ref="tns:rigidShapeSphere" />
955                     <xsd:element ref="tns:rigidShapeBox" />
956                     <xsd:element ref="tns:rigidShapeCapsule" />
957                 </xsd:choice>
958
959                 <xsd:element ref="tns:position" />
960                 <xsd:element ref="tns:radRotation" />
961                 <xsd:element ref="tns:dynamics" />
962                 <xsd:element
963                     ref="tns:throughRigidGroup"
964                     minOccurs="0" maxOccurs="unbounded" />
965             </xsd:sequence>
966
967             <xsd:attribute name="name" type="xsd:string" use="required" />
968             <xsd:attribute name="rigidId" type="xsd:NCName" use="required" />
969             <xsd:attribute
970                 name="behavior"
971                 type="tns:RigidBehaviorType"
972                 use="required" />
973         </xsd:complexType>
974
975         <xsd:unique name="ThroughRigidGroup">
976             <xsd:selector xpath="./tns:throughRigidGroup" />
977             <xsd:field xpath="@rigidGroupIdRef" />
978         </xsd:unique>
979
980     </xsd:element>
981
982
983     <xsd:element name="linkedBone">
984         <xsd:annotation>
985             <xsd:documentation>
986                 Referenced Bone from Rigid-body.
987             </xsd:documentation>
988         </xsd:annotation>
989
990         <xsd:complexType>
991             <xsd:attribute
992                 name="boneIdRef"
993                 type="xsd:NCName"
994                 use="required" />
995         </xsd:complexType>
996
997     </xsd:element>
998
999
1000     <xsd:element name="rigidShapeSphere">
1001         <xsd:annotation>
1002             <xsd:documentation>
1003                 Sphere shape of Rigid-body.
1004             </xsd:documentation>
1005         </xsd:annotation>
1006
1007         <xsd:complexType>
1008             <xsd:attribute name="radius" type="xsd:float" use="required" />
1009         </xsd:complexType>
1010
1011     </xsd:element>
1012
1013
1014     <xsd:element name="rigidShapeBox">
1015         <xsd:annotation>
1016             <xsd:documentation>
1017                 Box shape of Rigid-body.
1018             </xsd:documentation>
1019         </xsd:annotation>
1020
1021         <xsd:complexType>
1022             <xsd:attribute name="width"  type="xsd:float" use="required" />
1023             <xsd:attribute name="height" type="xsd:float" use="required" />
1024             <xsd:attribute name="depth"  type="xsd:float" use="required" />
1025         </xsd:complexType>
1026
1027     </xsd:element>
1028
1029
1030     <xsd:element name="rigidShapeCapsule">
1031         <xsd:annotation>
1032             <xsd:documentation>
1033                 Capsule shape of Rigid-body.
1034             </xsd:documentation>
1035         </xsd:annotation>
1036
1037         <xsd:complexType>
1038             <xsd:attribute name="height" type="xsd:float" use="required" />
1039             <xsd:attribute name="radius" type="xsd:float" use="required" />
1040         </xsd:complexType>
1041
1042     </xsd:element>
1043
1044
1045     <xsd:element name="radRotation">
1046         <xsd:annotation>
1047             <xsd:documentation>
1048                 Rotaion information by radian.
1049             </xsd:documentation>
1050         </xsd:annotation>
1051
1052         <xsd:complexType>
1053             <xsd:attribute name="xRad" type="xsd:float" use="required" />
1054             <xsd:attribute name="yRad" type="xsd:float" use="required" />
1055             <xsd:attribute name="zRad" type="xsd:float" use="required" />
1056         </xsd:complexType>
1057
1058     </xsd:element>
1059
1060
1061     <xsd:element name="dynamics">
1062         <xsd:annotation>
1063             <xsd:documentation>
1064                 Dynamics parameters.
1065             </xsd:documentation>
1066         </xsd:annotation>
1067
1068         <xsd:complexType>
1069             <xsd:attribute
1070                 name="mass"
1071                 type="xsd:float"
1072                 use="required" />
1073             <xsd:attribute
1074                 name="dampingPosition"
1075                 type="xsd:float"
1076                 use="required" />
1077             <xsd:attribute
1078                 name="dampingRotation"
1079                 type="xsd:float"
1080                 use="required" />
1081             <xsd:attribute
1082                 name="restitution"
1083                 type="xsd:float"
1084                 use="required" />
1085             <xsd:attribute
1086                 name="friction"
1087                 type="xsd:float"
1088                 use="required" />
1089         </xsd:complexType>
1090
1091     </xsd:element>
1092
1093
1094     <xsd:element name="throughRigidGroup">
1095         <xsd:annotation>
1096             <xsd:documentation>
1097                 Reference for non-collision rigid-group.
1098             </xsd:documentation>
1099         </xsd:annotation>
1100
1101         <xsd:complexType>
1102             <xsd:attribute
1103                 name="rigidGroupIdRef"
1104                 type="xsd:NCName"
1105                 use="required" />
1106         </xsd:complexType>
1107
1108     </xsd:element>
1109
1110
1111     <xsd:element name="rigidGroupList">
1112         <xsd:annotation>
1113             <xsd:documentation>
1114                 List of Rigid-body group.
1115             </xsd:documentation>
1116         </xsd:annotation>
1117
1118         <xsd:complexType>
1119             <xsd:sequence>
1120                 <xsd:element
1121                     ref="tns:rigidGroup"
1122                     minOccurs="0" maxOccurs="unbounded" />
1123             </xsd:sequence>
1124         </xsd:complexType>
1125
1126         <xsd:key name="RigidGroup-Id">
1127             <xsd:selector xpath="./tns:rigidGroup" />
1128             <xsd:field xpath="@rigidGroupId" />
1129         </xsd:key>
1130
1131     </xsd:element>
1132
1133
1134     <xsd:element name="rigidGroup">
1135         <xsd:annotation>
1136             <xsd:documentation>
1137                 Rigid-body group.
1138             </xsd:documentation>
1139         </xsd:annotation>
1140
1141         <xsd:complexType>
1142             <xsd:sequence>
1143                 <xsd:element
1144                     ref="tns:rigidGroupMember"
1145                     minOccurs="0" maxOccurs="unbounded" />
1146             </xsd:sequence>
1147
1148             <xsd:attribute
1149                 name="rigidGroupId"
1150                 type="xsd:NCName"
1151                 use="required" />
1152         </xsd:complexType>
1153
1154         <xsd:unique name="RigidGroupMember">
1155             <xsd:selector xpath="./tns:rigidGroupMember" />
1156             <xsd:field xpath="@rigidIdRef" />
1157         </xsd:unique>
1158
1159     </xsd:element>
1160
1161
1162     <xsd:element name="rigidGroupMember">
1163         <xsd:annotation>
1164             <xsd:documentation>
1165                 Member of Rigid-body group.
1166             </xsd:documentation>
1167         </xsd:annotation>
1168
1169         <xsd:complexType>
1170             <xsd:attribute
1171                 name="rigidIdRef"
1172                 type="xsd:NCName"
1173                 use="required" />
1174         </xsd:complexType>
1175
1176     </xsd:element>
1177
1178
1179     <xsd:element name="jointList">
1180         <xsd:annotation>
1181             <xsd:documentation>
1182                 List of joint definition.
1183             </xsd:documentation>
1184         </xsd:annotation>
1185
1186         <xsd:complexType>
1187             <xsd:sequence>
1188                 <xsd:element
1189                     ref="tns:joint"
1190                     minOccurs="0" maxOccurs="unbounded" />
1191             </xsd:sequence>
1192         </xsd:complexType>
1193
1194     </xsd:element>
1195
1196
1197     <xsd:element name="joint">
1198         <xsd:annotation>
1199             <xsd:documentation>
1200                 Joint definition.
1201             </xsd:documentation>
1202         </xsd:annotation>
1203
1204         <xsd:complexType>
1205             <xsd:sequence>
1206                 <xsd:element
1207                     ref="tns:i18nName"
1208                     minOccurs="0" maxOccurs="unbounded" />
1209                 <xsd:element ref="tns:jointedRigidPair" />
1210                 <xsd:element ref="tns:position" />
1211                 <xsd:element ref="tns:limitPosition" />
1212                 <xsd:element ref="tns:radRotation" />
1213                 <xsd:element ref="tns:limitRotation" />
1214                 <xsd:element ref="tns:elasticPosition" />
1215                 <xsd:element ref="tns:elasticRotation" />
1216             </xsd:sequence>
1217
1218             <xsd:attribute
1219                 name="name"
1220                 type="xsd:string"
1221                 use="required" />
1222         </xsd:complexType>
1223
1224 <!--
1225         <xsd:unique name="JointName">
1226             <xsd:selector xpath="./tns:joint" />
1227             <xsd:field xpath="@name" />
1228         </xsd:unique>
1229 -->
1230     </xsd:element>
1231
1232
1233     <xsd:element name="jointedRigidPair">
1234         <xsd:annotation>
1235             <xsd:documentation>
1236                 Jointed-bones information.
1237             </xsd:documentation>
1238         </xsd:annotation>
1239
1240         <xsd:complexType>
1241             <xsd:attribute
1242                 name="rigidIdRef1"
1243                 type="xsd:NCName"
1244                 use="required" />
1245             <xsd:attribute
1246                 name="rigidIdRef2"
1247                 type="xsd:NCName"
1248                 use="required" />
1249         </xsd:complexType>
1250
1251     </xsd:element>
1252
1253
1254     <xsd:element name="limitPosition">
1255         <xsd:annotation>
1256             <xsd:documentation>
1257                 Limit of Position.
1258             </xsd:documentation>
1259         </xsd:annotation>
1260
1261         <xsd:complexType>
1262             <xsd:attribute name="xFrom" type="xsd:float" use="required" />
1263             <xsd:attribute name="xTo"   type="xsd:float" use="required" />
1264             <xsd:attribute name="yFrom" type="xsd:float" use="required" />
1265             <xsd:attribute name="yTo"   type="xsd:float" use="required" />
1266             <xsd:attribute name="zFrom" type="xsd:float" use="required" />
1267             <xsd:attribute name="zTo"   type="xsd:float" use="required" />
1268         </xsd:complexType>
1269
1270     </xsd:element>
1271
1272
1273     <xsd:element name="limitRotation">
1274         <xsd:annotation>
1275             <xsd:documentation>
1276                 Limit of Rotation.
1277             </xsd:documentation>
1278         </xsd:annotation>
1279
1280         <xsd:complexType>
1281             <xsd:attribute name="xFrom" type="xsd:float" use="required" />
1282             <xsd:attribute name="xTo"   type="xsd:float" use="required" />
1283             <xsd:attribute name="yFrom" type="xsd:float" use="required" />
1284             <xsd:attribute name="yTo"   type="xsd:float" use="required" />
1285             <xsd:attribute name="zFrom" type="xsd:float" use="required" />
1286             <xsd:attribute name="zTo"   type="xsd:float" use="required" />
1287         </xsd:complexType>
1288
1289     </xsd:element>
1290
1291
1292     <xsd:element name="elasticPosition">
1293         <xsd:annotation>
1294             <xsd:documentation>
1295                 Elastic position of joint.
1296             </xsd:documentation>
1297         </xsd:annotation>
1298
1299         <xsd:complexType>
1300             <xsd:attribute name="x" type="xsd:float" use="required" />
1301             <xsd:attribute name="y" type="xsd:float" use="required" />
1302             <xsd:attribute name="z" type="xsd:float" use="required" />
1303         </xsd:complexType>
1304
1305     </xsd:element>
1306
1307
1308     <xsd:element name="elasticRotation">
1309         <xsd:annotation>
1310             <xsd:documentation>
1311                 Elastic rotation of joint by degree.
1312             </xsd:documentation>
1313         </xsd:annotation>
1314
1315         <xsd:complexType>
1316             <xsd:attribute name="xDeg" type="xsd:float" use="required" />
1317             <xsd:attribute name="yDeg" type="xsd:float" use="required" />
1318             <xsd:attribute name="zDeg" type="xsd:float" use="required" />
1319         </xsd:complexType>
1320
1321     </xsd:element>
1322
1323
1324     <xsd:element name="surfaceGroupList">
1325         <xsd:annotation>
1326             <xsd:documentation>
1327                 List of surface group.
1328             </xsd:documentation>
1329         </xsd:annotation>
1330
1331         <xsd:complexType>
1332             <xsd:sequence>
1333                 <xsd:element
1334                     ref="tns:surfaceGroup"
1335                     minOccurs="0" maxOccurs="unbounded" />
1336             </xsd:sequence>
1337         </xsd:complexType>
1338
1339         <xsd:key name="SurfaceGroup-Id">
1340             <xsd:selector xpath="./tns:surfaceGroup" />
1341             <xsd:field xpath="@surfaceGroupId" />
1342         </xsd:key>
1343
1344     </xsd:element>
1345
1346
1347     <xsd:element name="surfaceGroup">
1348         <xsd:annotation>
1349             <xsd:documentation>
1350                 Surface group.
1351             </xsd:documentation>
1352         </xsd:annotation>
1353
1354         <xsd:complexType>
1355             <xsd:sequence>
1356                 <xsd:element ref="tns:surface" minOccurs="0" maxOccurs="unbounded" />
1357             </xsd:sequence>
1358
1359             <xsd:attribute
1360                 name="surfaceGroupId"
1361                 type="xsd:NCName"
1362                 use="required" />
1363         </xsd:complexType>
1364
1365     </xsd:element>
1366
1367
1368     <xsd:element name="surface">
1369         <xsd:annotation>
1370             <xsd:documentation>
1371                 Each surface with Triangle.
1372             </xsd:documentation>
1373         </xsd:annotation>
1374
1375         <xsd:complexType>
1376             <xsd:attribute
1377                 name="vtxIdRef1"
1378                 type="xsd:NCName"
1379                 use="required" />
1380             <xsd:attribute
1381                 name="vtxIdRef2"
1382                 type="xsd:NCName"
1383                 use="required" />
1384             <xsd:attribute
1385                 name="vtxIdRef3"
1386                 type="xsd:NCName"
1387                 use="required" />
1388         </xsd:complexType>
1389
1390     </xsd:element>
1391
1392
1393     <xsd:element name="vertexList">
1394         <xsd:annotation>
1395             <xsd:documentation>
1396                 List of vertex.
1397             </xsd:documentation>
1398         </xsd:annotation>
1399
1400         <xsd:complexType>
1401             <xsd:sequence>
1402                 <xsd:element ref="tns:vertex" minOccurs="0" maxOccurs="unbounded" />
1403             </xsd:sequence>
1404         </xsd:complexType>
1405
1406         <xsd:key name="Vertex-Id">
1407             <xsd:selector xpath="./tns:vertex" />
1408             <xsd:field xpath="@vtxId" />
1409         </xsd:key>
1410
1411     </xsd:element>
1412
1413
1414     <xsd:element name="vertex">
1415         <xsd:annotation>
1416             <xsd:documentation>
1417                 Vertex definition.
1418             </xsd:documentation>
1419         </xsd:annotation>
1420
1421         <xsd:complexType>
1422             <xsd:sequence>
1423                 <xsd:element ref="tns:position" />
1424                 <xsd:element ref="tns:normal" />
1425                 <xsd:element ref="tns:uvMap" />
1426                 <xsd:element ref="tns:skinning" />
1427             </xsd:sequence>
1428
1429             <xsd:attribute
1430                 name="vtxId"
1431                 type="xsd:NCName"
1432                 use="required" />
1433             <xsd:attribute
1434                 name="showEdge"
1435                 type="xsd:boolean"
1436                 use="required" />
1437         </xsd:complexType>
1438
1439     </xsd:element>
1440
1441
1442     <xsd:element name="position">
1443         <xsd:annotation>
1444             <xsd:documentation>
1445                 Position definition.
1446             </xsd:documentation>
1447         </xsd:annotation>
1448
1449         <xsd:complexType>
1450             <xsd:attribute name="x" type="xsd:float" use="required" />
1451             <xsd:attribute name="y" type="xsd:float" use="required" />
1452             <xsd:attribute name="z" type="xsd:float" use="required" />
1453         </xsd:complexType>
1454
1455     </xsd:element>
1456
1457
1458     <xsd:element name="normal">
1459         <xsd:annotation>
1460             <xsd:documentation>
1461                 Normal vector definition.
1462             </xsd:documentation>
1463         </xsd:annotation>
1464
1465         <xsd:complexType>
1466             <xsd:attribute name="x" type="xsd:float" use="required" />
1467             <xsd:attribute name="y" type="xsd:float" use="required" />
1468             <xsd:attribute name="z" type="xsd:float" use="required" />
1469         </xsd:complexType>
1470
1471     </xsd:element>
1472
1473
1474     <xsd:element name="uvMap">
1475         <xsd:annotation>
1476             <xsd:documentation>
1477                 UV-mapping information.
1478             </xsd:documentation>
1479         </xsd:annotation>
1480
1481         <xsd:complexType>
1482             <xsd:attribute name="u" type="xsd:float" use="required" />
1483             <xsd:attribute name="v" type="xsd:float" use="required" />
1484         </xsd:complexType>
1485
1486     </xsd:element>
1487
1488
1489     <xsd:element name="skinning">
1490         <xsd:annotation>
1491             <xsd:documentation>
1492                 Skinning definition from vertex to bone.
1493             </xsd:documentation>
1494         </xsd:annotation>
1495
1496         <xsd:complexType>
1497             <xsd:attribute name="boneIdRef1" type="xsd:NCName" use="required" />
1498             <xsd:attribute name="boneIdRef2" type="xsd:NCName" use="required" />
1499             <xsd:attribute
1500                 name="weightBalance"
1501                 type="xsd:nonNegativeInteger"
1502                 use="required" />
1503         </xsd:complexType>
1504
1505     </xsd:element>
1506
1507
1508 </xsd:schema>
1509
1510
1511 <!-- EOF -->