OSDN Git Service

MMD Ver7.40 対応 新スキーマ開発開始
[mikutoga/Vmd2XML.git] / src / main / resources / jp / sfjp / mikutoga / vmd / model / xml / resources / vmdxml-130609A.xsd
diff --git a/src/main/resources/jp/sfjp/mikutoga/vmd/model/xml/resources/vmdxml-130609A.xsd b/src/main/resources/jp/sfjp/mikutoga/vmd/model/xml/resources/vmdxml-130609A.xsd
new file mode 100644 (file)
index 0000000..d1109fd
--- /dev/null
@@ -0,0 +1,944 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!--
+  MikuMikuDance
+    motion-data(*.vmd) on XML
+    schema definition
+
+  License : The MIT License
+  Copyright(c) 2013 MikuToga Partners
+-->
+
+
+<!DOCTYPE xsd:schema [
+    <!ENTITY schemaVer "130609A" >
+    <!ENTITY schemaNS "http://mikutoga.sourceforge.jp/xml/ns/vmdxml/130609A" >
+]>
+
+
+<xsd:schema
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+
+    targetNamespace="&schemaNS;"
+    xmlns:tns      ="&schemaNS;"
+
+    elementFormDefault="qualified"
+    version="&schemaVer;"
+>
+
+    <xsd:annotation>
+        <xsd:documentation>
+            MikuMikuDance motion-data(*.vmd) on XML.
+            License : The MIT License
+            Copyright(c) 2013 MikuToga Partners
+        </xsd:documentation>
+    </xsd:annotation>
+
+
+    <!-- ROOT element for motion -->
+    <xsd:element name="vmdMotion" >
+        <xsd:annotation>
+            <xsd:documentation>
+                Root element.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element
+                    ref="tns:meta"
+                    minOccurs="0" maxOccurs="unbounded" />
+                <xsd:choice>
+                    <xsd:sequence>  <!-- model motion -->
+                        <xsd:element ref="tns:modelName" />
+                        <xsd:element ref="tns:boneMotionSequence" />
+                        <xsd:element ref="tns:morphSequence" />
+                        <xsd:element ref="tns:flagSequence" />
+                    </xsd:sequence>
+                    <xsd:sequence>  <!-- stage act -->
+                        <xsd:element ref="tns:cameraSequence" />
+                        <xsd:element ref="tns:luminousSequence" />
+                        <xsd:element ref="tns:shadowSequence" />
+                    </xsd:sequence>
+                </xsd:choice>
+            </xsd:sequence>
+            <xsd:attribute
+                name="version"
+                type="xsd:token"
+                use="required"
+                fixed="&schemaVer;" />
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:simpleType name="FrameNo" >
+        <xsd:annotation>
+            <xsd:documentation>
+                frame No.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:restriction base="xsd:int" >
+<!--
+            <xsd:minInclusive value="0" />
+-->
+        </xsd:restriction>
+
+    </xsd:simpleType>
+
+
+    <xsd:simpleType name="MorphFlex" >
+        <xsd:annotation>
+            <xsd:documentation>
+                morph flexible value. [0.0-1.0]
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:restriction base="xsd:float" >
+            <xsd:minInclusive value="-0.0" />
+<!--
+            <xsd:maxInclusive value="1.0" />
+-->
+        </xsd:restriction>
+
+    </xsd:simpleType>
+
+
+    <xsd:simpleType name="ProjectionAngle" >
+        <xsd:annotation>
+            <xsd:documentation>
+                screen-projection angle(degree).
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:restriction base="xsd:int" >
+<!--
+            <xsd:minInclusive value="-0" />
+            <xsd:maxInclusive value="+180" />
+-->
+        </xsd:restriction>
+
+    </xsd:simpleType>
+
+
+    <xsd:simpleType name="ColorComponent" >
+        <xsd:annotation>
+            <xsd:documentation>
+                color component value.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:restriction base="xsd:float" >
+<!--
+            <xsd:minInclusive value="-0.0" />
+            <xsd:maxInclusive value="1.0" />
+-->
+        </xsd:restriction>
+
+    </xsd:simpleType>
+
+
+    <xsd:simpleType name="DirVecComponent" >
+        <xsd:annotation>
+            <xsd:documentation>
+                direction vector component value.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:restriction base="xsd:float" >
+<!--
+            <xsd:minInclusive value="-1.0" />
+            <xsd:maxInclusive value="+1.0" />
+-->
+        </xsd:restriction>
+
+    </xsd:simpleType>
+
+
+    <xsd:simpleType name="ShadowType" >
+        <xsd:annotation>
+            <xsd:documentation>
+                type of shadow
+                + NONE   : no self-shadow
+                + MODE_1 : reduce shadow-quality suddenly at range
+                + MODE_2 : reduce shadow-quality gradually with range
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:restriction base="xsd:string" >
+            <xsd:enumeration value="NONE"   />
+            <xsd:enumeration value="MODE_1" />
+            <xsd:enumeration value="MODE_2" />
+        </xsd:restriction>
+
+    </xsd:simpleType>
+
+
+    <xsd:simpleType name="ShadowRawParam" >
+        <xsd:annotation>
+            <xsd:documentation>
+                shadow range raw value.
+
+                UI_VALUE = EFFECTIVE_RANGE * 100 ???
+                rawParam = 0.1 - (UI_VALUE / 1.0E+5)
+
+                UI_VALUE:0    => rawParam:0.1
+                UI_VALUE:8875 => rawParam:0.01125
+                UI_VALUE:9999 => rawParam:1.0E-5
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:restriction base="xsd:float" >
+<!--
+            <xsd:minInclusive value="-0.0" />
+            <xsd:maxInclusive value="0.1" />
+-->
+        </xsd:restriction>
+
+    </xsd:simpleType>
+
+
+    <xsd:simpleType name="BezPt" >
+        <xsd:annotation>
+            <xsd:documentation>
+                Bezier points coordinates value. [XY:0-127]
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:restriction base="xsd:byte" >
+            <xsd:minInclusive value=  "0" />
+            <xsd:maxInclusive value="127" />
+        </xsd:restriction>
+
+    </xsd:simpleType>
+
+
+    <xsd:complexType name="FrameNumbered" >
+        <xsd:annotation>
+            <xsd:documentation>
+                frame numbered type.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:attribute name="frame" type="tns:FrameNo" use="required" />
+
+    </xsd:complexType>
+
+
+    <xsd:complexType name="BezParam" >
+        <xsd:annotation>
+            <xsd:documentation>
+                bezier cubic curve parameters.
+                p0=(0, 0) p3=(127, 127) [implicit points]
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:attribute name="p1x" type="tns:BezPt" use="optional" />
+        <xsd:attribute name="p1y" type="tns:BezPt" use="optional" />
+        <xsd:attribute name="p2x" type="tns:BezPt" use="optional" />
+        <xsd:attribute name="p2y" type="tns:BezPt" use="optional" />
+
+    </xsd:complexType>
+
+
+    <xsd:element name="bezier" >
+        <xsd:annotation>
+            <xsd:documentation>
+                bezier cubic curve parameters.
+                p0=(0, 0) p3=(127, 127) [implicit points]
+                P1 and P2 points are required.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:restriction base="tns:BezParam" >
+                    <xsd:attribute name="p1x" type="tns:BezPt" use="required" />
+                    <xsd:attribute name="p1y" type="tns:BezPt" use="required" />
+                    <xsd:attribute name="p2x" type="tns:BezPt" use="required" />
+                    <xsd:attribute name="p2y" type="tns:BezPt" use="required" />
+                </xsd:restriction>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="defLinear" >
+        <xsd:annotation>
+            <xsd:documentation>
+                default linear bezier curve.
+                p0=(0, 0) p1=(20, 20) p2=(107, 107) p3=(127, 127)
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:restriction base="tns:BezParam" >
+                    <xsd:attribute name="p1x" use="prohibited" fixed= "20" />
+                    <xsd:attribute name="p1y" use="prohibited" fixed= "20" />
+                    <xsd:attribute name="p2x" use="prohibited" fixed="107" />
+                    <xsd:attribute name="p2y" use="prohibited" fixed="107" />
+                </xsd:restriction>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="defEaseInOut" >
+        <xsd:annotation>
+            <xsd:documentation>
+                default ease-in-out bezier curve.
+                p0=(0, 0) p1=(64, 0) p2=(64, 127) p3=(127, 127)
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:restriction base="tns:BezParam" >
+                    <xsd:attribute name="p1x" use="prohibited" fixed= "64" />
+                    <xsd:attribute name="p1y" use="prohibited" fixed=  "0" />
+                    <xsd:attribute name="p2x" use="prohibited" fixed= "64" />
+                    <xsd:attribute name="p2y" use="prohibited" fixed="127" />
+                </xsd:restriction>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:complexType name="InterpolationSingle" >
+        <xsd:annotation>
+            <xsd:documentation>
+                has single interpolation curve.
+                If omitted, it means default linear curve.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:choice minOccurs="0" >
+            <xsd:element ref="tns:bezier" />
+            <xsd:element ref="tns:defLinear" />
+            <xsd:element ref="tns:defEaseInOut" />
+        </xsd:choice>
+
+    </xsd:complexType>
+
+
+    <xsd:complexType name="PosWithInterpolation" >
+        <xsd:annotation>
+            <xsd:documentation>
+                3D-position with XYZ-interpolation curve.
+                If omitted, it means default linear curve *3 [XYZ].
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence minOccurs="0" maxOccurs="1" >
+            <xsd:choice minOccurs="3" maxOccurs="3" >
+                <xsd:element ref="tns:bezier" />
+                <xsd:element ref="tns:defLinear" />
+                <xsd:element ref="tns:defEaseInOut" />
+            </xsd:choice>
+        </xsd:sequence>
+
+        <xsd:attribute name="xPos" type="xsd:float" use="required" />
+        <xsd:attribute name="yPos" type="xsd:float" use="required" />
+        <xsd:attribute name="zPos" type="xsd:float" use="required" />
+
+    </xsd:complexType>
+
+
+    <xsd:element name="meta" >
+        <xsd:annotation>
+            <xsd:documentation>
+                Meta-information of motion.
+                Use free.
+                but, some meta-name has recommended usage.
+                + "generator" (Generator application name)
+                + "siteURL" (about motion creator)
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:attribute
+                name="name"
+                type="xsd:NCName"
+                use="required" />
+            <xsd:attribute
+                name="content"
+                type="xsd:string"
+                use="required" />
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="modelName" >
+        <xsd:annotation>
+            <xsd:documentation>
+                name of motion-model.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:attribute
+                name="name"
+                type="xsd:string"
+                use="required" />
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="boneMotionSequence" >
+        <xsd:annotation>
+            <xsd:documentation>
+                bone motion data sequence.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element
+                    ref="tns:bonePart"
+                    minOccurs="0" maxOccurs="unbounded" />
+            </xsd:sequence>
+        </xsd:complexType>
+
+        <xsd:unique name="BoneName" >
+            <xsd:selector xpath="./tns:bonePart" />
+            <xsd:field xpath="@name" />
+        </xsd:unique>
+
+    </xsd:element>
+
+
+    <xsd:element name="bonePart" >
+        <xsd:annotation>
+            <xsd:documentation>
+                bone motion data group by bone-name.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element
+                    ref="tns:boneMotion"
+                    minOccurs="0" maxOccurs="unbounded" />
+            </xsd:sequence>
+
+            <xsd:attribute
+                name="name"
+                type="xsd:string"
+                use="required" />
+        </xsd:complexType>
+
+        <xsd:unique name="BoneFrameNo" >
+            <xsd:selector xpath="./tns:boneMotion" />
+            <xsd:field xpath="@frame" />
+        </xsd:unique>
+
+    </xsd:element>
+
+
+    <xsd:element name="boneMotion" >
+        <xsd:annotation>
+            <xsd:documentation>
+                bone motion data.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:FrameNumbered" >
+                    <xsd:sequence>
+                        <xsd:element
+                            ref="tns:bonePosition"
+                            minOccurs="0" maxOccurs="1" />
+                        <xsd:choice>
+                            <xsd:element ref="tns:boneRotQuat" />
+                            <xsd:element ref="tns:boneRotEyxz" />
+                        </xsd:choice>
+                    </xsd:sequence>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="bonePosition" type="tns:PosWithInterpolation" >
+        <xsd:annotation>
+            <xsd:documentation>
+                bone position.
+            </xsd:documentation>
+        </xsd:annotation>
+
+    </xsd:element>
+
+
+    <xsd:element name="boneRotQuat" >
+        <xsd:annotation>
+            <xsd:documentation>
+                bone rotation. (Quaternion parameters)
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:InterpolationSingle" >
+                    <xsd:attribute name="qx" type="xsd:float" use="required" />
+                    <xsd:attribute name="qy" type="xsd:float" use="required" />
+                    <xsd:attribute name="qz" type="xsd:float" use="required" />
+                    <xsd:attribute name="qw" type="xsd:float" use="required" />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="boneRotEyxz" >
+        <xsd:annotation>
+            <xsd:documentation>
+                bone rotation. (YXZ-Euler rotation parameters)
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:InterpolationSingle" >
+                    <xsd:attribute name="xDeg" type="xsd:float" use="required" />
+                    <xsd:attribute name="yDeg" type="xsd:float" use="required" />
+                    <xsd:attribute name="zDeg" type="xsd:float" use="required" />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="morphSequence" >
+        <xsd:annotation>
+            <xsd:documentation>
+                morphing data sequence.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element
+                    ref="tns:morphPart"
+                    minOccurs="0" maxOccurs="unbounded" />
+            </xsd:sequence>
+        </xsd:complexType>
+
+        <xsd:unique name="MorphName" >
+            <xsd:selector xpath="./tns:morphPart" />
+            <xsd:field xpath="@name" />
+        </xsd:unique>
+
+    </xsd:element>
+
+
+    <xsd:element name="morphPart" >
+        <xsd:annotation>
+            <xsd:documentation>
+                morphing data group by morph-name.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element
+                    ref="tns:morphMotion"
+                    minOccurs="0" maxOccurs="unbounded" />
+            </xsd:sequence>
+
+            <xsd:attribute
+                name="name"
+                type="xsd:string"
+                use="required" />
+        </xsd:complexType>
+
+        <xsd:unique name="MorphFrameNo" >
+            <xsd:selector xpath="./tns:morphMotion" />
+            <xsd:field xpath="@frame" />
+        </xsd:unique>
+
+    </xsd:element>
+
+
+    <xsd:element name="morphMotion" >
+        <xsd:annotation>
+            <xsd:documentation>
+                morphing data.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:FrameNumbered" >
+                    <xsd:attribute
+                        name="flex"
+                        type="tns:MorphFlex"
+                        use="required" />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="cameraSequence" >
+        <xsd:annotation>
+            <xsd:documentation>
+                camera sequence.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element
+                    ref="tns:cameraMotion"
+                    minOccurs="0" maxOccurs="unbounded" />
+            </xsd:sequence>
+        </xsd:complexType>
+
+        <xsd:unique name="CameraFrameNo" >
+            <xsd:selector xpath="./tns:cameraMotion" />
+            <xsd:field xpath="@frame" />
+        </xsd:unique>
+
+    </xsd:element>
+
+
+    <xsd:element name="cameraMotion" >
+        <xsd:annotation>
+            <xsd:documentation>
+                camera data.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:FrameNumbered" >
+                    <xsd:sequence>
+                        <xsd:element ref="tns:cameraTarget" />
+                        <xsd:element ref="tns:cameraRotation" />
+                        <xsd:element ref="tns:cameraRange" />
+                        <xsd:element ref="tns:projection" />
+                    </xsd:sequence>
+                    <xsd:attribute
+                        name="hasPerspective"
+                        type="xsd:boolean"
+                        use="optional"
+                        default="true" />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="cameraTarget" type="tns:PosWithInterpolation" >
+        <xsd:annotation>
+            <xsd:documentation>
+                camera target.
+            </xsd:documentation>
+        </xsd:annotation>
+
+    </xsd:element>
+
+
+    <xsd:element name="cameraRotation" >
+        <xsd:annotation>
+            <xsd:documentation>
+                camera-rotation around camera-target
+                  with polar-coordinates parameters.
+
+                xRad = -radian(UI_X) [latitude]
+                yRad =  radian(UI_Y) [longitude]
+                zRad =  radian(UI_Z) [roll]
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:InterpolationSingle" >
+                    <xsd:attribute name="xRad" type="xsd:float" use="required" />
+                    <xsd:attribute name="yRad" type="xsd:float" use="required" />
+                    <xsd:attribute name="zRad" type="xsd:float" use="required" />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="cameraRange" >
+        <xsd:annotation>
+            <xsd:documentation>
+                camera range.
+                sign was negated from UI_RANGE.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:InterpolationSingle" >
+                    <xsd:attribute
+                        name="range"
+                        type="xsd:float"
+                        use="required" />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="projection" >
+        <xsd:annotation>
+            <xsd:documentation>
+                projection data.
+                vertDeg : vertical screen-projection angle by degree.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:InterpolationSingle" >
+                    <xsd:attribute
+                        name="vertDeg"
+                        type="tns:ProjectionAngle"
+                        use="required" />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="luminousSequence" >
+        <xsd:annotation>
+            <xsd:documentation>
+                luminous sequence.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element
+                    ref="tns:luminousAct"
+                    minOccurs="0" maxOccurs="unbounded" />
+            </xsd:sequence>
+        </xsd:complexType>
+
+        <xsd:unique name="LuminousFrameNo" >
+            <xsd:selector xpath="./tns:luminousAct" />
+            <xsd:field xpath="@frame" />
+        </xsd:unique>
+
+    </xsd:element>
+
+
+    <xsd:element name="luminousAct" >
+        <xsd:annotation>
+            <xsd:documentation>
+                luminous data.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:FrameNumbered" >
+                    <xsd:sequence>
+                        <xsd:element ref="tns:lumiColor" />
+                        <xsd:element ref="tns:lumiDirection" />
+                    </xsd:sequence>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="lumiColor" >
+        <xsd:annotation>
+            <xsd:documentation>
+                luminous color by RGB color space.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:attribute
+                name="rCol"
+                type="tns:ColorComponent"
+                use="required" />
+            <xsd:attribute
+                name="gCol"
+                type="tns:ColorComponent"
+                use="required" />
+            <xsd:attribute
+                name="bCol"
+                type="tns:ColorComponent"
+                use="required" />
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="lumiDirection" >
+        <xsd:annotation>
+            <xsd:documentation>
+                luminous direction by vector.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:attribute
+                name="xVec"
+                type="tns:DirVecComponent"
+                use="required" />
+            <xsd:attribute
+                name="yVec"
+                type="tns:DirVecComponent"
+                use="required" />
+            <xsd:attribute
+                name="zVec"
+                type="tns:DirVecComponent"
+                use="required" />
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="shadowSequence" >
+        <xsd:annotation>
+            <xsd:documentation>
+                shadow sequence.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element
+                    ref="tns:shadowAct"
+                    minOccurs="0" maxOccurs="unbounded" />
+            </xsd:sequence>
+        </xsd:complexType>
+
+        <xsd:unique name="ShadowFrameNo" >
+            <xsd:selector xpath="./tns:shadowAct" />
+            <xsd:field xpath="@frame" />
+        </xsd:unique>
+
+    </xsd:element>
+
+
+    <xsd:element name="shadowAct" >
+        <xsd:annotation>
+            <xsd:documentation>
+                shadow data.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:FrameNumbered" >
+                    <xsd:attribute
+                        name="mode"
+                        type="tns:ShadowType"
+                        use="required" />
+                    <xsd:attribute
+                        name="rawParam"
+                        type="tns:ShadowRawParam"
+                        use="required" />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+    <xsd:element name="flagSequence" >
+        <xsd:annotation>
+            <xsd:documentation>
+                numbered flag sequence.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element
+                    ref="tns:flagMotion"
+                    minOccurs="0" maxOccurs="unbounded" />
+            </xsd:sequence>
+        </xsd:complexType>
+
+        <xsd:unique name="FlagFrameNo" >
+            <xsd:selector xpath="./tns:flagMotion" />
+            <xsd:field xpath="@frame" />
+        </xsd:unique>
+
+    </xsd:element>
+
+
+    <xsd:element name="flagMotion" >
+        <xsd:annotation>
+            <xsd:documentation>
+                numbered motion flags.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:FrameNumbered" >
+                    <xsd:sequence>
+                        <xsd:element
+                            ref="tns:ikSwitch"
+                            minOccurs="0" maxOccurs="unbounded" />
+                    </xsd:sequence>
+                    <xsd:attribute
+                        name="showModel"
+                        type="xsd:boolean"
+                        use="required" />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+
+        <xsd:unique name="IkBoneName" >
+            <xsd:selector xpath="./tns:ikSwitch" />
+            <xsd:field xpath="@name" />
+        </xsd:unique>
+
+    </xsd:element>
+
+
+    <xsd:element name="ikSwitch" >
+        <xsd:annotation>
+            <xsd:documentation>
+                IK ON/OFF switch for each IK-Bone.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:complexType>
+            <xsd:attribute
+                name="name"
+                type="xsd:string"
+                use="required" />
+            <xsd:attribute
+                name="valid"
+                type="xsd:boolean"
+                use="required" />
+        </xsd:complexType>
+
+    </xsd:element>
+
+
+</xsd:schema>
+
+
+<!-- EOF -->