<xs:element name="HAnimHumanoid">
<xs:annotation>
<xs:appinfo>
<!-- provide default value for API; explicit definition still required for XML to avoid assumption errors -->
<xs:attribute name="version" type="hanimVersionValues" default="2.2"/>
<xs:element name="joints" type="MFNode" fixed="inputOutputField" default="HAnimJoint"/>
<xs:element name="segments" type="MFNode" fixed="inputOutputField" default="HAnimSegment"/>
<xs:element name="sites" type="MFNode" fixed="inputOutputField" default="HAnimSite"/>
<xs:element name="skeleton" type="MFNode" fixed="inputOutputField" default="HAnimJoint|HAnimSite"/>
<xs:element name="skin" type="MFNode" fixed="inputOutputField" default="X3DChildNode"/>
<xs:element name="skinCoord" type="SFNode" fixed="inputOutputField" default="X3DCoordinateNode"/>
<xs:element name="skinNormal" type="SFNode" fixed="inputOutputField" default="X3DNormalNode"/>
<xs:element name="viewpoints" type="MFNode" fixed="inputOutputField" default="HAnimSite">
<!-- does not contain Viewpoint -->
</xs:element>
<xs:attribute name="additionalInterface" type="xs:string" default="X3DBoundedObject"/>
<xs:attribute name="componentName" type="xs:NMTOKEN" fixed="H-Anim"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="1"/>
</xs:appinfo>
<xs:documentation source="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/hanim.html#HAnimHumanoid"/>
<!-- H-Anim specification http://www.web3d.org/documents/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Humanoid -->
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="X3DChildNode">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
<!-- child node HAnimSite USE references can appear here with containerField='viewpoints' -->
<xs:choice minOccurs="0">
<xs:annotation>
<xs:documentation>SFNode skinCoord</xs:documentation>
</xs:annotation>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
</xs:choice>
<xs:element ref="Normal" minOccurs="0">
<xs:annotation>
<xs:documentation>SFNode skinNormal</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:NMTOKEN"/>
<xs:attribute name="center" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="rotation" type="SFRotation" default="0 0 1 0"/>
<xs:attribute name="scale" type="SFVec3f" default="1 1 1">
<xs:annotation>
<xs:appinfo>
<xs:minExclusive value="0"/>
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="scaleOrientation" type="SFRotation" default="0 0 1 0"/>
<xs:attribute name="translation" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="info" type="MFString"/>
<xs:attribute name="version" type="hanimVersionValues"/>
<xs:attribute name="bboxCenter" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="bboxSize" type="boundingBoxSizeType" default="-1 -1 -1"/>
<xs:attribute name="containerField" type="xs:NMTOKEN" default="children"/>
</xs:extension>
<!-- cannot require @name field or else USE nodes fail to validate -->
<!-- TODO when specification is revised:
<xs:attribute name="authorName" type="SFString"/>
<xs:attribute name="authorEmail" type="SFString"/>
<xs:attribute name="copyright" type="SFString"/>
<xs:attribute name="creationDate" type="SFString"/>
<xs:attribute name="usageRestrictions" type="SFString"/>
<xs:attribute name="humanoidVersion" type="SFString"/>
<xs:attribute name="age" type="SFString"/>
<xs:attribute name="gender" type="SFString"/>
<xs:attribute name="height" type="SFString"/>
<xs:attribute name="weight" type="SFString"/> -->
</xs:complexContent>
</xs:complexType>
</xs:element> |