Extensible 3D (X3D) encodings
Part 1: Extensible Markup Language (XML) encoding

Annex B

(informative)

XML schema

--- X3D separator bar ---

cube B.1 Table of contents and introduction

B.1.1 Table of contents

This annex provides a detailed description of the grammar for each syntactic element in this part of ISO/IEC 19776. Table B.1 lists the topics in this clause:

Table B.1 — Table of contents

B.1 Table of contents and introduction
B.1.1 Table of contents
B.1.2 Introduction
B.2 x3d-3.0.xsd
B.3 x3d-3.0-Web3dExtensionsPublic.xsd
B.4 x3d-3.0-Web3dExtensionsPrivate.xsd

B.1.2 Introduction

An XML schema defines the syntax of an XML tagset using an XML-based grammar as specified in 2.[SCHEMA].

The X3D Schema has sufficient expressive power to:

The X3D DTD does not have sufficient expressive power to selectively validate content according to the defined profiles.

B.2 x3d-3.0.xsd

The base X3D schema file is depicted below:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" 
version="3.0.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!--======================================================================-->
<!-- Public and private schema extension mechanisms -->
<xs:include schemaLocation="x3d-3.0-Web3dExtensionsPublic.xsd"/>
<xs:include schemaLocation="x3d-3.0-Web3dExtensionsPrivate.xsd"/>
<!--======================================================================-->
<xs:annotation>
<xs:appinfo>XML Schema for the Extensible 3D (X3D) Graphics Specification tagset</xs:appinfo>
<xs:documentation><![CDATA[
=============================================================================
 
X3D Specification Schema: http://www.web3d.org/specifications/x3d-3.0.xsd
 
Schema extensions: 
http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPublic.xsd
http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPrivate.xsd
 
Web3D extensions update URL: 
http://www.web3d.org/x3d/content/x3d-3.0-Web3dExtensionsPublic.xsd
 
Revised: 16 September 2004
 
Design summary:
- Schemas define XML tagsets in depth using a native-XML format.
- Schemas are an alternative to Document Type Definitions (DTDs).
- This X3D Schema matches the functionality of the X3D DTD and
provides significant further capabilities, including strong type
checking of both node and attribute values.
- An XSLT stylesheet can be applied to this schema to autogenerate
source code for the Scene Authoring Interface (SAI), documentation
of node lists, etc.
 
Design patterns:
- X3D nodes implement X3D node types and are represented by XML elements.
- X3D non-node fields are represented by XML attributes using field types.
- X3D field types are represented by XML Schema (xsd) simpleTypes.
- XML Schema list types are used to augment XML Schema simple types, to
create arrays of X3D base types (integerList etc).
- X3D node types (X3DGroupingNode etc.) are represented by Schema complexTypes.
- X3D node types match the interface hierarchy, capture strong typing of node,
relationships, and collect common attributes shared by nodes. These
features provide functional consistency between scene graph content and the
Scene Authoring Interface (SAI) application programming interface (API).
- XML Schema xs:group element definitions provide child-node content models,
since complexTypes can't be used as references to unnamed element children.
 
=============================================================================
]]></xs:documentation>
</xs:annotation>
<!--======================================================================-->
<!--Several pattern possibilities for urls/URNs are conceivable, perhaps a type 
definition or regex pattern is preferable.-->
<xs:simpleType name="BoundingBoxSize">
<xs:annotation>
<xs:appinfo>X3DBoundedObject indicates that bounding box values can be provided 
(or computed) for this node and any children. Bounding box values approximate 
the volume of a containing box in the current coordinate system. Bounding box 
values can optionally be provided to (or calculated by) 3D browsers. Bounding 
box values are hints that can improve performance by allowing browsers to 
inexpensively cull geometry, thus avoiding the computational cost of trying to 
drawing shapes when they are outside of the current view. BoundingBoxSize 
dimensions are non-negative values. Default value (-1 -1 -1) indicates that no 
bounding box size has been computed.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/group.html#Boundingboxes"/>
</xs:annotation>
<xs:restriction base="SFVec3f"/>
</xs:simpleType>
<!--======================================================================-->
<!-- Simple types are used as Field types for X3D attributes. -->
<!-- Special-case range restrictions on regular base types also provided. -->
<xs:simpleType name="SFBool">
<xs:annotation>
<xs:appinfo>
SFBool is a logical type with possible values (true|false) to match the XML 
boolean type.
Hint: X3D SFBool values are lower case (true|false) in order to maintain
compatibility with other XML documents.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFBool"/>
</xs:annotation>
<xs:restriction base="xs:boolean"/>
</xs:simpleType>
<xs:simpleType name="MFBool">
<xs:annotation>
<xs:appinfo>
MFBool is an array of Boolean values.
Type MFBool was previously undefined in the VRML 97 Specification, but 
nevertheless needed for event utilities and scripting.
Example use: MFBool is useful for defining a series of behavior states using a 
BooleanSequencer prototype.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFBool"/>
</xs:annotation>
<xs:list itemType="xs:boolean"/>
</xs:simpleType>
<xs:simpleType name="SFColor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFColor"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern 
value="((((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))))?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MFColor">
<xs:annotation>
<xs:appinfo>Array values are optionally separated by commas.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFColor"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern 
value="((((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+)))( 
)?(,)?( )?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFColorRGBA">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFColorRGBA"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern 
value="((((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))))?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MFColorRGBA">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFColorRGBA"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern 
value="((((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+)))( 
)?(,)?( )?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFDouble">
<xs:annotation>
<xs:appinfo>SFDouble is a double-precision floating-point type. Array values are 
optionally separated by commas.
See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations Of 
Single-Precision for rationale.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFDouble"/>
</xs:annotation>
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="MFDouble">
<xs:annotation>
<xs:appinfo>MFDouble is an array of Double values, i.e. a double-precision 
floating-point array type.
See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations Of 
Single-Precision for rationale.
SFDouble/MFDouble are analagous to SFDouble/MFDouble. Array values are 
optionally separated by commas.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFDouble"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern 
value="(((\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?)?( )?(,)?( 
)?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFFloat">
<xs:annotation>
<xs:appinfo>SFFloat is a single-precision floating-point type.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFFloat"/>
</xs:annotation>
<xs:restriction base="xs:float"/>
</xs:simpleType>
<!-- SFFloatNonNegative and SFFloatPositive no longer needed
<xs:simpleType name="SFFloatNonNegative">
<xs:annotation>
<xs:appinfo>SFFloat is a single-precision floating-point type.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFFloat"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="((\+)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?)?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFFloatPositive">
<xs:annotation>
<xs:appinfo>SFFloat is a single-precision floating-point type.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFFloat"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern 
value="((\+)?(0\.(0)*[1-9][0-9]*|([1-9]([0-9]*)?)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?))?"/>
</xs:restriction>
</xs:simpleType> -->
<xs:simpleType name="MFFloat">
<xs:annotation>
<xs:appinfo>MFFloat is an array of SFFloat values, i.e. a single-precision 
floating-point array type. Array values are optionally separated by 
commas.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFFloat"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern 
value="(((\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?)?( )?(,)?( 
)?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFImage">
<xs:annotation>
<xs:appinfo>The SFImage field specifies a single uncompressed 2-dimensional 
pixel image. SFImage fields contain three integers representing the width, 
height and number of components in the image, followed by width×height 
hexadecimal or integer values representing the pixels in the image.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFImage"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="4"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MFImage">
<xs:annotation>
<xs:appinfo>MFImage is an array of SFImage values.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFImage"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="4"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFInt32">
<xs:annotation>
<xs:appinfo>An SFInt32 field specifies one 32-bit signed integer.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFInt32"/>
</xs:annotation>
<xs:restriction base="xs:integer"/>
</xs:simpleType>
<xs:simpleType name="MFInt32">
<xs:annotation>
<xs:appinfo>An MFInt32 field defines an array of 32-bit signed integers. Array 
values are optionally separated by commas.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/technicalinfo/specifications/vrml97/part1/fieldsRef.html#SFInt32"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="((\+|\-)?(0|[1-9][0-9]*)?( )?(,)?( )?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFRotation">
<xs:annotation>
<xs:appinfo>SFRotation is an axis-angle 4-tuple, indicating X-Y-Z direction plus 
angle orientation about that axis. The first three values specify a normalized 
rotation axis vector about which the rotation takes place. (Thus the first three 
values must be within the range [-1..+1] in order to represent a normalized unit 
vector. Problem: scientific notation allows leading digit.) The fourth value 
specifies the amount of right-handed rotation about that axis in 
radians.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFRotation"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern 
value="((\+|\-)?(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(\+|\-)?(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(\+|\-)?(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?)?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MFRotation">
<xs:annotation>
<xs:appinfo>MFRotation is an array of SFRotation values. Array values are 
optionally separated by commas.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFRotation"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern 
value="((\+|\-)?(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(\+|\-)?(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(\+|\-)?(((\.[0-9]+|0(\.[0-9]*)?)((E|e)(\+|\-)?[0-9]+)?)|(1(\.[0]*)?((E|e)\-[0-9]+)?)|([1-9](\.[0-9]*)((E|e)\-[0-9]+))) 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?( )?(,)?( )?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFString">
<xs:annotation>
<xs:appinfo>SFString defines a single string encoded with the UTF-8 universal 
character set.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFString"/>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="MFString">
<xs:annotation>
<xs:appinfo>MFString is an array of SFString values, each "quoted" and separated 
by whitespace. Array values are optionally separated by commas.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFString"/>
</xs:annotation>
<xs:list itemType="xs:string"/>
</xs:simpleType>
<xs:simpleType name="SFTime">
<xs:annotation>
<xs:appinfo>The SFTime field specifies a single time value. Time values are 
specified as a double-precision floating point number. Typically, SFTime fields 
represent the number of seconds since Jan 1, 1970, 00:00:00 GMT.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFTime"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern 
value="((-1(.(0)*)?)|((\+)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?))?"/>
</xs:restriction>
<!-- base type xs:time not usable due to different nomenclatures for time 
values. -->
</xs:simpleType>
<xs:simpleType name="MFTime">
<xs:annotation>
<xs:appinfo>MFTime is an array of SFTime values. Array values are optionally 
separated by commas.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFTime"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern 
value="((-1(.(0)*)?|(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?( )?(,)?( 
)?)*)?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFVec2d">
<xs:annotation>
<xs:appinfo>SFVec2d is a 2-tuple pair of SFDouble values. Array values are 
optionally separated by commas.
Hint: SFVec2d can be used to specify a 2D double-precision 
coordinate.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFVec2d"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="((\+|\-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)((E|e)(\+|\-)?[0-9]+)?)?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MFVec2d">
<xs:annotation>
<xs:appinfo>MFVec2d is an array of SFVec2d values. Array values are optionally 
separated by commas.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFVec2d"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="((\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?( )?(,)?( )?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFVec2f">
<xs:annotation>
<xs:appinfo>SFVec2f is a 2-tuple pair of SFFloat values.
Hint: SFVec2f can be used to specify a 2D single-precision 
coordinate.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFVec2f"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="((\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?)?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MFVec2f">
<xs:annotation>
<xs:appinfo>MFVec2f is an array of SFVec2f values. Array values are optionally 
separated by commas.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFVec2f"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="((\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?( )?(,)?( )?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFVec3d">
<xs:annotation>
<xs:appinfo>SFVec3d is a 3-tuple triplet of SFDouble values.
See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations Of 
Single-Precision.
Hint: SFVec3d can be used to specify a georeferenced 3D coordinate.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFVec3d"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="((\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?)?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MFVec3d">
<xs:annotation>
<xs:appinfo>MFVec3d is an array of SFVec3d values. Array values are optionally 
separated by commas.
See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations Of 
Single-Precision.
Hint: MFVec3d can be used to specify a list of georeferenced 3D 
coordinates.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFVec3d"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="((\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?( )?(,)?( )?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SFVec3f">
<xs:annotation>
<xs:appinfo>SFVec3f is a 3-tuple triplet of SFFloat values.
Hint: SFVec3f can be used to specify a 3D coordinate or a 3D scale 
value.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFVec3f"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="((\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?)?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MFVec3f">
<xs:annotation>
<xs:appinfo>MFVec3f is an array of SFVec3f values. Array values are optionally 
separated by commas.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html#SFVec3f"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="((\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)? 
(\+|\-)?(0|[1-9][0-9]*)?(\.[0-9]*)?((E|e)(\+|\-)?[0-9]+)?( )?(,)?( )?)*"/>
</xs:restriction>
</xs:simpleType>
<!--======================================================================-->
<!--Enumerations-->
<!--Profiles correspond primarily to subsets of nodes. Some nodes in Interchange 
profile include fields that are ignored unless Immersive or Full profile is 
active.-->
<xs:simpleType name="accessTypeNames">
<xs:annotation>
<xs:appinfo> accessTypeNames are allowed enumeration values for accessType. 
Prior names in VRML 97 were eventIn, eventOut, field, exposedField 
respectively.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#FieldSemantics"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="initializeOnly"/>
<xs:enumeration value="inputOnly"/>
<xs:enumeration value="outputOnly"/>
<xs:enumeration value="inputOutput"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ArcClose2dTypeValues">
<xs:annotation>
<xs:appinfo> ArcClose2dTypeValues are allowed enumeration values for ArcClose2D 
closureType.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html#ArcClose2D"/>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="PIE"/>
<xs:enumeration value="CHORD"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="componentNames">
<xs:annotation>
<xs:appinfo> profileName enumeration constants are used to identify the profile 
for each scene-graph node, and also used by X3D tag to identify the profile of a 
contained Scene.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#Profiles"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Core">
<xs:annotation>
<xs:appinfo>Core component is provided as the basis for custom 
componentization.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="DIS">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/dis.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="EnvironmentalEffects">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/enveffects.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="EnvironmentalSensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/envsensor.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="EventUtilities">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/utils.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Geometry2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Geometry3D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry3D.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Geospatial">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Grouping">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/group.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="H-Anim">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/hanim.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Interpolation">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/interp.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="KeyDeviceSensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/keyboard.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Lighting">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/lighting.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Navigation">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/navigation.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Networking">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/networking.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="NURBS">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="PointingDeviceSensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/pointingsensor.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Rendering">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Scripting">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/scripting.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Shape">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Sound">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/sound.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Text">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/text.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Texturing">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Time">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/time.html"/>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fieldTypeName">
<xs:annotation>
<xs:appinfo> fieldTypeName contains the names of all X3DField 
types.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fieldsDef.html"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="SFBool"/>
<xs:enumeration value="MFBool"/>
<xs:enumeration value="SFColor"/>
<xs:enumeration value="MFColor"/>
<xs:enumeration value="SFColorRGBA"/>
<xs:enumeration value="MFColorRGBA"/>
<xs:enumeration value="SFDouble"/>
<xs:enumeration value="MFDouble"/>
<xs:enumeration value="SFFloat"/>
<xs:enumeration value="MFFloat"/>
<xs:enumeration value="SFImage"/>
<xs:enumeration value="MFImage"/>
<xs:enumeration value="SFInt32"/>
<xs:enumeration value="SFNode"/>
<xs:enumeration value="MFNode"/>
<xs:enumeration value="MFInt32"/>
<xs:enumeration value="SFRotation"/>
<xs:enumeration value="MFRotation"/>
<xs:enumeration value="SFString"/>
<xs:enumeration value="MFString"/>
<xs:enumeration value="SFTime"/>
<xs:enumeration value="MFTime"/>
<xs:enumeration value="SFVec2d"/>
<xs:enumeration value="MFVec2d"/>
<xs:enumeration value="SFVec2f"/>
<xs:enumeration value="MFVec2f"/>
<xs:enumeration value="SFVec3d"/>
<xs:enumeration value="MFVec3d"/>
<xs:enumeration value="SFVec3f"/>
<xs:enumeration value="MFVec3f"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fontStyleValues">
<xs:annotation>
<xs:appinfo>fogTypeValues are allowed enumeration values for Fog node fogType 
attribute.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/text.html#Fontfamilyandstyle"/>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="PLAIN"/>
<xs:enumeration value="BOLD"/>
<xs:enumeration value="ITALIC"/>
<xs:enumeration value="BOLDITALIC"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fogTypeValues">
<xs:annotation>
<xs:appinfo>fogTypeValues are allowed enumeration values for Fog node fogType 
attribute.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/enveffects.html#Fog"/>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="LINEAR"/>
<xs:enumeration value="EXPONENTIAL"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="metaDirectionValues">
<xs:annotation>
<xs:appinfo> metaDirectionValues are allowed enumeration values for meta tag 
direction attribute.</xs:appinfo>
<xs:documentation/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="rtl">
<xs:annotation>
<xs:appinfo>right-to-left</xs:appinfo>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="ltr">
<xs:annotation>
<xs:appinfo>left-to-right</xs:appinfo>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="networkModeValues">
<xs:annotation>
<xs:appinfo> networkModeValues are allowed enumeration values for DIS field 
networkMode.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/dis.html#CommonDISfields"/>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="standAlone"/>
<xs:enumeration value="networkReader"/>
<xs:enumeration value="networkWriter"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="profileNames">
<xs:annotation>
<xs:appinfo> profileName enumeration constants are used to identify the profile 
for each scene-graph node, and also used by X3D tag to identify the profile of a 
contained Scene.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#Profiles"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Core">
<xs:annotation>
<xs:appinfo>Core Profile includes no nodes and is provided as the basis for 
custom componentization.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/coreprofile.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Interchange">
<xs:annotation>
<xs:appinfo> Interchange Profile equals the minimum subset of nodes needed to 
author lightweight compelling content.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/interchange.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Interactive">
<xs:annotation>
<xs:appinfo> Interactive Profile adds interaction nodes (Anchor, KeySensor) to 
the minimum subset of nodes needed to author lightweight compelling 
content.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/interactive.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Immersive">
<xs:annotation>
<xs:appinfo> Immersive Profile equals all of the nodes in the VRML 97 
Specification, plus various X3D node additions including KeySensor, StringSensor 
and Scene.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/immersive.html"/>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="MPEG4Interactive"/>
<xs:enumeration value="Full">
<xs:annotation>
<xs:appinfo> The Full Profile corresponds to all Immersive X3D nodes plus all 
approved/implemented extensions. Full may get renamed Integrated.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/fullProfile.html"/>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<!--table of field names with corresponding accessType constraints-->
<xs:simpleType name="initializeOnlyAccessTypes">
<xs:annotation>
<xs:appinfo> Table of fields having accessType initializeOnly.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#FieldSemantics"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="bboxCenter"/>
<xs:enumeration value="bboxSize"/>
<xs:enumeration value="beginCap"/>
<xs:enumeration value="bottom"/>
<xs:enumeration value="bottomRadius"/>
<xs:enumeration value="ccw"/>
<xs:enumeration value="child1Url"/>
<xs:enumeration value="child2Url"/>
<xs:enumeration value="child3Url"/>
<xs:enumeration value="child4Url"/>
<xs:enumeration value="closureType"/>
<xs:enumeration value="colorIndex"/>
<xs:enumeration value="colorPerVertex"/>
<xs:enumeration value="convex"/>
<xs:enumeration value="coordIndex"/>
<xs:enumeration value="creaseAngle"/>
<xs:enumeration value="crossSection"/>
<xs:enumeration value="directOutput"/>
<xs:enumeration value="endCap"/>
<xs:enumeration value="endAngle"/>
<xs:enumeration value="geoGridOrigin"/>
<xs:enumeration value="geoSystem"/>
<xs:enumeration value="height"/>
<xs:enumeration value="horizontal"/>
<xs:enumeration value="info"/>
<xs:enumeration value="innerRadius"/>
<xs:enumeration value="justify"/>
<xs:enumeration value="knot"/>
<xs:enumeration value="language"/>
<xs:enumeration value="leftToRight"/>
<xs:enumeration value="lineSegments"/>
<xs:enumeration value="mustEvaluate"/>
<xs:enumeration value="normalIndex"/>
<xs:enumeration value="normalPerVertex"/>
<xs:enumeration value="order"/>
<xs:enumeration value="outerRadius"/>
<xs:enumeration value="orientation"/>
<xs:enumeration value="points"/>
<xs:enumeration value="radius"/>
<xs:enumeration value="range"/>
<xs:enumeration value="repeatS"/>
<xs:enumeration value="repeatT"/>
<xs:enumeration value="rootUrl"/>
<xs:enumeration value="rotateYUp"/>
<xs:enumeration value="rtpHeaderExpected"/>
<xs:enumeration value="side"/>
<xs:enumeration value="size"/>
<xs:enumeration value="solid"/>
<xs:enumeration value="spacing"/>
<xs:enumeration value="spatialize"/>
<xs:enumeration value="spine"/>
<xs:enumeration value="startAngle"/>
<xs:enumeration value="style"/>
<xs:enumeration value="title"/>
<xs:enumeration value="top"/>
<xs:enumeration value="topToBottom"/>
<xs:enumeration value="xDimension"/>
<xs:enumeration value="xSpacing"/>
<xs:enumeration value="zDimension"/>
<xs:enumeration value="zSpacing"/>
<xs:enumeration value="uDimension"/>
<xs:enumeration value="vDimension"/>
<xs:enumeration value="wDimension"/>
<xs:enumeration value="uKnot"/>
<xs:enumeration value="vKnot"/>
<xs:enumeration value="wKnot"/>
<xs:enumeration value="uOrder"/>
<xs:enumeration value="vOrder"/>
<xs:enumeration value="wOrder"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="inputOnlyAccessTypes">
<xs:annotation>
<xs:appinfo> Table of fields having accessType inputOnly.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#FieldSemantics"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="set_articulationParameterValue0"/>
<xs:enumeration value="set_articulationParameterValue1"/>
<xs:enumeration value="set_articulationParameterValue2"/>
<xs:enumeration value="set_articulationParameterValue3"/>
<xs:enumeration value="set_articulationParameterValue4"/>
<xs:enumeration value="set_articulationParameterValue5"/>
<xs:enumeration value="set_articulationParameterValue6"/>
<xs:enumeration value="set_articulationParameterValue7"/>
<xs:enumeration value="set_boolean"/>
<xs:enumeration value="set_bind"/>
<xs:enumeration value="set_colorIndex"/>
<xs:enumeration value="set_coordIndex"/>
<xs:enumeration value="set_crossSection"/>
<xs:enumeration value="set_fraction"/>
<xs:enumeration value="set_height"/>
<xs:enumeration value="set_normalIndex"/>
<xs:enumeration value="set_orientation"/>
<xs:enumeration value="set_position"/>
<xs:enumeration value="set_scale"/>
<xs:enumeration value="set_spine"/>
<xs:enumeration value="set_texCoordIndex"/>
<xs:enumeration value="set_triggerTime"/>
<xs:enumeration value="set_yScale"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="outputOnlyAccessTypes">
<xs:annotation>
<xs:appinfo> Table of fields having accessType outputOnly.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#FieldSemantics"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="actionKeyPress"/>
<xs:enumeration value="actionKeyRelease"/>
<xs:enumeration value="altKey"/>
<xs:enumeration value="articulationParameterValue0_changed"/>
<xs:enumeration value="articulationParameterValue1_changed"/>
<xs:enumeration value="articulationParameterValue2_changed"/>
<xs:enumeration value="articulationParameterValue3_changed"/>
<xs:enumeration value="articulationParameterValue4_changed"/>
<xs:enumeration value="articulationParameterValue5_changed"/>
<xs:enumeration value="articulationParameterValue6_changed"/>
<xs:enumeration value="articulationParameterValue7_changed"/>
<xs:enumeration value="bindTime"/>
<xs:enumeration value="centerOfRotation_changed"/>
<xs:enumeration value="collideTime"/>
<xs:enumeration value="controlKey"/>
<xs:enumeration value="cycleTime"/>
<xs:enumeration value="detonateTime"/>
<xs:enumeration value="duration_changed"/>
<xs:enumeration value="elapsedTime"/>
<xs:enumeration value="enteredText"/>
<xs:enumeration value="enterTime"/>
<xs:enumeration value="exitTime"/>
<xs:enumeration value="finalText"/>
<xs:enumeration value="firedTime"/>
<xs:enumeration value="fraction_changed"/>
<xs:enumeration value="geovalue_changed"/>
<xs:enumeration value="hitGeoCoord_changed"/>
<xs:enumeration value="hitNormal_changed"/>
<xs:enumeration value="hitPoint_changed"/>
<xs:enumeration value="hitTexCoord_changed"/>
<xs:enumeration value="inputFalse"/>
<xs:enumeration value="inputNegate"/>
<xs:enumeration value="inputTrue"/>
<xs:enumeration value="isActive"/>
<xs:enumeration value="isBound"/>
<xs:enumeration value="isCollided"/>
<xs:enumeration value="isDetonated"/>
<xs:enumeration value="isLoaded"/>
<xs:enumeration value="isOver"/>
<xs:enumeration value="isPaused"/>
<xs:enumeration value="isNetworkReader"/>
<xs:enumeration value="isNetworkWriter"/>
<xs:enumeration value="isRtpHeaderHeard"/>
<xs:enumeration value="isStandAlone"/>
<xs:enumeration value="keyPress"/>
<xs:enumeration value="keyRelease"/>
<xs:enumeration value="loadTime"/>
<xs:enumeration value="next"/>
<xs:enumeration value="normal_changed"/>
<xs:enumeration value="orientation_changed"/>
<xs:enumeration value="position_changed"/>
<xs:enumeration value="previous"/>
<xs:enumeration value="progress"/>
<xs:enumeration value="rotation_changed"/>
<xs:enumeration value="shiftKey"/>
<xs:enumeration value="time"/>
<xs:enumeration value="timestamp"/>
<xs:enumeration value="touchTime"/>
<xs:enumeration value="trackPoint_changed"/>
<xs:enumeration value="translation_changed"/>
<xs:enumeration value="triggerTime"/>
<xs:enumeration value="triggerTrue"/>
<xs:enumeration value="triggerValue"/>
<xs:enumeration value="value_changed"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="inputOutputAccessTypes">
<xs:annotation>
<xs:appinfo> Table of fields having accessType inputOutput.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#FieldSemantics"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="address"/>
<xs:enumeration value="alpha"/>
<xs:enumeration value="ambientIntensity"/>
<xs:enumeration value="antennaLocation"/>
<xs:enumeration value="applicationID"/>
<xs:enumeration value="relativeAntennaLocation"/>
<xs:enumeration value="antennaPatternType"/>
<xs:enumeration value="antennaPatternLength"/>
<xs:enumeration value="articulationParameterArray"/>
<xs:enumeration value="articulationParameterChangeIndicatorArray"/>
<xs:enumeration value="articulationParameterCount"/>
<xs:enumeration value="articulationParameterDesignatorArray"/>
<xs:enumeration value="articulationParameterIdPartAttachedArray"/>
<xs:enumeration value="articulationParameterTypeArray"/>
<xs:enumeration value="attenuation"/>
<xs:enumeration value="autoOffset"/>
<xs:enumeration value="avatarSize"/>
<xs:enumeration value="axisOfRotation"/>
<xs:enumeration value="backUrl"/>
<xs:enumeration value="bottomUrl"/>
<xs:enumeration value="beamWidth"/>
<xs:enumeration value="bottomUrl"/>
<xs:enumeration value="center"/>
<xs:enumeration value="centerOfMass"/>
<xs:enumeration value="centerOfRotation"/>
<xs:enumeration value="color"/>
<xs:enumeration value="controlPoint"/>
<xs:enumeration value="coord"/>
<xs:enumeration value="cryptoSystem"/>
<xs:enumeration value="cryptoKeyID"/>
<xs:enumeration value="cutOffAngle"/>
<xs:enumeration value="cycleInterval"/>
<xs:enumeration value="data"/>
<xs:enumeration value="dataLength"/>
<xs:enumeration value="deadReckoning"/>
<xs:enumeration value="deletionAllowed"/>
<xs:enumeration value="description"/>
<xs:enumeration value="detonationLocation"/>
<xs:enumeration value="detonationRelativeLocation"/>
<xs:enumeration value="detonationResult"/>
<xs:enumeration value="dimension"/>
<xs:enumeration value="diffuseColor"/>
<xs:enumeration value="direction"/>
<xs:enumeration value="diskAngle"/>
<xs:enumeration value="displacers"/>
<xs:enumeration value="displacements"/>
<xs:enumeration value="emissiveColor"/>
<xs:enumeration value="enabled"/>
<xs:enumeration value="encodingScheme"/>
<xs:enumeration value="entityID"/>
<xs:enumeration value="entityKind"/>
<xs:enumeration value="entityDomain"/>
<xs:enumeration value="entityCountry"/>
<xs:enumeration value="entityCategory"/>
<xs:enumeration value="entitySubCategory"/>
<xs:enumeration value="entitySpecific"/>
<xs:enumeration value="entityExtra"/>
<xs:enumeration value="eventApplicationID"/>
<xs:enumeration value="eventEntityID"/>
<xs:enumeration value="eventSiteID"/>
<xs:enumeration value="eventNumber"/>
<xs:enumeration value="family"/>
<xs:enumeration value="fanCount"/>
<xs:enumeration value="fieldOfView"/>
<xs:enumeration value="fillStyle"/>
<xs:enumeration value="fired1"/>
<xs:enumeration value="fired2"/>
<xs:enumeration value="fireMissionIndex"/>
<xs:enumeration value="firingRange"/>
<xs:enumeration value="firingRate"/>
<xs:enumeration value="fogType"/>
<xs:enumeration value="forceID"/>
<xs:enumeration value="frequency"/>
<xs:enumeration value="frontUrl"/>
<xs:enumeration value="function"/>
<xs:enumeration value="fuse"/>
<xs:enumeration value="geoCoords"/>
<xs:enumeration value="groundColor"/>
<xs:enumeration value="groundAngle"/>
<xs:enumeration value="hatchColor"/>
<xs:enumeration value="hatchStyle"/>
<xs:enumeration value="headlight"/>
<xs:enumeration value="image"/>
<xs:enumeration value="info"/>
<xs:enumeration value="inputSource"/>
<xs:enumeration value="intensity"/>
<xs:enumeration value="isFilled"/>
<xs:enumeration value="key"/>
<xs:enumeration value="jump"/>
<xs:enumeration value="keyValue"/>
<xs:enumeration value="keyWeight"/>
<xs:enumeration value="leftUrl"/>
<xs:enumeration value="length"/>
<xs:enumeration value="lengthOfModulationParameters"/>
<xs:enumeration value="limitOrientation"/>
<xs:enumeration value="llimit"/>
<xs:enumeration value="linearAcceleration"/>
<xs:enumeration value="linearVelocity"/>
<xs:enumeration value="lineStyle"/>
<xs:enumeration value="lineWidthScaleFactor"/>
<xs:enumeration value="load"/>
<xs:enumeration value="location"/>
<xs:enumeration value="loop"/>
<xs:enumeration value="marking"/>
<xs:enumeration value="mass"/>
<xs:enumeration value="maxAngle"/>
<xs:enumeration value="maxBack"/>
<xs:enumeration value="maxExtent"/>
<xs:enumeration value="maxFront"/>
<xs:enumeration value="maxPosition"/>
<xs:enumeration value="minAngle"/>
<xs:enumeration value="minBack"/>
<xs:enumeration value="minFront"/>
<xs:enumeration value="minPosition"/>
<xs:enumeration value="mode"/>
<xs:enumeration value="modulationTypeSpreadSpectrum"/>
<xs:enumeration value="modulationTypeMajor"/>
<xs:enumeration value="modulationTypeDetail"/>
<xs:enumeration value="modulationTypeSystem"/>
<xs:enumeration value="momentsOfInertia"/>
<xs:enumeration value="multicastRelayHost"/>
<xs:enumeration value="multicastRelayPort"/>
<xs:enumeration value="munitionEndPoint"/>
<xs:enumeration value="munitionStartPoint"/>
<xs:enumeration value="munitionApplicationID"/>
<xs:enumeration value="munitionEntityID"/>
<xs:enumeration value="munitionSiteID"/>
<xs:enumeration value="munitionQuantity"/>
<xs:enumeration value="name"/>
<xs:enumeration value="navType"/>
<xs:enumeration value="networkMode"/>
<xs:enumeration value="normal"/>
<xs:enumeration value="offset"/>
<xs:enumeration value="on"/>
<xs:enumeration value="pauseTime"/>
<xs:enumeration value="parameter"/>
<xs:enumeration value="pitch"/>
<xs:enumeration value="point"/>
<xs:enumeration value="port"/>
<xs:enumeration value="position"/>
<xs:enumeration value="power"/>
<xs:enumeration value="priority"/>
<xs:enumeration value="radioID"/>
<xs:enumeration value="radioEntityTypeKind"/>
<xs:enumeration value="radioEntityTypeDomain"/>
<xs:enumeration value="radioEntityTypeCountry"/>
<xs:enumeration value="radioEntityTypeCategory"/>
<xs:enumeration value="radioEntityTypeNomenclature"/>
<xs:enumeration value="radioEntityTypeNomenclatureVersion"/>
<xs:enumeration value="readInterval"/>
<xs:enumeration value="receivedPower"/>
<xs:enumeration value="receiverState"/>
<xs:enumeration value="resumeTime"/>
<xs:enumeration value="rightUrl"/>
<xs:enumeration value="rotation"/>
<xs:enumeration value="sampleRate"/>
<xs:enumeration value="samples"/>
<xs:enumeration value="scale"/>
<xs:enumeration value="scaleOrientation"/>
<xs:enumeration value="shininess"/>
<xs:enumeration value="siteID"/>
<xs:enumeration value="skinCoordIndex"/>
<xs:enumeration value="skinCoordWeight"/>
<xs:enumeration value="skyColor"/>
<xs:enumeration value="skyAngle"/>
<xs:enumeration value="source"/>
<xs:enumeration value="specularColor"/>
<xs:enumeration value="speed"/>
<xs:enumeration value="startTime"/>
<xs:enumeration value="stiffness"/>
<xs:enumeration value="stopTime"/>
<xs:enumeration value="string"/>
<xs:enumeration value="stripCount"/>
<xs:enumeration value="summary"/>
<xs:enumeration value="tdlType"/>
<xs:enumeration value="tessellation"/>
<xs:enumeration value="tessellationScale"/>
<xs:enumeration value="texCoord"/>
<xs:enumeration value="timeOut"/>
<xs:enumeration value="toggle"/>
<xs:enumeration value="topUrl"/>
<xs:enumeration value="translation"/>
<xs:enumeration value="transmitFrequencyBandwidth"/>
<xs:enumeration value="transmitState"/>
<xs:enumeration value="transmitterApplicationID"/>
<xs:enumeration value="transmitterEntityID"/>
<xs:enumeration value="transmitterRadioID"/>
<xs:enumeration value="transmitterSiteID"/>
<xs:enumeration value="transparent"/>
<xs:enumeration value="transparency"/>
<xs:enumeration value="type"/>
<xs:enumeration value="ulimit"/>
<xs:enumeration value="url"/>
<xs:enumeration value="uTessellation"/>
<xs:enumeration value="version"/>
<xs:enumeration value="vector"/>
<xs:enumeration value="vertices"/>
<xs:enumeration value="visibilityLimit"/>
<xs:enumeration value="visibilityRange"/>
<xs:enumeration value="vTessellation"/>
<xs:enumeration value="warhead"/>
<xs:enumeration value="weight"/>
<xs:enumeration value="whichChoice"/>
<xs:enumeration value="whichGeometry"/>
<xs:enumeration value="writeInterval"/>
</xs:restriction>
</xs:simpleType>
<!-- special case accessType tests, excerpted from 
BuildSpecificationInterfacesFromSchema.xslt
<xsl:when test="($nodeName='GeoCoordinate') and ($attributeName='point') or
($nodeName='Extrusion') and ($attributeName='scale')">
<xsl:text>[init]</xsl:text>
</xsl:when>
<xsl:when test="(($nodeName='HAnimDisplacer') and ($attributeName='coordIndex')) 
or
(($nodeName='GeoOrigin') and ($attributeName='geoSystem')) or
(($nodeName='NurbsPositionInterpolator') and ($attributeName='order')) or
(($nodeName='Viewpoint') and ($attributeName='orientation')) or
( contains($nodeName,'Light') and ($attributeName='radius')) or
(($nodeName='ProximitySensor' or $nodeName='VisibilitySensor') and 
($attributeName='size'))">
<xsl:text>[in, out]</xsl:text>
</xsl:when>
-->
<!--Wrapper tags: these already appear to be handled implicitly by element names 
and ContainedNodeLabel in content model.
enumeration vrmlNodeFieldNames is perhaps useful as a convenience enumeration 
showing what element tags are ignorable.
Probably won't be needed, commented out:
<xs:simpleType name="vrmlNodeFieldNames">
<xs:annotation>
<xs:appinfo></xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/content/ComposingSceneGraphAlternatives.html"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="appearance"/>
<xs:enumeration value="children"/>
<xs:enumeration value="choice"/>
<xs:enumeration value="color"/>
<xs:enumeration value="coord"/>
<xs:enumeration value="fontStyle"/>
<xs:enumeration value="geometry"/>
<xs:enumeration value="level"/>
<xs:enumeration value="material"/>
<xs:enumeration value="normal"/>
<xs:enumeration value="proxy"/>
<xs:enumeration value="source"/>
<xs:enumeration value="texCoord"/>
<xs:enumeration value="texture"/>
<xs:enumeration value="textureTransform"/>
</xs:restriction>
</xs:simpleType>
-->
<!--======================================================================-->
<!--Attribute groups-->
<!--DEF and USE are node-naming attributes common to all instantiable nodes. 
This attributeGroup is defined for all top-level node types in the node 
interface hierarchy.-->
<xs:attributeGroup name="DEF_USE">
<xs:annotation>
<xs:documentation 
source="http://www.web3d.org/spec_editors/abstract/Part01/concepts.html#DEFL_USESemantics"/>
</xs:annotation>
<xs:attribute name="DEF" type="xs:ID">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/spec_editors/abstract/Part01/concepts.html#DEFL_USESemantics"/>
</xs:annotation>
</xs:attribute>
<xs:attribute name="USE" type="xs:IDREF">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/spec_editors/abstract/Part01/concepts.html#DEFL_USESemantics"/>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="globalAttributes">
<!-- Tool bug: attribute name="class" has to be commented for xjc (jaxb) to 
build API classes -->
<xs:attribute name="class" type="xs:NMTOKEN">
<xs:annotation>
<xs:appinfo/>
<xs:documentation/>
</xs:annotation>
</xs:attribute>
<!-- containerField not included here in globalAttributes since default values 
are different for various node types -->
</xs:attributeGroup>
<!--======================================================================-->
<!--Complex types-->
<!--Should all abstract node types be made final? This issue pertains to 
run-time extensibility modifications to the SAI API...-->
<xs:complexType name="X3DAppearanceNode" abstract="false" mixed="false">
<xs:annotation>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#X3DAppearanceNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DNode">
<xs:group ref="AppearanceChildContentModel"/>
<xs:attribute name="containerField" type="xs:NMTOKEN" default="appearance"/>
</xs:extension>
<!-- <xs:group ref="AppearanceChildContentModelLoose"/> -->
<!-- <xs:sequence>
</xs:sequence> -->
<!-- minOccurs="1" maxOccurs="1" -->
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DAppearanceChildNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> Nodes of this type can be used as child nodes for 
Appearance.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#X3DAppearanceChildNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DNode"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DArrayField" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo>X3DArrayField is equivalent to MF (Multiple Field) simple non-Node 
types in the VRML 97 Specification.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/technicalinfo/specifications/vrml97/part1/fieldsRef.html#5.1.2"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DField"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DBackgroundNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/enveffects.html#X3DBackgroundNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DBindableNode">
<xs:attribute name="groundAngle" type="MFFloat"/>
<xs:attribute name="groundColor" type="MFColor"/>
<xs:attribute name="skyAngle" type="MFFloat"/>
<xs:attribute name="skyColor" type="MFColor" default="0 0 0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DBindableNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> Bindable nodes implement the binding stack, so that only one of 
each node type is active at a given time.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html#X3DBindableNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="set_bind" type="SFBool"/>
<xs:attribute name="bindTime" type="SFTime"/>
<xs:attribute name="isBound" type="SFBool"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DBoundedObject" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> X3DBoundedObject indicates that bounding box values can
be provided (or computed) for this node and any children.
Bounding box values approximate the volume of a containing box
in the current coordinate system. Bounding box values can
optionally be provided to (or calculated by) 3D browsers.
Bounding box values are hints that can improve performance by
allowing browsers to inexpensively cull geometry, thus avoiding
the computational cost of trying to drawing shapes when they are
outside of the current view.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/group.html#X3DBoundedObject"/>
</xs:annotation>
<xs:attribute name="bboxCenter" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="bboxSize" type="BoundingBoxSize" default="-1 -1 -1"/>
</xs:complexType>
<xs:complexType name="X3DChildNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> A node that implements X3DChildNode is one of the legal children 
for a X3DGroupingNode parent.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html#X3DChildNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DNode">
<xs:attribute name="containerField" type="xs:NMTOKEN" default="children"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DColorNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#X3DColorNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometricPropertyNode">
<xs:attribute name="containerField" type="xs:NMTOKEN" default="color"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DComposedGeometryNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> Composed geometry nodes produce renderable geometry, can contain 
Color Coordinate Normal TextureCoordinate, and are contained by a Shape 
node.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#X3DComposedGeometryNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:group ref="ColorCoordinateNormalTexCoordContentModel" minOccurs="0"/>
<xs:attribute name="ccw" type="SFBool" default="true"/>
<xs:attribute name="colorPerVertex" type="SFBool" default="true"/>
<xs:attribute name="normalPerVertex" type="SFBool" default="true"/>
<xs:attribute name="solid" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DCoordinateNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#X3DCoordinateNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometricPropertyNode">
<xs:attribute name="containerField" type="xs:NMTOKEN" default="coord"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DDragSensorNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/pointingsensor.html#X3DDragSensorNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DPointingDeviceSensorNode">
<xs:attribute name="autoOffset" type="SFBool" default="true"/>
<xs:attribute name="trackPoint_changed" type="SFVec3f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DEnvironmentalSensorNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/envsensor.html#X3DEnvironmentalSensorNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DSensorNode">
<xs:attribute name="center" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="size" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="enterTime" type="SFTime"/>
<xs:attribute name="exitTime" type="SFTime"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DField" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo>X3DField is equivalent to SF (Single Field) simple non-Node types in 
the VRML 97 Specification.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/technicalinfo/specifications/vrml97/part1/fieldsRef.html#5.1.2"/>
</xs:annotation>
</xs:complexType>
<xs:complexType name="X3DFontStyleNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/text.html#X3DFontStyleNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DNode">
<xs:attribute name="containerField" type="xs:NMTOKEN" default="fontStyle"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DGeometryNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> Geometry nodes produce renderable geometry and are contained by a 
Shape node.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#X3DGeometryNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DNode">
<xs:attribute name="containerField" type="xs:NMTOKEN" default="geometry"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DGeometricPropertyNode" abstract="true" mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DNode"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DGroupingNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> Grouping nodes can contain other nodes as children, thus making up 
the backbone of a scene graph.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/technicalinfo/specifications/vrml97/part1/concepts.html#4.6.5"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:group ref="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
<xs:attribute name="otherInterfaces" type="xs:string" fixed="X3DBoundedObject"/>
<xs:attribute name="bboxCenter" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="bboxSize" type="BoundingBoxSize" default="-1 -1 -1"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DHumanoidNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> X3DHumanoidNode enables extensibility for the Humanoid 
node.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/hanim.html#HAnimHumanoid"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DInfoNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/group.html#X3DInfoNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DInterpolatorNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> Interpolator nodes are designed for linear keyframed animation.
Interpolators are driven by an input key ranging [0..1] and produce 
corresponding piecewise-linear output functions.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/interp.html#X3DInterpolatorNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="set_fraction" type="SFFloat"/>
<xs:attribute name="key" type="MFFloat"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DKeyDeviceSensorNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/keyboard.html#X3DKeyDeviceSensorNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DSensorNode"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DLightNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> Light nodes provide illumination for rendering geometry in the 
scene.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/lighting.html#X3DLightNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="ambientIntensity" default="0">
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="color" type="SFColor" default="1 1 1"/>
<xs:attribute name="intensity" default="1">
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="on" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DMaterialNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#X3DMaterialNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DAppearanceChildNode">
<xs:attribute name="containerField" type="xs:NMTOKEN" default="material"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DMetadataObject">
<xs:annotation>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html#X3DMetadataObject"/>
<xs:appinfo/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="X3DNode">
<xs:attribute name="name" type="SFString"/>
<xs:attribute name="reference" type="SFString"/>
<xs:attribute name="containerField" type="xs:NMTOKEN" default="metadata">
<xs:annotation>
<xs:appinfo>containerField='value' for contained payload metadata inside 
MetadataSet element.</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DNetworkSensorNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/networking.html#X3DNetworkSensorNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DSensorNode">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Anchor"/>
<xs:element ref="AudioClip"/>
<xs:element ref="ImageTexture"/>
<xs:element ref="Inline"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="Script"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo>All instantiable nodes implement X3DNode, which corresponds to 
SFNode in the VRML 97 specification.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html#X3DNode"/>
</xs:annotation>
<xs:sequence>
<xs:element ref="IS" minOccurs="0"/>
<xs:choice minOccurs="0">
<xs:element ref="MetadataDouble"/>
<xs:element ref="MetadataFloat"/>
<xs:element ref="MetadataInteger"/>
<xs:element ref="MetadataSet"/>
<xs:element ref="MetadataString"/>
</xs:choice>
</xs:sequence>
<xs:attributeGroup ref="DEF_USE"/>
<xs:attributeGroup ref="globalAttributes"/>
<!-- complexContent, extension/restriction not used since X3DNode is a top-level 
node type -->
</xs:complexType>
<xs:complexType name="X3DNormalNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#X3DNormalNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometricPropertyNode">
<xs:attribute name="containerField" type="xs:NMTOKEN" default="normal"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DNurbsControlCurveNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#X3DParametricGeometryNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DParametricGeometryNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#X3DParametricGeometryNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DNurbsSurfaceGeometryNode" abstract="true" 
mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#X3DNurbsSurfaceGeometryNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DParametricGeometryNode">
<xs:attribute name="uDimension" type="SFInt32" default="0"/>
<xs:attribute name="vDimension" type="SFInt32" default="0"/>
<xs:attribute name="uKnot" type="MFDouble"/>
<xs:attribute name="vKnot" type="MFDouble"/>
<xs:attribute name="uOrder" type="SFInt32" default="3"/>
<xs:attribute name="vOrder" type="SFInt32" default="3"/>
<xs:attribute name="uTessellation" type="SFInt32" default="0"/>
<xs:attribute name="vTessellation" type="SFInt32" default="0"/>
<xs:attribute name="weight" type="MFDouble"/>
<xs:attribute name="solid" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DPointingDeviceSensorNode" abstract="true" 
mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/pointingsensor.html#X3DPointingDeviceSensorNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DSensorNode">
<xs:attribute name="description" type="SFString"/>
<xs:attribute name="isOver" type="SFBool"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DPrototypeInstanceNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html#X3DPrototypeInstance"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DNode"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DScriptNode" abstract="true" mixed="true">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/scripting.html#X3DScriptNode"/>
</xs:annotation>
<xs:sequence>
<xs:choice minOccurs="0">
<xs:element ref="MetadataDouble"/>
<xs:element ref="MetadataFloat"/>
<xs:element ref="MetadataInteger"/>
<xs:element ref="MetadataSet"/>
<xs:element ref="MetadataString"/>
</xs:choice>
<xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="field"/>
</xs:sequence>
<xs:sequence minOccurs="0">
<xs:element ref="IS"/>
</xs:sequence>
</xs:sequence>
</xs:sequence>
<xs:attributeGroup ref="DEF_USE"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
<xs:complexType name="X3DSensorNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html#X3DSensorNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="enabled" type="SFBool" default="true"/>
<xs:attribute name="isActive" type="SFBool"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DSequencerNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/utils.html#X3DSequencerNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="set_fraction" type="SFFloat"/>
<xs:attribute name="key" type="MFFloat"/>
<xs:attribute name="previous" type="SFBool"/>
<xs:attribute name="next" type="SFBool"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DShapeNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#X3DShapeNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:group ref="ShapeChildContentModel" minOccurs="0"/>
<xs:attribute name="otherInterfaces" type="xs:string" fixed="X3DBoundedObject"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DSoundNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/sound.html#X3DSoundNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:group ref="SoundChildContentModel" minOccurs="0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DSoundSourceNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo>Nodes implementing X3DSoundSourceNode are allowed children of Sound 
node</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/sound.html#X3DSoundSourceNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DTimeDependentNode">
<xs:attribute name="pitch" type="SFFloat" default="1.0"/>
<xs:attribute name="url" type="MFString"/>
<xs:attribute name="duration_changed" type="SFFloat"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DTextureNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#X3DTextureNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DAppearanceChildNode">
<xs:attribute name="containerField" type="xs:NMTOKEN" default="texture"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DTexture2DNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#X3DTexture2DNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DTextureNode">
<xs:attribute name="repeatS" type="SFBool" default="true"/>
<xs:attribute name="repeatT" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DTextureCoordinateNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#X3DTextureCoordinateNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometricPropertyNode">
<xs:attribute name="containerField" type="xs:NMTOKEN" default="texCoord"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DTextureTransformNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#X3DTextureTransformNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DAppearanceChildNode">
<xs:attribute name="containerField" type="xs:NMTOKEN" 
default="textureTransform"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DTextureTransform2DNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#X3DTextureTransform2DNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DTextureTransformNode">
<xs:attribute name="center" type="SFVec2f" default="0 0"/>
<xs:attribute name="rotation" type="SFFloat" default="0"/>
<xs:attribute name="scale" type="SFVec2f" default="1 1"/>
<xs:attribute name="translation" type="SFVec2f" default="0 0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DTimeDependentNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/time.html#X3DTimeDependentNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="elapsedTime" type="SFTime"/>
<xs:attribute name="isActive" type="SFBool"/>
<xs:attribute name="isPaused" type="SFBool"/>
<xs:attribute name="loop" type="SFBool" default="false"/>
<xs:attribute name="pauseTime" type="SFTime" default="0"/>
<xs:attribute name="resumeTime" type="SFTime" default="0"/>
<xs:attribute name="startTime" type="SFTime" default="0"/>
<xs:attribute name="stopTime" type="SFTime" default="0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DTouchSensorNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/pointingsensor.html#X3DTouchSensorNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DPointingDeviceSensorNode">
<xs:attribute name="touchTime" type="SFTime"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DTriggerNode" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/utils.html#X3DTriggerNode"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="X3DUrlObject" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> X3DUrlObject indicates that a node has content loaded from a URL 
and can be tracked via a LoadSensor.
</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/networking.html#X3DUrlObject"/>
</xs:annotation>
<xs:attribute name="url" type="MFString"/>
</xs:complexType>
<!-- still needed? -->
<xs:complexType name="ContainedNodeLabel" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo>ContainedNodeLabel tags help distinguish between the different uses 
of node siblings that might otherwise share the same node type.
These tags are labels in the scene graph, not instantiable nodes.
Because these tags do not need to be instantiated as scene graph nodes, they do 
not have DEF or USE values like X3DNodes.
ContainedNodeLabel tags are sometimes referred to as &quot;wrapper tags.&quot; 
Note that ContainedNodeLabel tags are not needed when node siblings have 
different types. Thus &quot;wrapper tags&quot; are not needed for most child 
nodes in the VRML 97 node set.</xs:appinfo>
<xs:documentation/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DNode">
<xs:attribute name="otherInterfaces" type="xs:string" 
fixed="org.w3c.dom.Element"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- doesn't Event need to be in abstract spec?
<xs:complexType name="Event" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo>An Event consists of a timeStampX3d and a field value. An event is a 
message sent from one node to another, connecting fields as defined by a ROUTE. 
Events signal external stimuli, changes to field values, and interactions 
between nodes. Note existence of related and equivalent 
org.w3c.dom.events.Event.timeStamp.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#Eventmodel"/>
</xs:annotation>
</xs:complexType>
-->
<xs:complexType name="X3DPrototype" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#PrototypeSemantics"/>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SceneGraphStructureNodeType" abstract="false" 
mixed="false">
<xs:annotation>
<xs:appinfo> SceneGraphStructureNodeType is a marker interface that identifies 
nonrenderable nodes relating to scene graph structure. 
SceneGraphStructureNodeType extends from Base rather than X3DNode since DEF/USE 
not appropriate for declarations.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#scenegraph"/>
</xs:annotation>
</xs:complexType>
<xs:complexType name="WildcardNodeType" abstract="true" mixed="false">
<xs:annotation>
<xs:appinfo> This complexType will likely not be needed, since integrating 
ProtoInstance into the content models solves the wildcard and extensibility 
problems.</xs:appinfo>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="X3DNode"/>
</xs:complexContent>
</xs:complexType>
<!--======================================================================-->
<!-- Most child-node content models are provided by these xs:group element 
definitions. These are necessary since complexType definitions can't be used to 
define contained content elements.-->
<xs:group name="AppearanceChildContentModel">
<xs:annotation>
<xs:appinfo>AppearanceChildContentModel is the child-node content model 
corresponding to X3DAppearanceChildNode. AppearanceChildContentModel can first 
contain optional FillProperties and/or LineProperties, then any-order Material, 
ImageTexture, MovieTexture, MultiTexture, PixelTexture, TextureTransform, 
MultiTextureTransform. No more than one instance of any single node type is 
allowed.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#Appearancenode"/>
</xs:annotation>
<!-- cannot have a trailing ProtoInstance or two ProtoInstances represent 
FillProperties/LineProperties -->
<xs:sequence>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:element ref="FillProperties"/>
<xs:element ref="LineProperties" minOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element ref="LineProperties"/>
<xs:element ref="FillProperties" minOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="FillProperties"/>
<xs:element ref="LineProperties"/>
</xs:choice>
</xs:sequence>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:element ref="Material"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="TextureTransform"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="TextureTransform"/>
<xs:choice minOccurs="0">
<xs:choice>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
</xs:choice>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:choice>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
</xs:choice>
<xs:element ref="TextureTransform"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:element ref="Material"/>
<xs:choice minOccurs="0">
<xs:element ref="TextureTransform"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="TextureTransform"/>
<xs:choice minOccurs="0">
<xs:element ref="Material"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Material"/>
<xs:element ref="TextureTransform"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="TextureTransform"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:element ref="Material"/>
<xs:choice minOccurs="0">
<xs:choice>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
</xs:choice>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Material"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Material"/>
<xs:choice>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
</xs:choice>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:element ref="Material"/>
<xs:choice minOccurs="0">
<xs:choice>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
</xs:choice>
<xs:element ref="TextureTransform"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Material"/>
<xs:element ref="TextureTransform"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Material"/>
<xs:choice>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
</xs:choice>
<xs:element ref="TextureTransform"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:group>
<xs:group name="AppearanceChildContentModelLoose">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DAppearanceChildNode, 
more loosely defined for better API-generation support.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#Appearancenode"/>
</xs:annotation>
<xs:choice>
<xs:element ref="FillProperties"/>
<xs:element ref="LineProperties"/>
<xs:element ref="Material"/>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
<xs:element ref="TextureTransform"/>
</xs:choice>
<!-- <xs:element ref="ProtoInstance"/> -->
</xs:group>
<xs:group name="ChildContentModel">
<xs:annotation>
<xs:appinfo>ChildContentModel is the child-node content model corresponding to 
X3DChildNode, combining all profiles. ChildContentModel can contain most nodes, 
other Grouping nodes, Prototype declarations and ProtoInstances in any order and 
any combination. When the assigned profile is less than Full, the precise 
palette of legal nodes depends on assigned profile and components.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/group.html#GroupingAndChildrenNodes"/>
</xs:annotation>
<xs:choice>
<xs:group ref="ChildContentModeCore" minOccurs="0"/>
<xs:group ref="ChildContentModelInterchange" minOccurs="0"/>
<xs:group ref="ChildContentModelInteractive" minOccurs="0"/>
<xs:group ref="ChildContentModelImmersive" minOccurs="0"/>
<xs:group ref="ChildContentModelFull" minOccurs="0"/>
<xs:group ref="ChildContentModelDIS" minOccurs="0"/>
<xs:group ref="ChildContentModelGeoSpatial" minOccurs="0"/>
<xs:group ref="ChildContentModelHumanoidAnimation" minOccurs="0"/>
<xs:group ref="ChildContentModelNurbs" minOccurs="0"/>
</xs:choice>
</xs:group>
<xs:group name="ChildContentModeCore">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DChildNode for 
Interchange profile.</xs:appinfo>
<xs:documentation/>
</xs:annotation>
<xs:choice>
<!-- empty -->
</xs:choice>
</xs:group>
<xs:group name="ChildContentModelInterchange">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DChildNode for 
Interchange profile.</xs:appinfo>
<xs:documentation/>
</xs:annotation>
<xs:choice>
<xs:element ref="Background"/>
<xs:element ref="ColorInterpolator"/>
<xs:element ref="CoordinateInterpolator"/>
<xs:element ref="DirectionalLight"/>
<xs:element ref="Group"/>
<xs:element ref="NavigationInfo"/>
<xs:element ref="NormalInterpolator"/>
<xs:element ref="OrientationInterpolator"/>
<xs:element ref="PositionInterpolator"/>
<xs:element ref="ScalarInterpolator"/>
<xs:element ref="Shape"/>
<xs:element ref="TimeSensor"/>
<xs:element ref="Transform"/>
<xs:element ref="Viewpoint"/>
<xs:element ref="WorldInfo"/>
</xs:choice>
</xs:group>
<xs:group name="ChildContentModelInteractive">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DChildNode for 
Interactive profile.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/interactive.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="Anchor"/>
<xs:element ref="BooleanFilter"/>
<xs:element ref="BooleanSequencer"/>
<xs:element ref="BooleanToggle"/>
<xs:element ref="BooleanTrigger"/>
<xs:element ref="CylinderSensor"/>
<xs:element ref="Inline"/>
<xs:element ref="IntegerSequencer"/>
<xs:element ref="IntegerTrigger"/>
<xs:element ref="KeySensor"/>
<xs:element ref="PlaneSensor"/>
<xs:element ref="PointLight"/>
<xs:element ref="ProximitySensor"/>
<xs:element ref="SphereSensor"/>
<xs:element ref="SpotLight"/>
<xs:element ref="StringSensor"/>
<xs:element ref="Switch"/>
<xs:element ref="TimeTrigger"/>
<xs:element ref="TouchSensor"/>
</xs:choice>
</xs:group>
<xs:group name="ChildContentModelImmersive">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DChildNode for Immersive 
profile.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/immersive.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="AudioClip"/>
<xs:element ref="Billboard"/>
<xs:element ref="Collision"/>
<xs:element ref="Fog"/>
<xs:element ref="LoadSensor"/>
<xs:element ref="LOD"/>
<xs:element ref="Script"/>
<xs:element ref="Sound"/>
<xs:element ref="VisibilitySensor"/>
</xs:choice>
</xs:group>
<xs:group name="ChildContentModelFull">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DChildNode for Full 
profile.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/Full.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="CoordinateInterpolator2D"/>
<xs:element ref="PositionInterpolator2D"/>
<xs:element ref="StaticGroup"/>
</xs:choice>
</xs:group>
<xs:group name="ChildContentModelDIS">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DChildNode for DIS 
component.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/dis.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="EspduTransform"/>
<xs:element ref="ReceiverPdu"/>
<xs:element ref="SignalPdu"/>
<xs:element ref="TransmitterPdu"/>
</xs:choice>
</xs:group>
<xs:group name="ChildContentModelGeoSpatial">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DChildNode for 
GeoSpatial component.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="GeoLocation"/>
<xs:element ref="GeoLOD"/>
<xs:element ref="GeoMetadata"/>
<xs:element ref="GeoOrigin"/>
<xs:element ref="GeoPositionInterpolator"/>
<xs:element ref="GeoTouchSensor"/>
<xs:element ref="GeoViewpoint"/>
</xs:choice>
</xs:group>
<xs:group name="ChildContentModelHumanoidAnimation">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DChildNode for 
HumanoidAnimation component.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/hanim.html"/>
</xs:annotation>
<xs:choice>
<!-- <xs:element ref="HAnimDisplacer"/> -->
<xs:element ref="HAnimHumanoid"/>
<!-- <xs:element ref="HAnimJoint"/> -->
<!-- <xs:element ref="HAnimSegment"/> -->
<!-- <xs:element ref="HAnimSite"/> -->
</xs:choice>
</xs:group>
<xs:group name="ChildContentModelNurbs">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DChildNode for Nurbs 
component.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="NurbsOrientationInterpolator"/>
<xs:element ref="NurbsPositionInterpolator"/>
<xs:element ref="NurbsSurfaceInterpolator"/>
<xs:element ref="NurbsSet"/>
</xs:choice>
</xs:group>
<xs:group name="ChildContentModelSceneGraphStructure">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to SceneGraphStructure 
elements, which are not specific X3D nodes.</xs:appinfo>
<xs:documentation/>
</xs:annotation>
<xs:choice>
<xs:element ref="ROUTE"/>
<xs:element ref="ExternProtoDeclare"/>
<xs:element ref="ProtoDeclare"/>
<xs:element ref="ProtoInstance"/>
<xs:element ref="IMPORT"/>
<xs:element ref="EXPORT"/>
</xs:choice>
</xs:group>
<xs:group name="ColorCoordinateContentModel">
<xs:annotation>
<xs:appinfo>ColorCoordinateContentModel is the child-node content model 
corresponding to IndexedLineSet, LineSet and PointSet. 
ColorCoordinateContentModel can contain any-order Coordinate node with Color (or 
ColorRGBA) node. No more than one instance of any single node type is 
allowed.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#IndexedLineSet"/>
</xs:annotation>
<xs:choice>
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:group>
<xs:group name="ColorNormalTexCoordContentModel">
<xs:annotation>
<xs:appinfo>ColorNormalTexCoordContentModel is the child-node content model 
corresponding to ElevationGrid and GeoElevationGrid. 
ColorNormalTexCoordContentModel can contain Color (or ColorRGBA), Normal and 
TextureCoordinate, in any order. No more than one instance of any single node 
type is allowed.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry3D.html#ElevationGrid"/>
</xs:annotation>
<xs:choice>
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:group>
<xs:group name="ColorCoordinateNormalTexCoordContentModel">
<xs:annotation>
<xs:appinfo>ColorCoordinateNormalTexCoordContentModel is the child-node content 
model corresponding to IndexedFaceSet and related Triangle 3D geometry nodes. 
ColorCoordinateNormalTexCoordContentModel can contain Color (or ColorRGBA), 
Coordinate, Normal and TextureCoordinate, in any order. No more than one 
instance of any single node type is allowed.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry3D.html#IndexedFaceSet"/>
</xs:annotation>
<xs:choice>
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:choice>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="Normal"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:choice>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
</xs:choice>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<xs:element ref="TextureCoordinateGenerator"/>
<xs:element ref="MultiTextureCoordinate"/>
<xs:element ref="NurbsTextureCoordinate"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:group>
<xs:group name="GeometryContentModel">
<xs:annotation>
<xs:appinfo>GeometryContentModel is the child-node content model corresponding 
to X3DGeometryNode. No more than one instance of any single geometry node is 
allowed.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry3D.html#Shapeandgeometry"/>
</xs:annotation>
<xs:choice>
<xs:group ref="GeometryContentModelInterchange"/>
<xs:group ref="GeometryContentModelInteractive"/>
<xs:group ref="GeometryContentModelImmersive"/>
<xs:group ref="GeometryContentModel2DFull"/>
<xs:group ref="GeometryContentModelGeoSpatial"/>
<xs:group ref="GeometryContentModelNurbs"/>
</xs:choice>
</xs:group>
<xs:group name="GeometryContentModelInterchange">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DGeometryNode for 
Interchange profile.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/interchange.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="Box"/>
<xs:element ref="Cone"/>
<xs:element ref="Cylinder"/>
<xs:element ref="IndexedFaceSet"/>
<xs:element ref="IndexedLineSet"/>
<xs:element ref="IndexedTriangleFanSet"/>
<xs:element ref="IndexedTriangleSet"/>
<xs:element ref="IndexedTriangleStripSet"/>
<xs:element ref="LineSet"/>
<xs:element ref="PointSet"/>
<xs:element ref="Sphere"/>
<xs:element ref="TriangleFanSet"/>
<xs:element ref="TriangleSet"/>
<xs:element ref="TriangleStripSet"/>
</xs:choice>
</xs:group>
<xs:group name="GeometryContentModelInteractive">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DGeometryNode for 
Interactive profile.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/interactive.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="ElevationGrid"/>
</xs:choice>
</xs:group>
<xs:group name="GeometryContentModelImmersive">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DGeometryNode for 
Immersive profile.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/immersive.html"/>
</xs:annotation>
<xs:choice>
<xs:group ref="GeometryContentModel2DImmersive"/>
<xs:element ref="Extrusion"/>
<xs:element ref="Text"/>
</xs:choice>
</xs:group>
<xs:group name="GeometryContentModel2DFull">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to Geometry2D 
component.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="Arc2D"/>
<xs:element ref="ArcClose2D"/>
<xs:element ref="Circle2D"/>
<xs:element ref="Disk2D"/>
</xs:choice>
</xs:group>
<xs:group name="GeometryContentModel2DImmersive">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to Geometry2D 
component.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="Polyline2D"/>
<xs:element ref="Polypoint2D"/>
<xs:element ref="Rectangle2D"/>
<xs:element ref="TriangleSet2D"/>
</xs:choice>
</xs:group>
<xs:group name="GeometryContentModelGeoSpatial">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DGeometryNode for 
GeoSpatial component.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="GeoElevationGrid"/>
</xs:choice>
</xs:group>
<xs:group name="GeometryContentModelNurbs">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DGeometryNode for Nurbs 
component.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html"/>
</xs:annotation>
<xs:choice>
<xs:element ref="ContourPolyline2D"/>
<xs:element ref="NurbsCurve"/>
<xs:element ref="NurbsCurve2D"/>
<xs:element ref="NurbsPatchSurface"/>
<xs:element ref="NurbsSweptSurface"/>
<xs:element ref="NurbsSwungSurface"/>
<xs:element ref="NurbsTrimmedSurface"/>
<!--verify that content model correctly contains other Nurbs nodes-->
</xs:choice>
</xs:group>
<xs:group name="GroupingNodeChildContentModel">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to X3DChildNode. Can contain 
most nodes, other Grouping nodes, Prototype declarations and ProtoInstances in 
any order and any combination. When less that Full profile, the precise palette 
of legal nodes depends on profile and components.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#f-Objecthierarchy"/>
</xs:annotation>
<xs:choice>
<xs:group ref="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="ChildContentModelSceneGraphStructure" minOccurs="0"/>
</xs:choice>
</xs:group>
<xs:group name="SceneGraphFragmentContentModel">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to a valid scene-graph 
fragment. Can provide field or fieldValue initialization, so no ROUTEs or 
prototype declarations allowed.</xs:appinfo>
<xs:documentation/>
</xs:annotation>
<xs:choice>
<xs:group ref="AppearanceChildContentModel"/>
<xs:group ref="ChildContentModel" minOccurs="0"/>
<xs:group ref="GeometryContentModel"/>
<xs:element ref="Color"/>
<xs:element ref="ColorRGBA"/>
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
<xs:element ref="GeoCoordinate"/>
<xs:element ref="Normal"/>
<xs:element ref="TextureCoordinate"/>
<!-- <xs:group ref="ShapeChildContentModel"/>
<xs:group ref="SoundChildContentModel"/>
<xs:group ref="ColorCoordinateNormalTexCoordContentModel"/> -->
</xs:choice>
</xs:group>
<xs:group name="SceneGraphFragmentWithPrototypeDeclarationsContentModel">
<xs:annotation>
<xs:appinfo>Child-node content model corresponding to a valid scene-graph 
fragment. Also includes ROUTE(s) and prototype declaration(s).</xs:appinfo>
<xs:documentation/>
</xs:annotation>
<xs:choice>
<xs:group ref="SceneGraphFragmentContentModel"/>
<xs:group ref="ChildContentModelSceneGraphStructure" minOccurs="0"/>
<!-- <xs:element ref="ExternProtoDeclare"/>
<xs:element ref="ProtoDeclare"/>
<xs:element ref="ROUTE"/>
<xs:element ref="IMPORT"/>
<xs:element ref="EXPORT"/> -->
</xs:choice>
</xs:group>
<xs:group name="ShapeChildContentModel">
<xs:annotation>
<xs:appinfo>ShapeChildContentModel is the child-node content model corresponding 
to X3DShapeNode. ShapeChildContentModel can contain a single Appearance node and 
a single geometry node, in any order.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#Shapenodes"/>
</xs:annotation>
<xs:choice>
<xs:sequence>
<xs:element ref="Appearance"/>
<xs:choice minOccurs="0">
<xs:group ref="GeometryContentModel"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:group ref="GeometryContentModel"/>
<xs:choice minOccurs="0">
<xs:element ref="Appearance"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
<xs:sequence>
<xs:element ref="ProtoInstance"/>
<xs:choice minOccurs="0">
<xs:group ref="GeometryContentModel"/>
<xs:element ref="Appearance"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:group>
<xs:group name="SoundChildContentModel">
<xs:annotation>
<xs:appinfo>SoundChildContentModel is the child-node content model corresponding 
to X3DSoundNode. SoundChildContentModel can contain a single AudioClip or 
MovieTexture as sound source.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/sound.html#Sound"/>
</xs:annotation>
<xs:choice>
<xs:element ref="AudioClip"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:group>
<xs:group name="TextChildContentModel">
<xs:annotation>
<xs:appinfo>TextChildContentModel is the child-node content model corresponding 
to X3DTextNode. TextChildContentModel can contain a single FontStyle 
node.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/text.html#Text"/>
</xs:annotation>
<xs:choice>
<xs:element ref="FontStyle"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
</xs:group>
<xs:group name="TextureBackgroundChildContentModel">
<xs:annotation>
<xs:appinfo>TextureBackgroundChildContentModel is the child-node content model 
corresponding to TextureBackground. TextureBackgroundChildContentModel can 
contain up to six Texture nodes (ImageTexture, MovieTexture, MultiTexture or 
PixelTexture). Each child texture must have a different containerField for 
topTexture, bottomTexture, leftTexture, rightTexture, frontTexture and 
backTexture.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/enveffects.html#TextureBackground"/>
</xs:annotation>
<xs:choice>
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
<xs:element ref="ProtoInstance"/>
</xs:choice>
<!--Controversial construct, throws errors if includes minOccurs="0" 
maxOccurs="6". Deterministic content model.
Moved constraint to parent referring xs:group OK. Still need to test if more 
than 6 children will be invalidated.-->
</xs:group>
<!--======================================================================-->
<!--Interchange, Interactive, Immersive and Full Profile X3D Nodes-->
<xs:element name="Anchor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/networking.html#Anchor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="description" type="SFString"/>
<xs:attribute name="parameter" type="MFString"/>
<xs:attribute name="url" type="MFString"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Appearance">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#Appearance"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DAppearanceNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Arc2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html#Arc2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="radius" default="1">
<!-- type="SFFloatNonNegative" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="startAngle" type="SFFloat" default="0"/>
<xs:attribute name="endAngle" type="SFFloat" default="1.570796"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ArcClose2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html#ArcClose2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="radius" default="1">
<!-- type="SFFloatNonNegative" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="startAngle" type="SFFloat" default="0"/>
<xs:attribute name="endAngle" type="SFFloat" default="1.570796"/>
<xs:attribute name="closureType" type="ArcClose2dTypeValues" default="PIE"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="AudioClip">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/sound.html#AudioClip"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DSoundSourceNode">
<xs:attribute name="description" type="SFString"/>
<xs:attribute name="otherInterfaces" type="xs:string" fixed="X3DUrlObject"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Background">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/enveffects.html#Background"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DBackgroundNode">
<xs:attribute name="backUrl" type="MFString"/>
<xs:attribute name="bottomUrl" type="MFString"/>
<xs:attribute name="frontUrl" type="MFString"/>
<xs:attribute name="leftUrl" type="MFString"/>
<xs:attribute name="rightUrl" type="MFString"/>
<xs:attribute name="topUrl" type="MFString"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Billboard">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/navigation.html#Billboard"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="axisOfRotation" type="SFVec3f" default="0 1 0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="BooleanFilter">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/utils.html#BooleanFilter"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="set_boolean" type="SFBool"/>
<xs:attribute name="inputTrue" type="SFBool"/>
<xs:attribute name="inputFalse" type="SFBool"/>
<xs:attribute name="inputNegate" type="SFBool"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="BooleanSequencer">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/utils.html#BooleanSequencer"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DSequencerNode">
<xs:attribute name="keyValue" type="MFBool"/>
<xs:attribute name="value_changed" type="SFBool"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="BooleanToggle">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/utils.html#BooleanToggle"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="set_boolean" type="SFBool"/>
<xs:attribute name="toggle" type="SFBool" default="false"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="BooleanTrigger">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/utils.html#BooleanTrigger"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="set_triggerTime" type="SFTime"/>
<xs:attribute name="triggerTrue" type="SFBool"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Box">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry3D.html#Box"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="size" type="SFVec3f" default="2 2 2"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Circle2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html#Circle2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="radius" default="1">
<!-- type="SFFloatPositive" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Collision">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/navigation.html#Collision"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="collideTime" type="SFTime"/>
<xs:attribute name="enabled" type="SFBool" default="true"/>
<xs:attribute name="isActive" type="SFBool"/>
<xs:attribute name="otherInterfaces2" type="xs:string" fixed="X3DSensorNode"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Color">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#Color"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DColorNode">
<xs:attribute name="color" type="MFColor"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ColorRGBA">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#ColorRGBA"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DColorNode">
<xs:attribute name="color" type="MFColorRGBA"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ColorInterpolator">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/interp.html#ColorInterpolator"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DInterpolatorNode">
<xs:attribute name="keyValue" type="MFColor"/>
<xs:attribute name="value_changed" type="SFColor"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Cone">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry3D.html#Cone"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="bottomRadius" default="1">
<!-- type="SFFloatPositive" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="height" default="2">
<!-- type="SFFloatPositive" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="side" type="SFBool" default="true"/>
<xs:attribute name="bottom" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Coordinate">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#Coordinate"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DCoordinateNode">
<xs:attribute name="point" type="MFVec3f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="CoordinateDouble">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#CoordinateDouble"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DCoordinateNode">
<xs:attribute name="point" type="MFVec3d"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="CoordinateInterpolator">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#CoordinateDouble"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DInterpolatorNode">
<xs:attribute name="keyValue" type="MFVec3f"/>
<xs:attribute name="value_changed" type="MFVec3f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="CoordinateInterpolator2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/interp.html#CoordinateInterpolator2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DInterpolatorNode">
<xs:attribute name="keyValue" type="MFVec2f"/>
<xs:attribute name="value_changed" type="MFVec2f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Cylinder">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry3D.html#Cylinder"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="bottom" type="SFBool" default="true"/>
<xs:attribute name="height" default="2">
<!-- type="SFFloatPositive" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="radius" default="1">
<!-- type="SFFloatPositive" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="side" type="SFBool" default="true"/>
<xs:attribute name="top" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="CylinderSensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/pointingsensor.html#CylinderSensor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DDragSensorNode">
<xs:attribute name="diskAngle" type="SFFloat" default="0.26179167"/>
<xs:attribute name="maxAngle" type="SFFloat" default="-1"/>
<xs:attribute name="minAngle" type="SFFloat" default="0"/>
<xs:attribute name="offset" type="SFFloat" default="0"/>
<xs:attribute name="rotation_changed" type="SFVec3f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="DirectionalLight">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/lighting.html#DirectionalLight"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DLightNode">
<xs:attribute name="direction" type="MFVec3f" default="0 0 -1"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Disk2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html#Disk2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="innerRadius" default="0">
<!-- type="SFFloatNonNegative" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="outerRadius" default="1">
<!-- type="SFFloatPositive" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ElevationGrid">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry3D.html#ElevationGrid"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:group ref="ColorNormalTexCoordContentModel" minOccurs="0"/>
<xs:attribute name="height" type="MFFloat"/>
<xs:attribute name="ccw" type="SFBool" default="true"/>
<xs:attribute name="colorPerVertex" type="SFBool" default="true"/>
<xs:attribute name="creaseAngle" default="0">
<!-- type="SFFloatNonNegative" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="normalPerVertex" type="SFBool" default="true"/>
<xs:attribute name="solid" type="SFBool" default="true"/>
<xs:attribute name="xDimension" type="SFInt32" default="0"/>
<xs:attribute name="xSpacing" default="1.0">
<!-- type="SFFloatPositive" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="zDimension" type="SFInt32" default="0"/>
<xs:attribute name="zSpacing" default="1.0">
<!-- type="SFFloatPositive" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Extrusion">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry3D.html#Extrusion"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="beginCap" type="SFBool" default="true"/>
<xs:attribute name="ccw" type="SFBool" default="true"/>
<xs:attribute name="convex" type="SFBool" default="true"/>
<xs:attribute name="creaseAngle" default="0.0">
<!-- type="SFFloatNonNegative" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="crossSection" type="MFVec2f" default="1 1 1 -1 -1 -1 -1 1 1 
1"/>
<xs:attribute name="endCap" type="SFBool" default="true"/>
<xs:attribute name="orientation" type="MFRotation" default="0 0 1 0"/>
<xs:attribute name="scale" type="MFVec2f" default="1 1"/>
<xs:attribute name="solid" type="SFBool" default="true"/>
<xs:attribute name="spine" type="MFVec3f" default="0 0 0 0 1 0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="FillProperties">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#FillProperties"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DAppearanceChildNode">
<xs:attribute name="filled" type="SFBool" default="true"/>
<xs:attribute name="hatched" type="SFBool" default="true"/>
<xs:attribute name="hatchStyle" type="SFInt32" default="1"/>
<xs:attribute name="hatchColor" type="SFColor" default="1 1 1"/>
<xs:attribute name="containerField" type="xs:NMTOKEN" default="fillProperties"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Fog">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/enveffects.html#Fog"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DBindableNode">
<xs:attribute name="color" type="SFColor" default="1 1 1"/>
<xs:attribute name="fogType" type="fogTypeValues" default="LINEAR"/>
<xs:attribute name="visibilityRange" type="SFFloat" default="0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="FontStyle">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/text.html#FontStyle"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DFontStyleNode">
<xs:attribute name="family" type="MFString" default='"SERIF"'/>
<xs:attribute name="horizontal" type="SFBool" default="true"/>
<xs:attribute name="justify" type="MFString" default='"BEGIN"'/>
<xs:attribute name="language" type="SFString"/>
<xs:attribute name="leftToRight" type="SFBool" default="true"/>
<xs:attribute name="size" type="SFFloat" default="1.0"/>
<xs:attribute name="spacing" type="SFFloat" default="1.0"/>
<xs:attribute name="style" type="fontStyleValues" default="PLAIN"/>
<xs:attribute name="topToBottom" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Group">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/group.html#Group"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ImageTexture">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#ImageTexture"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTexture2DNode">
<xs:attribute name="otherInterfaces" type="xs:string" fixed="X3DUrlObject"/>
<xs:attribute name="url" type="MFString"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="IndexedFaceSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry3D.html#IndexedFaceSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DComposedGeometryNode">
<xs:attribute name="convex" type="SFBool" default="true"/>
<xs:attribute name="creaseAngle" default="0">
<!-- type="SFFloatNonNegative" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="colorIndex" type="MFInt32"/>
<xs:attribute name="coordIndex" type="MFInt32"/>
<xs:attribute name="normalIndex" type="MFInt32"/>
<xs:attribute name="texCoordIndex" type="MFInt32"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="IndexedLineSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#IndexedLineSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:group ref="ColorCoordinateContentModel" minOccurs="0"/>
<xs:attribute name="colorIndex" type="MFInt32"/>
<xs:attribute name="colorPerVertex" type="SFBool" default="true"/>
<xs:attribute name="coordIndex" type="MFInt32"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="IndexedTriangleFanSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#IndexedTriangleFanSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DComposedGeometryNode">
<xs:attribute name="index" type="MFInt32"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="IndexedTriangleSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#IndexedTriangleSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DComposedGeometryNode">
<xs:attribute name="index" type="MFInt32"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="IndexedTriangleStripSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#IndexedTriangleStripSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DComposedGeometryNode">
<xs:attribute name="index" type="MFInt32"/>
<xs:attribute name="stripCount" type="MFInt32"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Inline">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/networking.html#Inline"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="load" type="SFBool" default="true"/>
<xs:attribute name="bboxCenter" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="bboxSize" type="BoundingBoxSize" default="-1 -1 -1"/>
<xs:attribute name="otherInterfaces" type="xs:string" fixed="X3DUrlObject"/>
<xs:attribute name="url" type="MFString"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="IntegerSequencer">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/utils.html#IntegerSequencer"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DSequencerNode">
<xs:attribute name="keyValue" type="MFInt32"/>
<xs:attribute name="value_changed" type="SFInt32"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="IntegerTrigger">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/utils.html#IntegerTrigger"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="set_boolean" type="SFBool"/>
<xs:attribute name="integerKey" type="SFInt32" default="-1"/>
<xs:attribute name="triggerValue" type="SFBool"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="KeySensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/keyboard.html#KeySensor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DKeyDeviceSensorNode">
<xs:attribute name="keyPress" type="SFString"/>
<xs:attribute name="keyRelease" type="SFString"/>
<xs:attribute name="actionKeyPress" type="SFInt32"/>
<xs:attribute name="actionKeyRelease" type="SFInt32"/>
<xs:attribute name="altKey" type="SFBool"/>
<xs:attribute name="controlKey" type="SFBool"/>
<xs:attribute name="shiftKey" type="SFBool"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="LineProperties">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#LineProperties"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DAppearanceChildNode">
<xs:attribute name="linetype" type="SFInt32" default="1"/>
<xs:attribute name="linewidthScaleFactor" type="SFFloat" default="0"/>
<xs:attribute name="containerField" type="xs:NMTOKEN" default="lineProperties"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="LineSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#LineSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:group ref="ColorCoordinateContentModel" minOccurs="0"/>
<xs:attribute name="vertexCount" type="MFInt32"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="LoadSensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/networking.html#LoadSensor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DNetworkSensorNode">
<xs:attribute name="timeOut" type="SFTime" default="0"/>
<xs:attribute name="loadTime" type="SFTime"/>
<xs:attribute name="isLoaded" type="SFBool"/>
<xs:attribute name="progress" type="SFFloat"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="LOD">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/navigation.html#LOD"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="center" type="MFVec3f" default="0 0 0"/>
<xs:attribute name="range" type="MFFloat"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Material">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#Material"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DMaterialNode">
<xs:attribute name="ambientIntensity" default="0.2">
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="diffuseColor" type="SFColor" default="0.8 0.8 0.8"/>
<xs:attribute name="emissiveColor" type="SFColor" default="0 0 0"/>
<xs:attribute name="shininess" default="0.2">
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="specularColor" type="SFColor" default="0 0 0"/>
<xs:attribute name="transparency" default="0">
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="MetadataDouble">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html#MetadataDouble"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DMetadataObject">
<xs:attribute name="value" type="MFDouble"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="MetadataFloat">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html#MetadataFloat"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DMetadataObject">
<xs:attribute name="value" type="MFFloat"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="MetadataInteger">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html#MetadataInteger"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DMetadataObject">
<xs:attribute name="value" type="MFInt32"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="MetadataSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html#MetadataSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DMetadataObject"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="MetadataString">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/core.html#MetadataString"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DMetadataObject">
<xs:attribute name="value" type="MFString"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="MovieTexture">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#MovieTexture"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DSoundSourceNode">
<xs:attribute name="description" type="SFString"/>
<xs:attribute name="repeatS" type="SFBool" default="true"/>
<xs:attribute name="repeatT" type="SFBool" default="true"/>
<xs:attribute name="otherInterfaces" type="xs:string" fixed="X3DTexture2DNode"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="MultiTexture">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#MultiTexture"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTextureNode">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ImageTexture"/>
<xs:element ref="MovieTexture"/>
<xs:element ref="MultiTexture"/>
<xs:element ref="PixelTexture"/>
</xs:choice>
<xs:attribute name="alpha" type="SFFloat" default="1"/>
<xs:attribute name="color" type="SFColor" default="1 1 1"/>
<xs:attribute name="function" type="MFString"/>
<xs:attribute name="mode" type="MFString"/>
<xs:attribute name="source" type="MFString"/>
<xs:attribute name="transparent" type="SFBool" default="false"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="MultiTextureCoordinate">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#MultiTextureCoordinate"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTextureCoordinateNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="MultiTextureTransform">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#MultiTextureTransform"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTextureTransformNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NavigationInfo">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/navigation.html#NavigationInfo"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DBindableNode">
<xs:attribute name="avatarSize" type="MFFloat" default="0.25 1.6 0.75"/>
<xs:attribute name="headlight" type="SFBool" default="true"/>
<xs:attribute name="speed" type="SFFloat" default="1"/>
<xs:attribute name="type" type="MFString" default='"EXAMINE" "ANY"'/>
<xs:attribute name="visibilityLimit" type="SFFloat" default="0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Normal">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#Normal"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DNormalNode">
<xs:attribute name="vector" type="MFVec3f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NormalInterpolator">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/interp.html#NormalInterpolator"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DInterpolatorNode">
<xs:attribute name="keyValue" type="MFVec3f"/>
<xs:attribute name="value_changed" type="MFVec3f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="OrientationInterpolator">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/interp.html#OrientationInterpolator"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DInterpolatorNode">
<xs:attribute name="keyValue" type="MFRotation"/>
<xs:attribute name="value_changed" type="SFRotation"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="PixelTexture">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#PixelTexture"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTexture2DNode">
<xs:attribute name="image" type="SFImage" default="0 0 0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="PlaneSensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/pointingsensor.html#PlaneSensor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DDragSensorNode">
<xs:attribute name="translation_changed" type="SFVec3f"/>
<xs:attribute name="maxPosition" type="SFVec2f" default="-1 -1"/>
<xs:attribute name="minPosition" type="SFVec2f" default="0 0"/>
<xs:attribute name="offset" type="SFVec3f" default="0 0 0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="PointLight">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/lighting.html#PointLight"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DLightNode">
<xs:attribute name="attenuation" type="SFVec3f" default="1 0 0"/>
<xs:attribute name="location" type="MFVec3f" default="0 0 0"/>
<xs:attribute name="radius" default="100">
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="PointSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#PointSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:group ref="ColorCoordinateContentModel" minOccurs="0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Polyline2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html#Polyline2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="lineSegments" type="MFVec2f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Polypoint2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html#Polypoint2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="points" type="MFVec2f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="PositionInterpolator">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/interp.html#PositionInterpolator"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DInterpolatorNode">
<xs:attribute name="keyValue" type="MFVec3f"/>
<xs:attribute name="value_changed" type="SFVec3f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="PositionInterpolator2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/interp.html#PositionInterpolator2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DInterpolatorNode">
<xs:attribute name="keyValue" type="MFVec2f"/>
<xs:attribute name="value_changed" type="SFVec2f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ProximitySensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/envsensor.html#ProximitySensor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DEnvironmentalSensorNode">
<xs:attribute name="position_changed" type="SFVec3f"/>
<xs:attribute name="centerOfRotation_changed" type="SFVec3f"/>
<xs:attribute name="orientation_changed" type="SFRotation"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Rectangle2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html#Rectangle2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="isFilled" type="SFBool" default="true"/>
<xs:attribute name="size" type="MFVec2f" default="2 2"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ScalarInterpolator">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/interp.html#ScalarInterpolator"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DInterpolatorNode">
<xs:attribute name="keyValue" type="MFFloat"/>
<xs:attribute name="value_changed" type="SFFloat"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Script">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/scripting.html#Script"/>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent mixed="true">
<xs:extension base="X3DScriptNode">
<xs:attribute name="directOutput" type="SFBool" default="false"/>
<xs:attribute name="mustEvaluate" type="SFBool" default="false"/>
<xs:attribute name="otherInterfaces" type="xs:string" fixed="X3DUrlObject"/>
<xs:attribute name="url" type="MFString"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Shape">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/shape.html#Shape"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DShapeNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Sound">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/sound.html#Sound"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DSoundNode">
<xs:attribute name="direction" type="SFVec3f" default="0 0 1"/>
<xs:attribute name="intensity" type="SFFloat" default="1"/>
<xs:attribute name="location" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="maxBack" type="SFFloat" default="10"/>
<xs:attribute name="maxFront" type="SFFloat" default="10"/>
<xs:attribute name="minBack" type="SFFloat" default="1"/>
<xs:attribute name="minFront" type="SFFloat" default="1"/>
<xs:attribute name="priority" type="SFFloat" default="0"/>
<xs:attribute name="spatialize" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Sphere">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry3D.html#Sphere"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="radius" default="1">
<!-- type="SFFloatPositive" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="SphereSensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/pointingsensor.html#SphereSensor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DDragSensorNode">
<xs:attribute name="offset" type="SFRotation" default="0 1 0 0"/>
<xs:attribute name="rotation_changed" type="SFVec3f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="SpotLight">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/lighting.html#SpotLight"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DLightNode">
<xs:attribute name="attenuation" type="SFVec3f" default="1 0 0"/>
<xs:attribute name="beamWidth" default="1.570796">
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minExclusive value="0"/>
<xs:maxInclusive value="1.5707963265"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="cutOffAngle" type="SFFloat" default="0.785398"/>
<xs:attribute name="direction" type="MFVec3f" default="0 0 -1"/>
<xs:attribute name="location" type="MFVec3f" default="0 0 0"/>
<xs:attribute name="radius" default="100">
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="StaticGroup">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/group.html#StaticGroup"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="StringSensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/keyboard.html#StringSensor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DKeyDeviceSensorNode">
<xs:attribute name="enteredText" type="SFString"/>
<xs:attribute name="finalText" type="SFString"/>
<xs:attribute name="deletionAllowed" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Switch">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/group.html#Switch"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="whichChoice" type="SFInt32" default="-1"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Text">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/text.html#Text"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:sequence minOccurs="0">
<xs:group ref="TextChildContentModel"/>
</xs:sequence>
<xs:attribute name="string" type="MFString"/>
<xs:attribute name="length" type="MFFloat"/>
<xs:attribute name="maxExtent" default="0.0">
<!-- type="SFFloatNonNegative" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TextureBackground">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/enveffects.html#TextureBackground"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DBackgroundNode">
<xs:group ref="TextureBackgroundChildContentModel" minOccurs="0" maxOccurs="6"/>
<xs:attribute name="transparency" type="MFFloat" default="0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TextureCoordinate">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#TextureCoordinate"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTextureCoordinateNode">
<xs:attribute name="point" type="MFVec2f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TextureCoordinateGenerator">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#TextureCoordinateGenerator"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTextureCoordinateNode">
<xs:attribute name="mode" type="SFString" default="SPHERE"/>
<xs:attribute name="parameter" type="MFFloat"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TextureTransform">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/texturing.html#TextureTransform"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTextureTransform2DNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TimeSensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/time.html#TimeSensor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTimeDependentNode">
<xs:attribute name="cycleInterval" type="SFTime" default="1.0"/>
<xs:attribute name="cycleTime" type="SFTime"/>
<xs:attribute name="fraction_changed" type="SFFloat"/>
<xs:attribute name="time" type="SFTime"/>
<xs:attribute name="otherInterfaces" type="xs:string" fixed="X3DSensorNode"/>
<xs:attribute name="enabled" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TimeTrigger">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/utils.html#TimeTrigger"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="set_boolean" type="SFBool"/>
<xs:attribute name="triggerTime" type="SFBool"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TouchSensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/pointingsensor.html#TouchSensor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTouchSensorNode">
<xs:attribute name="hitNormal_changed" type="SFVec3f"/>
<xs:attribute name="hitPoint_changed" type="SFVec3f"/>
<xs:attribute name="hitTexCoord_changed" type="SFVec2f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Transform">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/group.html#Transform"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<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:attribute name="scaleOrientation" type="SFRotation" default="0 0 1 0"/>
<xs:attribute name="translation" type="SFVec3f" default="0 0 0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TriangleFanSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#TriangleFanSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DComposedGeometryNode">
<xs:attribute name="fanCount" type="MFInt32"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TriangleSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#TriangleSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DComposedGeometryNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TriangleSet2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geometry2D.html#TriangleSet2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:attribute name="vertices" type="MFVec2f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TriangleStripSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/rendering.html#TriangleStripSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DComposedGeometryNode">
<xs:attribute name="stripCount" type="MFInt32"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Viewpoint">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/navigation.html#Viewpoint"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DBindableNode">
<xs:attribute name="fieldOfView" type="SFFloat" default="0.785398"/>
<xs:attribute name="jump" type="SFBool" default="true"/>
<xs:attribute name="orientation" type="SFRotation" default="0 0 1 0"/>
<xs:attribute name="position" type="SFVec3f" default="0 0 10"/>
<xs:attribute name="description" type="SFString"/>
<xs:attribute name="centerOfRotation" type="SFVec3f" default="0 0 0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="VisibilitySensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/envsensor.html#VisibilitySensor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DEnvironmentalSensorNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="WorldInfo">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/group.html#WorldInfo"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DInfoNode">
<xs:attribute name="info" type="MFString"/>
<xs:attribute name="title" type="SFString"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!--======================================================================-->
<!--Scene graph structural nodes now available as elements and via SAI: X3D, 
header, component, meta, Scene, ROUTE, USE, field, fieldValue, ProtoDeclare, 
ExternProtoDeclare, ProtoInstance-->
<!--======================================================================-->
<xs:element name="component">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#Components"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:attribute name="name" type="componentNames" use="required"/>
<xs:attribute name="level" type="SFInt32" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="EXPORT">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#EXPORTSemantics"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:attribute name="localDEF" type="xs:IDREF" use="required"/>
<xs:attribute name="AS" type="xs:NMTOKEN"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="IMPORT">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#IMPORTSemantics"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:attribute name="InlineDEF" type="xs:IDREF" use="required"/>
<xs:attribute name="importedDEF" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="AS" type="xs:ID"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="IS">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#PROTOdefinitionsemantics"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:choice maxOccurs="unbounded">
<xs:element ref="connect"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="connect">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/specifications/ISO-IEC-19776/Part01/concepts.html#IS_ConnectStatementSyntax"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:attribute name="nodeField" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="protoField" type="xs:NMTOKEN" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="field">
<xs:annotation>
<xs:appinfo> field can contain either attribute-value or node content. field is 
used by ExternProtoDeclare, ProtoDeclare and Script nodes.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/specifications/ISO-IEC-19776/Part01/concepts.html#NodeAndFieldStatementSyntax"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="SceneGraphFragmentContentModel"/>
</xs:choice>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="accessType" type="accessTypeNames" use="required"/>
<xs:attribute name="type" type="fieldTypeName" use="required"/>
<xs:attribute name="value" type="SFString"/>
<xs:attribute name="appinfo" type="SFString"/>
<xs:attribute name="documentation" type="SFString"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="fieldValue">
<xs:annotation>
<xs:appinfo> fieldValue can contain either attribute-value or node content. 
fieldValue is used by ProtoInstance nodes, reinitializing default values 
specified in ProtoDeclare field tags.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/specifications/ISO-IEC-19776/Part01/concepts.html#ProtoInstanceAndFieldValueStatement"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="SceneGraphFragmentContentModel"/>
</xs:choice>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="value" type="SFString"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="head">
<xs:complexType>
<xs:complexContent>
<xs:extension base="SceneGraphStructureNodeType">
<xs:sequence>
<xs:element ref="component" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="meta" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="meta">
<xs:annotation>
<xs:appinfo/>
<xs:documentation source="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:attribute name="name" type="SFString" use="required"/>
<xs:attribute name="content" type="SFString" use="required"/>
<xs:attribute name="http-equiv" type="SFString"/>
<xs:attribute name="lang" type="SFString"/>
<xs:attribute name="dir" type="metaDirectionValues"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ExternProtoDeclare">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#Externalprototypesemantics"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DPrototype">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="field"/>
</xs:sequence>
<xs:attribute name="url" type="MFString" use="required"/>
<xs:attribute name="appinfo" type="SFString"/>
<xs:attribute name="documentation" type="SFString"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ProtoDeclare">
<xs:annotation>
<xs:appinfo> ProtoDeclare defines new Prototype nodes. Nested ProtoDeclares, 
ProtoInstances are allowed by specification. </xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/specifications/ISO-IEC-19776/Part01/concepts.html#PrototypeAndFieldDeclarationSyntax"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DPrototype">
<xs:sequence>
<xs:element ref="ProtoInterface" minOccurs="0"/>
<xs:element ref="ProtoBody"/>
</xs:sequence>
<xs:attribute name="appinfo" type="SFString"/>
<xs:attribute name="documentation" type="SFString"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ProtoInterface">
<xs:annotation>
<xs:appinfo> ProtoInterface defines fields for new Prototype nodes. 
</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/specifications/ISO-IEC-19776/Part01/concepts.html#PrototypeAndFieldDeclarationSyntax"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:sequence>
<xs:element ref="field" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ProtoBody">
<xs:annotation>
<xs:appinfo> ProtoBody contains the definition nodes for new Prototype 
nodes.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/specifications/ISO-IEC-19776/Part01/concepts.html#PrototypeAndFieldDeclarationSyntax"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:sequence>
<xs:group ref="SceneGraphFragmentWithPrototypeDeclarationsContentModel" 
maxOccurs="unbounded"/>
<!-- nested ProtoDeclares, ProtoInstances are allowed by specification. -->
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ProtoInstance">
<xs:annotation>
<xs:appinfo> Nested ProtoDeclares, ProtoInstances are allowed by specification. 
ProtoInstance contained content normally captured via fieldValue 
initializations.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/specifications/ISO-IEC-19776/Part01/concepts.html#ProtoInstanceAndFieldValueStatement"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DPrototype">
<xs:sequence>
<xs:element ref="fieldValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="IS" minOccurs="0" maxOccurs="unbounded"/>
<!-- direct children disallowed, let fieldValue name="children" handle them -->
</xs:sequence>
<xs:attributeGroup ref="DEF_USE"/>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attribute name="containerField" type="xs:NMTOKEN" default="children"/>
<xs:attribute name="otherInterfaces" type="xs:string" fixed="X3DNode"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ROUTE">
<xs:annotation>
<xs:appinfo>ROUTEs connect event-producing nodes/fields to event-consuming 
nodes/fields.</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/concepts.html#ModifyingObjectsRoutes"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:attribute name="fromNode" type="xs:IDREF" use="required"/>
<xs:attribute name="fromField" type="SFString" use="required"/>
<xs:attribute name="toNode" type="xs:IDREF" use="required"/>
<xs:attribute name="toField" type="SFString" use="required"/>
<xs:attribute name="otherInterfaces" type="xs:string" fixed="X3DChildNode"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Scene">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/specifications/ISO-IEC-19776/Part01/concepts.html#Header"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="GroupingNodeChildContentModel"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="X3D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/specifications/ISO-IEC-19776/Part01/concepts.html#Header"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="SceneGraphStructureNodeType">
<xs:sequence>
<xs:element ref="head" minOccurs="0"/>
<xs:element ref="Scene"/>
</xs:sequence>
<xs:attribute name="version" type="SFString" use="optional" fixed="3.0"/>
<xs:attribute name="profile" type="profileNames" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!--======================================================================-->
<!--Node sets for the DIS, GeoSpatial, HumanoidAnimation and Nurbs components 
are included in the X3D schema so that the Full Profile which combines them is 
complete in a single file. -->
<!--======================================================================-->
<!--DIS Nodes-->
<xs:element name="EspduTransform">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/dis.html#EspduTransform"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="marking" type="SFString"/>
<xs:attribute name="siteID" type="SFInt32" default="0"/>
<xs:attribute name="applicationID" type="SFInt32" default="1"/>
<xs:attribute name="entityID" type="SFInt32" default="0"/>
<xs:attribute name="forceID" type="SFInt32" default="0"/>
<xs:attribute name="entityKind" type="SFInt32" default="0"/>
<xs:attribute name="entityDomain" type="SFInt32" default="0"/>
<xs:attribute name="entityCountry" type="SFInt32" default="0"/>
<xs:attribute name="entityCategory" type="SFInt32" default="0"/>
<xs:attribute name="entitySubCategory" type="SFInt32" default="0"/>
<xs:attribute name="entitySpecific" type="SFInt32" default="0"/>
<xs:attribute name="entityExtra" type="SFInt32" default="0"/>
<xs:attribute name="readInterval" type="SFTime" default="0.1"/>
<xs:attribute name="writeInterval" type="SFTime" default="1.0"/>
<xs:attribute name="networkMode" type="networkModeValues" default="standAlone"/>
<xs:attribute name="translation" 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:attribute name="scaleOrientation" type="SFRotation" default="0 0 1 0"/>
<xs:attribute name="center" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="address" type="SFString" default="localhost"/>
<xs:attribute name="port" type="SFInt32" default="0"/>
<xs:attribute name="multicastRelayHost" type="SFString"/>
<xs:attribute name="multicastRelayPort" type="SFInt32" default="0"/>
<xs:attribute name="rtpHeaderExpected" type="SFBool" default="false"/>
<xs:attribute name="isRtpHeaderHeard" type="SFBool"/>
<xs:attribute name="isStandAlone" type="SFBool"/>
<xs:attribute name="isNetworkReader" type="SFBool"/>
<xs:attribute name="isNetworkWriter" type="SFBool"/>
<xs:attribute name="isActive" type="SFBool"/>
<xs:attribute name="timestamp" type="SFTime"/>
<xs:attribute name="deadReckoning" type="SFInt32" default="0"/>
<xs:attribute name="linearVelocity" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="linearAcceleration" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="isCollided" type="SFBool"/>
<xs:attribute name="collideTime" type="SFTime"/>
<xs:attribute name="isDetonated" type="SFBool"/>
<xs:attribute name="detonateTime" type="SFTime"/>
<xs:attribute name="fired1" type="SFBool" default="false"/>
<xs:attribute name="fired2" type="SFBool" default="false"/>
<xs:attribute name="firedTime" type="SFTime"/>
<xs:attribute name="munitionStartPoint" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="munitionEndPoint" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="munitionSiteID" type="SFInt32" default="0"/>
<xs:attribute name="munitionApplicationID" type="SFInt32" default="1"/>
<xs:attribute name="munitionEntityID" type="SFInt32" default="0"/>
<xs:attribute name="fireMissionIndex" type="SFInt32" default="0"/>
<xs:attribute name="warhead" type="SFInt32" default="0"/>
<xs:attribute name="fuse" type="SFInt32" default="0"/>
<xs:attribute name="munitionQuantity" type="SFInt32" default="0"/>
<xs:attribute name="firingRate" type="SFInt32" default="0"/>
<xs:attribute name="firingRange" type="SFInt32" default="0"/>
<xs:attribute name="articulationParameterCount" type="SFInt32" default="0"/>
<xs:attribute name="articulationParameterDesignatorArray" type="MFInt32"/>
<xs:attribute name="articulationParameterChangeIndicatorArray" type="MFInt32"/>
<xs:attribute name="articulationParameterIdPartAttachedArray" type="MFInt32"/>
<xs:attribute name="articulationParameterTypeArray" type="MFInt32"/>
<xs:attribute name="articulationParameterArray" type="MFFloat"/>
<xs:attribute name="set_articulationParameterValue0" type="SFFloat"/>
<xs:attribute name="set_articulationParameterValue1" type="SFFloat"/>
<xs:attribute name="set_articulationParameterValue2" type="SFFloat"/>
<xs:attribute name="set_articulationParameterValue3" type="SFFloat"/>
<xs:attribute name="set_articulationParameterValue4" type="SFFloat"/>
<xs:attribute name="set_articulationParameterValue5" type="SFFloat"/>
<xs:attribute name="set_articulationParameterValue6" type="SFFloat"/>
<xs:attribute name="set_articulationParameterValue7" type="SFFloat"/>
<xs:attribute name="articulationParameterValue0_changed" type="SFFloat"/>
<xs:attribute name="articulationParameterValue1_changed" type="SFFloat"/>
<xs:attribute name="articulationParameterValue2_changed" type="SFFloat"/>
<xs:attribute name="articulationParameterValue3_changed" type="SFFloat"/>
<xs:attribute name="articulationParameterValue4_changed" type="SFFloat"/>
<xs:attribute name="articulationParameterValue5_changed" type="SFFloat"/>
<xs:attribute name="articulationParameterValue6_changed" type="SFFloat"/>
<xs:attribute name="articulationParameterValue7_changed" type="SFFloat"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ReceiverPdu">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/dis.html#ReceiverPdu"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="whichGeometry" type="SFInt32" default="1"/>
<xs:attribute name="readInterval" type="SFTime" default="0.1"/>
<xs:attribute name="writeInterval" type="SFTime" default="1.0"/>
<xs:attribute name="networkMode" type="networkModeValues" default="standAlone"/>
<xs:attribute name="isStandAlone" type="SFBool"/>
<xs:attribute name="isNetworkReader" type="SFBool"/>
<xs:attribute name="isNetworkWriter" type="SFBool"/>
<xs:attribute name="siteID" type="SFInt32" default="0"/>
<xs:attribute name="applicationID" type="SFInt32" default="1"/>
<xs:attribute name="entityID" type="SFInt32" default="0"/>
<xs:attribute name="address" type="SFString" default="localhost"/>
<xs:attribute name="port" type="SFInt32" default="0"/>
<xs:attribute name="multicastRelayHost" type="SFString"/>
<xs:attribute name="multicastRelayPort" type="SFInt32" default="0"/>
<xs:attribute name="rtpHeaderExpected" type="SFBool" default="false"/>
<xs:attribute name="isRtpHeaderHeard" type="SFBool"/>
<xs:attribute name="isActive" type="SFBool"/>
<xs:attribute name="timestamp" type="SFTime"/>
<xs:attribute name="radioID" type="SFInt32" default="0"/>
<xs:attribute name="receivedPower" type="SFFloat" default="0.0"/>
<xs:attribute name="receiverState" type="SFInt32" default="0"/>
<xs:attribute name="transmitterSiteID" type="SFInt32" default="0"/>
<xs:attribute name="transmitterApplicationID" type="SFInt32" default="0"/>
<xs:attribute name="transmitterEntityID" type="SFInt32" default="0"/>
<xs:attribute name="transmitterRadioID" type="SFInt32" default="0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="SignalPdu">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/dis.html#SignalPdu"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="whichGeometry" type="SFInt32" default="1"/>
<xs:attribute name="readInterval" type="SFTime" default="0.1"/>
<xs:attribute name="writeInterval" type="SFTime" default="1.0"/>
<xs:attribute name="networkMode" type="networkModeValues" default="standAlone"/>
<xs:attribute name="isStandAlone" type="SFBool"/>
<xs:attribute name="isNetworkReader" type="SFBool"/>
<xs:attribute name="isNetworkWriter" type="SFBool"/>
<xs:attribute name="siteID" type="SFInt32" default="0"/>
<xs:attribute name="applicationID" type="SFInt32" default="1"/>
<xs:attribute name="entityID" type="SFInt32" default="0"/>
<xs:attribute name="address" type="SFString" default="localhost"/>
<xs:attribute name="port" type="SFInt32" default="0"/>
<xs:attribute name="multicastRelayHost" type="SFString"/>
<xs:attribute name="multicastRelayPort" type="SFInt32" default="0"/>
<xs:attribute name="rtpHeaderExpected" type="SFBool" default="false"/>
<xs:attribute name="isRtpHeaderHeard" type="SFBool"/>
<xs:attribute name="isActive" type="SFBool"/>
<xs:attribute name="timestamp" type="SFTime"/>
<xs:attribute name="radioID" type="SFInt32" default="0"/>
<xs:attribute name="encodingScheme" type="SFInt32" default="0"/>
<xs:attribute name="tdlType" type="SFInt32" default="0"/>
<xs:attribute name="sampleRate" type="SFInt32" default="0"/>
<xs:attribute name="samples" type="SFInt32" default="0"/>
<xs:attribute name="dataLength" type="SFInt32" default="0"/>
<xs:attribute name="data" type="MFInt32"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="TransmitterPdu">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/dis.html#TransmitterPdu"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="whichGeometry" type="SFInt32" default="1"/>
<xs:attribute name="readInterval" type="SFTime" default="0.1"/>
<xs:attribute name="writeInterval" type="SFTime" default="1.0"/>
<xs:attribute name="networkMode" type="networkModeValues" default="standAlone"/>
<xs:attribute name="isStandAlone" type="SFBool"/>
<xs:attribute name="isNetworkReader" type="SFBool"/>
<xs:attribute name="isNetworkWriter" type="SFBool"/>
<xs:attribute name="siteID" type="SFInt32" default="0"/>
<xs:attribute name="applicationID" type="SFInt32" default="1"/>
<xs:attribute name="entityID" type="SFInt32" default="0"/>
<xs:attribute name="address" type="SFString" default="localhost"/>
<xs:attribute name="port" type="SFInt32" default="0"/>
<xs:attribute name="multicastRelayHost" type="SFString"/>
<xs:attribute name="multicastRelayPort" type="SFInt32" default="0"/>
<xs:attribute name="rtpHeaderExpected" type="SFBool" default="false"/>
<xs:attribute name="isRtpHeaderHeard" type="SFBool"/>
<xs:attribute name="isActive" type="SFBool"/>
<xs:attribute name="timestamp" type="SFTime"/>
<xs:attribute name="radioID" type="SFInt32" default="0"/>
<xs:attribute name="antennaLocation" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="antennaPatternLength" type="SFInt32" default="0"/>
<xs:attribute name="antennaPatternType" type="SFInt32" default="0"/>
<xs:attribute name="cryptoKeyID" type="SFInt32" default="0"/>
<xs:attribute name="cryptoSystem" type="SFInt32" default="0"/>
<xs:attribute name="frequency" type="SFInt32" default="0"/>
<xs:attribute name="inputSource" type="SFInt32" default="0"/>
<xs:attribute name="lengthOfModulationParameters" type="SFInt32" default="0"/>
<xs:attribute name="modulationTypeDetail" type="SFInt32" default="0"/>
<xs:attribute name="modulationTypeMajor" type="SFInt32" default="0"/>
<xs:attribute name="modulationTypeSpreadSpectrum" type="SFInt32" default="0"/>
<xs:attribute name="modulationTypeSystem" type="SFInt32" default="0"/>
<xs:attribute name="power" type="SFFloat" default="0.0"/>
<xs:attribute name="radioEntityTypeCategory" type="SFInt32" default="0"/>
<xs:attribute name="radioEntityTypeCountry" type="SFInt32" default="0"/>
<xs:attribute name="radioEntityTypeDomain" type="SFInt32" default="0"/>
<xs:attribute name="radioEntityTypeKind" type="SFInt32" default="0"/>
<xs:attribute name="radioEntityTypeNomenclature" type="SFInt32" default="0"/>
<xs:attribute name="radioEntityTypeNomenclatureVersion" type="SFInt32" 
default="0"/>
<xs:attribute name="relativeAntennaLocation" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="transmitFrequencyBandwidth" type="SFFloat" default="0"/>
<xs:attribute name="transmitState" type="SFInt32" default="0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!--======================================================================-->
<!--GeoVrml 2.0 Nodes-->
<!--needs to be split into two enumerations for validatability-->
<xs:simpleType name="geoSystemType">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html#Specifyingaspatialreference"/>
</xs:annotation>
<xs:restriction base="SFString"/>
</xs:simpleType>
<xs:element name="GeoCoordinate">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html#GeoCoordinate"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DCoordinateNode">
<xs:sequence>
<xs:element name="GeoOrigin" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="geoSystem" type="geoSystemType" default='"GD" "WE"'/>
<xs:attribute name="point" type="MFVec3d"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="GeoElevationGrid">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html#GeoElevationGrid"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometryNode">
<xs:sequence>
<xs:element name="GeoOrigin" minOccurs="0"/>
<xs:group ref="ColorNormalTexCoordContentModel" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="geoSystem" type="geoSystemType" default='"GD" "WE"'/>
<xs:attribute name="geoGridOrigin" type="SFVec3d" default="0 0 0"/>
<xs:attribute name="height" type="MFDouble" default="0 0"/>
<xs:attribute name="ccw" type="SFBool" default="true"/>
<xs:attribute name="colorPerVertex" type="SFBool" default="true"/>
<xs:attribute name="creaseAngle" default="0">
<!-- type="SFFloatNonNegative" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="normalPerVertex" type="SFBool" default="true"/>
<xs:attribute name="solid" type="SFBool" default="true"/>
<xs:attribute name="xDimension" type="SFInt32" default="0"/>
<xs:attribute name="xSpacing" default="1.0">
<!-- type="SFFloatNonNegative" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="yScale" default="1">
<!-- type="SFFloatNonNegative" -->
<xs:simpleType>
<xs:restriction base="SFFloat">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="zDimension" type="SFInt32" default="0"/>
<xs:attribute name="zSpacing" type="SFFloat" default="1.0"/>
<xs:attribute name="set_height" type="MFDouble"/>
<xs:attribute name="set_yScale" type="SFFloat"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="GeoLocation">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html#GeoLocation"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="geoSystem" type="geoSystemType" default='"GD" "WE"'/>
<xs:attribute name="geoCoords" type="SFVec3d" default="0 0 0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="GeoLOD">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html#GeoLOD"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="geoSystem" type="geoSystemType" default='"GD" "WE"'/>
<xs:attribute name="rootUrl" type="MFString"/>
<xs:attribute name="child1Url" type="MFString"/>
<xs:attribute name="child2Url" type="MFString"/>
<xs:attribute name="child3Url" type="MFString"/>
<xs:attribute name="child4Url" type="MFString"/>
<xs:attribute name="center" type="MFVec3f" default="0 0 0"/>
<xs:attribute name="range" type="MFFloat" default="10"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="GeoMetadata">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html#GeoMetadata"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DInfoNode">
<xs:choice>
<xs:element name="GeoCoordinate"/>
<xs:element name="GeoElevationGrid"/>
<xs:element name="GeoLocation"/>
<xs:element name="GeoOrigin"/>
<xs:element name="GeoLOD"/>
<!-- <xs:element name="GeoMetadata"/> excluded since does not make sense for a 
GeoMetadata node to pertain to another GeoMetadata node -->
<xs:element name="GeoPositionInterpolator"/>
<xs:element name="GeoTouchSensor"/>
<xs:element name="GeoViewpoint"/>
<xs:element name="ProtoInstance"/>
</xs:choice>
<xs:attribute name="url" type="MFString"/>
<xs:attribute name="data" type="xs:IDREFS"/>
<xs:attribute name="summary" type="MFString"/>
<xs:attribute name="title" type="SFString"/>
<xs:attribute name="description" type="SFString"/>
<xs:attribute name="coordinateSystem" type="SFString"/>
<xs:attribute name="horizontalDatum" type="SFString"/>
<xs:attribute name="verticalDatum" type="SFString"/>
<xs:attribute name="ellipsoid" type="SFString"/>
<xs:attribute name="extent" type="SFString"/>
<xs:attribute name="resolution" type="SFString"/>
<xs:attribute name="originator" type="SFString"/>
<xs:attribute name="copyright" type="SFString"/>
<xs:attribute name="date" type="SFString"/>
<xs:attribute name="metadataFormat" type="SFString"/>
<xs:attribute name="dataUrl" type="SFString"/>
<xs:attribute name="dataFormat" type="SFString"/>
</xs:extension>
<!-- 'data' field is MFNode reference array to pertinent GeoSpatial nodes 
affected by this GeoMetadata node, empty array refers to entire scene -->
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="GeoOrigin">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html#GeoOrigin"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DNode">
<xs:attribute name="geoSystem" type="geoSystemType" default='"GD" "WE"'/>
<xs:attribute name="geoCoords" type="SFVec3d" default="0 0 0"/>
<xs:attribute name="rotateYUp" type="SFBool" default="false"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="GeoPositionInterpolator">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html#GeoPositionInterpolator"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DInterpolatorNode">
<xs:sequence>
<xs:element name="GeoOrigin" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="geoSystem" type="geoSystemType" default='"GD" "WE"'/>
<xs:attribute name="keyValue" type="MFVec3d"/>
<xs:attribute name="value_changed" type="SFVec3d"/>
<xs:attribute name="geovalue_changed" type="SFVec3d"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="GeoTouchSensor">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html#GeoTouchSensor"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTouchSensorNode">
<xs:sequence>
<xs:element name="GeoOrigin" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="geoSystem" type="geoSystemType" default='"GD" "WE"'/>
<xs:attribute name="hitGeoCoord_changed" type="SFVec3d"/>
<xs:attribute name="hitNormal_changed" type="SFVec3f"/>
<xs:attribute name="hitPoint_changed" type="SFVec3f"/>
<xs:attribute name="hitTexCoord_changed" type="SFVec2f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="GeoViewpoint">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/geodata.html#GeoViewpoint"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DBindableNode">
<xs:sequence>
<xs:element name="GeoOrigin" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="geoSystem" type="geoSystemType" default='"GD" "WE"'/>
<xs:attribute name="fieldOfView" type="SFFloat" default="0.785398"/>
<xs:attribute name="jump" type="SFBool" default="true"/>
<xs:attribute name="orientation" type="SFRotation" default="0 0 1 0"/>
<xs:attribute name="position" type="SFVec3d" default="0 0 100000"/>
<xs:attribute name="description" type="SFString"/>
<xs:attribute name="headlight" type="SFBool" default="true"/>
<xs:attribute name="navType" type="MFString" default='"EXAMINE" "ANY"'/>
<xs:attribute name="speedFactor" type="SFFloat" default="1.0"/>
<xs:attribute name="set_orientation" type="SFRotation"/>
<xs:attribute name="set_position" type="SFVec3d"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!--======================================================================-->
<!--Humanoid Animation (H-Anim) 1.1 Nodes-->
<xs:simpleType name="jointName">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://ecetemp.uwaterloo.ca/~h-anim/spec1.1/#hierarchy"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="c1"/>
<xs:enumeration value="c2"/>
<xs:enumeration value="c3"/>
<xs:enumeration value="c4"/>
<xs:enumeration value="c5"/>
<xs:enumeration value="c6"/>
<xs:enumeration value="c7"/>
<xs:enumeration value="HumanoidRoot"/>
<xs:enumeration value="jaw"/>
<xs:enumeration value="l_acromioclavicular"/>
<xs:enumeration value="l_ankle"/>
<xs:enumeration value="l_calf"/>
<xs:enumeration value="l_clavicle"/>
<xs:enumeration value="l_elbow"/>
<xs:enumeration value="l_eyeball"/>
<xs:enumeration value="l_eyeball_joint"/>
<xs:enumeration value="l_eyebrow"/>
<xs:enumeration value="l_eyebrow_joint"/>
<xs:enumeration value="l_eyelid"/>
<xs:enumeration value="l_eyelid_joint"/>
<xs:enumeration value="l_forearm"/>
<xs:enumeration value="l_forefoot"/>
<xs:enumeration value="l_hand"/>
<xs:enumeration value="l_hindfoot"/>
<xs:enumeration value="l_hip"/>
<xs:enumeration value="l_index_distal"/>
<xs:enumeration value="l_index_metacarpal"/>
<xs:enumeration value="l_index_middle"/>
<xs:enumeration value="l_index_proximal"/>
<xs:enumeration value="l_index0"/>
<xs:enumeration value="l_index1"/>
<xs:enumeration value="l_index2"/>
<xs:enumeration value="l_index3"/>
<xs:enumeration value="l_knee"/>
<xs:enumeration value="l_metatarsal"/>
<xs:enumeration value="l_middistal"/>
<xs:enumeration value="l_middle_distal"/>
<xs:enumeration value="l_middle_metacarpal"/>
<xs:enumeration value="l_middle_middle"/>
<xs:enumeration value="l_middle_proximal"/>
<xs:enumeration value="l_middle0"/>
<xs:enumeration value="l_middle1"/>
<xs:enumeration value="l_middle2"/>
<xs:enumeration value="l_middle3"/>
<xs:enumeration value="l_midproximal"/>
<xs:enumeration value="l_midtarsal"/>
<xs:enumeration value="l_pinky_distal"/>
<xs:enumeration value="l_pinky_metacarpal"/>
<xs:enumeration value="l_pinky_middle"/>
<xs:enumeration value="l_pinky_proximal"/>
<xs:enumeration value="l_pinky0"/>
<xs:enumeration value="l_pinky1"/>
<xs:enumeration value="l_pinky2"/>
<xs:enumeration value="l_pinky3"/>
<xs:enumeration value="l_ring_distal"/>
<xs:enumeration value="l_ring_metacarpal"/>
<xs:enumeration value="l_ring_middle"/>
<xs:enumeration value="l_ring_proximal"/>
<xs:enumeration value="l_ring0"/>
<xs:enumeration value="l_ring1"/>
<xs:enumeration value="l_ring2"/>
<xs:enumeration value="l_ring3"/>
<xs:enumeration value="l_scapula"/>
<xs:enumeration value="l_shoulder"/>
<xs:enumeration value="l_sternoclavicular"/>
<xs:enumeration value="l_subtalar"/>
<xs:enumeration value="l_thigh"/>
<xs:enumeration value="l_thumb_distal"/>
<xs:enumeration value="l_thumb_metacarpal"/>
<xs:enumeration value="l_thumb_proximal"/>
<xs:enumeration value="l_thumb1"/>
<xs:enumeration value="l_thumb2"/>
<xs:enumeration value="l_thumb3"/>
<xs:enumeration value="l_upperarm"/>
<xs:enumeration value="l_wrist"/>
<xs:enumeration value="l1"/>
<xs:enumeration value="l2"/>
<xs:enumeration value="l3"/>
<xs:enumeration value="l4"/>
<xs:enumeration value="l5"/>
<xs:enumeration value="pelvis"/>
<xs:enumeration value="r_acromioclavicular"/>
<xs:enumeration value="r_ankle"/>
<xs:enumeration value="r_calf"/>
<xs:enumeration value="r_clavicle"/>
<xs:enumeration value="r_elbow"/>
<xs:enumeration value="r_eyeball"/>
<xs:enumeration value="r_eyeball_joint"/>
<xs:enumeration value="r_eyebrow"/>
<xs:enumeration value="r_eyebrow_joint"/>
<xs:enumeration value="r_eyelid"/>
<xs:enumeration value="r_eyelid_joint"/>
<xs:enumeration value="r_forearm"/>
<xs:enumeration value="r_forefoot"/>
<xs:enumeration value="r_hand"/>
<xs:enumeration value="r_hindfoot"/>
<xs:enumeration value="r_hip"/>
<xs:enumeration value="r_index_distal"/>
<xs:enumeration value="r_index_metacarpal"/>
<xs:enumeration value="r_index_middle"/>
<xs:enumeration value="r_index_proximal"/>
<xs:enumeration value="r_index0"/>
<xs:enumeration value="r_index1"/>
<xs:enumeration value="r_index2"/>
<xs:enumeration value="r_index3"/>
<xs:enumeration value="r_knee"/>
<xs:enumeration value="r_metatarsal"/>
<xs:enumeration value="r_middistal"/>
<xs:enumeration value="r_middle_distal"/>
<xs:enumeration value="r_middle_metacarpal"/>
<xs:enumeration value="r_middle_middle"/>
<xs:enumeration value="r_middle_proximal"/>
<xs:enumeration value="r_middle0"/>
<xs:enumeration value="r_middle1"/>
<xs:enumeration value="r_middle2"/>
<xs:enumeration value="r_middle3"/>
<xs:enumeration value="r_midproximal"/>
<xs:enumeration value="r_midtarsal"/>
<xs:enumeration value="r_pinky_distal"/>
<xs:enumeration value="r_pinky_metacarpal"/>
<xs:enumeration value="r_pinky_middle"/>
<xs:enumeration value="r_pinky_proximal"/>
<xs:enumeration value="r_pinky0"/>
<xs:enumeration value="r_pinky1"/>
<xs:enumeration value="r_pinky2"/>
<xs:enumeration value="r_pinky3"/>
<xs:enumeration value="r_ring_distal"/>
<xs:enumeration value="r_ring_metacarpal"/>
<xs:enumeration value="r_ring_middle"/>
<xs:enumeration value="r_ring_proximal"/>
<xs:enumeration value="r_ring0"/>
<xs:enumeration value="r_ring1"/>
<xs:enumeration value="r_ring2"/>
<xs:enumeration value="r_ring3"/>
<xs:enumeration value="r_scapula"/>
<xs:enumeration value="r_shoulder"/>
<xs:enumeration value="r_sternoclavicular"/>
<xs:enumeration value="r_subtalar"/>
<xs:enumeration value="r_thigh"/>
<xs:enumeration value="r_thumb_distal"/>
<xs:enumeration value="r_thumb_metacarpal"/>
<xs:enumeration value="r_thumb_proximal"/>
<xs:enumeration value="r_thumb1"/>
<xs:enumeration value="r_thumb2"/>
<xs:enumeration value="r_thumb3"/>
<xs:enumeration value="r_upperarm"/>
<xs:enumeration value="r_wrist"/>
<xs:enumeration value="sacroiliac"/>
<xs:enumeration value="sacrum"/>
<xs:enumeration value="skull"/>
<xs:enumeration value="skullbase"/>
<xs:enumeration value="t1"/>
<xs:enumeration value="t2"/>
<xs:enumeration value="t3"/>
<xs:enumeration value="t4"/>
<xs:enumeration value="t5"/>
<xs:enumeration value="t6"/>
<xs:enumeration value="t7"/>
<xs:enumeration value="t8"/>
<xs:enumeration value="t9"/>
<xs:enumeration value="t10"/>
<xs:enumeration value="t11"/>
<xs:enumeration value="t12"/>
<xs:enumeration value="temporomandibular"/>
<xs:enumeration value="vc1"/>
<xs:enumeration value="vc2"/>
<xs:enumeration value="vc3"/>
<xs:enumeration value="vc4"/>
<xs:enumeration value="vc5"/>
<xs:enumeration value="vc6"/>
<xs:enumeration value="vc7"/>
<xs:enumeration value="vl1"/>
<xs:enumeration value="vl2"/>
<xs:enumeration value="vl3"/>
<xs:enumeration value="vl4"/>
<xs:enumeration value="vl5"/>
<xs:enumeration value="vt1"/>
<xs:enumeration value="vt2"/>
<xs:enumeration value="vt3"/>
<xs:enumeration value="vt4"/>
<xs:enumeration value="vt5"/>
<xs:enumeration value="vt6"/>
<xs:enumeration value="vt7"/>
<xs:enumeration value="vt8"/>
<xs:enumeration value="vt9"/>
<xs:enumeration value="vt10"/>
<xs:enumeration value="vt11"/>
<xs:enumeration value="vt12"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="HAnimDisplacer">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/hanim.html#HAnimDisplacer"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGeometricPropertyNode">
<xs:attribute name="name" type="SFString"/>
<xs:attribute name="coordIndex" type="MFInt32"/>
<xs:attribute name="displacements" type="MFVec3f"/>
<xs:attribute name="weight" type="SFFloat"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!-- is humanoidBodyType still needed? -->
<xs:element name="humanoidBodyType">
<xs:annotation>
<xs:appinfo/>
<xs:documentation source="http://ece.uwaterloo.ca/~h-anim/spec1.1/#humanoid"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="ContainedNodeLabel"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="HAnimHumanoid">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/hanim.html#HAnimHumanoid"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DHumanoidNode">
<xs:sequence minOccurs="0">
<xs:element ref="HAnimJoint" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="HAnimSegment" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="HAnimSite" minOccurs="0" maxOccurs="unbounded"/>
<xs:choice minOccurs="0">
<xs:element ref="Coordinate"/>
<xs:element ref="CoordinateDouble"/>
</xs:choice>
<xs:element ref="Normal" minOccurs="0"/>
<xs:group ref="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="SFString"/>
<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: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="SFString"/>
</xs:extension>
<!-- <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>
<xs:element name="HAnimJoint">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/hanim.html#HAnimJoint"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="name" type="jointName"/>
<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:attribute name="scaleOrientation" type="SFRotation" default="0 0 1 0"/>
<xs:attribute name="translation" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="skinCoordIndex" type="MFInt32"/>
<xs:attribute name="skinCoordWeight" type="MFFloat"/>
<xs:attribute name="llimit" type="MFFloat"/>
<xs:attribute name="ulimit" type="MFFloat"/>
<xs:attribute name="limitOrientation" type="SFRotation" default="0 0 1 0"/>
<xs:attribute name="stiffness" type="MFFloat" default="0 0 0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="HAnimSegment">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/hanim.html#HAnimSegment"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="name" type="SFString"/>
<xs:attribute name="mass" type="SFFloat" default="0"/>
<xs:attribute name="centerOfMass" type="SFVec3f" default="0 0 0"/>
<xs:attribute name="momentsOfInertia" type="MFFloat" default="0 0 0 0 0 0 0 0 
0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="HAnimSite">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/hanim.html#HAnimSite"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:sequence>
<xs:element name="Coordinate" minOccurs="0"/>
<xs:element name="HAnimDisplacer" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="SFString"/>
<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:attribute name="scaleOrientation" type="SFRotation" default="0 0 1 0"/>
<xs:attribute name="translation" type="SFVec3f" default="0 0 0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!--======================================================================-->
<!--Nurbs Nodes-->
<xs:element name="Contour2D">
<xs:annotation>
<xs:appinfo>http://www.blaxxun.com/support/developerguide/developer/contact/3d/nurbs/spec/nodes.htm#Contour2D</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#Contour2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ContourPolyline2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#ContourPolyline2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DParametricGeometryNode">
<xs:attribute name="point" type="MFVec2f"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NurbsCurve">
<xs:annotation>
<xs:appinfo>http://www.blaxxun.com/support/developerguide/developer/contact/3d/nurbs/spec/nodes.htm#NurbsCurve</xs:appinfo>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#NurbsCurve"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DParametricGeometryNode">
<xs:attribute name="knot" type="MFDouble"/>
<xs:attribute name="order" type="SFInt32" default="3"/>
<xs:attribute name="controlPoint" type="MFVec3f"/>
<xs:attribute name="weight" type="MFDouble"/>
<xs:attribute name="tessellation" type="SFInt32" default="0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NurbsCurve2D">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#NurbsCurve2D"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DParametricGeometryNode">
<xs:attribute name="knot" type="MFDouble"/>
<xs:attribute name="order" type="SFInt32" default="3"/>
<xs:attribute name="controlPoint" type="MFVec3f"/>
<xs:attribute name="weight" type="MFDouble"/>
<xs:attribute name="tessellation" type="SFInt32" default="0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NurbsOrientationInterpolator">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#NurbsOrientationInterpolator"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="set_fraction" type="SFFloat"/>
<xs:attribute name="value_changed" type="SFRotation"/>
<xs:attribute name="knot" type="MFDouble"/>
<xs:attribute name="order" type="SFInt32" default="3"/>
<xs:attribute name="weight" type="MFDouble"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NurbsPositionInterpolator">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#NurbsPositionInterpolator"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="set_fraction" type="SFFloat"/>
<xs:attribute name="value_changed" type="SFVec3f"/>
<xs:attribute name="knot" type="MFDouble"/>
<xs:attribute name="order" type="SFInt32" default="3"/>
<xs:attribute name="weight" type="MFDouble"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NurbsSet">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#NurbsSet"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DGroupingNode">
<xs:attribute name="tessellationScale" type="SFFloat" default="1.0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NurbsSurfaceInterpolator">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#NurbsSurfaceInterpolator"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DChildNode">
<xs:attribute name="set_fraction" type="SFVec2f"/>
<xs:attribute name="normal_changed" type="SFVec3f"/>
<xs:attribute name="position_changed" type="SFVec3f"/>
<xs:attribute name="uDimension" type="SFInt32" default="0"/>
<xs:attribute name="vDimension" type="SFInt32" default="0"/>
<xs:attribute name="uKnot" type="MFDouble"/>
<xs:attribute name="vKnot" type="MFDouble"/>
<xs:attribute name="uOrder" type="SFInt32" default="3"/>
<xs:attribute name="vOrder" type="SFInt32" default="3"/>
<xs:attribute name="weight" type="MFDouble"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NurbsTextureCoordinate">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#NurbsTextureCoordinate"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DTextureCoordinateNode">
<xs:attribute name="uDimension" type="SFInt32" default="0"/>
<xs:attribute name="vDimension" type="SFInt32" default="0"/>
<xs:attribute name="uKnot" type="MFDouble"/>
<xs:attribute name="vKnot" type="MFDouble"/>
<xs:attribute name="uOrder" type="SFInt32" default="3"/>
<xs:attribute name="vOrder" type="SFInt32" default="3"/>
<xs:attribute name="weight" type="MFDouble"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!--following NURBs nodes still need to be updated...-->
<xs:element name="NurbsPatchSurface">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.blaxxun.com/support/developerguide/developer/contact/3d/nurbs/spec/nodes.htm#NurbsSurface"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DNurbsSurfaceGeometryNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NurbsSweptSurface">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#NurbsSweptSurface"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DParametricGeometryNode">
<xs:attribute name="ccw" type="SFBool" default="true"/>
<xs:attribute name="solid" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NurbsSwungSurface">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#NurbsSwungSurface"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DParametricGeometryNode">
<xs:attribute name="ccw" type="SFBool" default="true"/>
<xs:attribute name="solid" type="SFBool" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="NurbsTrimmedSurface">
<xs:annotation>
<xs:appinfo/>
<xs:documentation 
source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-FDIS-X3dAbstractSpecification/Part01/components/nurbs.html#NurbsTrimmedSurface"/>
</xs:annotation>
<xs:complexType mixed="false">
<xs:complexContent mixed="false">
<xs:extension base="X3DNurbsSurfaceGeometryNode"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!--======================================================================-->
<!--Other components to follow: Web3dExtensions.-->
<!--======================================================================-->
</xs:schema>

The base x3D schema file references two additional schema files, x3d-3.0-Web3dExtensionsPublic.xsd and x3d-3.0-Web3dExtensionsPrivate.xsd, that illustrate how publicly approved and private extensions may be accessed while using the standard schema for the standard functionality (see B.3 x3d-3.0-Web3dExtensionsPublic.xsd and B.4 x3d-3.0-Web3dExtensionsPrivate.xsd).

x3d-3.0.xsd is the X3D Schema.

B.3 x3d-3.0-Web3dExtensionsPublic.xsd

The public X3D schema file will be used to contain approved extensions that have not yet been included in Part 1 of ISO/IEC 19775. The form of the public X3D schema file is depicted below:

<!--
#
# X3D Web3D Extensions Public Schema:
#
# http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPublic.xsd
#
# current version: 3.0.1
#
# revised: 16 September 2004
#
# Purpose: support Web3D Consortium extensions to the X3D tagset.
# The primary Extensible 3D (X3D) Schema
# x3d-3.0.xsd is augmented by node definitions in
# x3d-3.0-Web3dExtensionsPublic.xsd and
# x3d-3.0-Web3dExtensionsPrivate.xsd
#
# X3D Specification Schemas:
# http://www.web3d.org/specifications/x3d-3.0.xsd
# http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPublic.xsd
# http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPrivate.xsd
#
# Web3D extensions update URL:
# http://www.web3d.org/x3d/content/x3d-3.0-Web3dExtensionsPublic.xsd
#
# changelog:
# http://www.web3d.org/specifications/x3d-schema-changelog.txt
#
-->
 
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" version="3.0.0">
 
<!-- construction note: unlike xs:element, xs:attributeGroup constructs from 
parent schema not referencable -->
 
<!-- ================================================================= -->
 
<!-- enter xs:element and xs:attribute definitions here -->
 
<!-- ================================================================= -->
 
</xs:schema>

B.4 x3d-3.0-Web3dExtensionsPrivate.xsd

The private X3D schema file will be used to contain extensions that have not been approved but may exist for testing future development. The form of the private X3D schema file is depicted below:

<!--
#
# X3D Web3D Extensions Private Schema:
#
# http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPrivate.xsd
#
# current version: 3.0.1
#
# revised: 16 September 2004
#
# Purpose: support Web3D Consortium extensions to the X3D tagset.
# The primary Extensible 3D (X3D) Schema
# x3d-3.0.xsd is augmented by node definitions in
# x3d-3.0-Web3dExtensionsPublic.xsd and
# x3d-3.0-Web3dExtensionsPrivate.xsd
#
# X3D Specification Schemas:
# http://www.web3d.org/specifications/x3d-3.0.xsd
# http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPublic.xsd
# http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPrivate.xsd
#
# changelog:
# http://www.web3d.org/specifications/x3d-schema-changelog.txt
#
-->
 
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" version="3.0.0">
 
<!-- construction note: unlike xs:element, xs:attributeGroup constructs from 
parent schema not referencable -->
 
<!-- ================================================================= -->
 
<!-- Local/user schema extensions for elements and attributes are added here. 
-->
 
<!-- ================================================================= -->
 
</xs:schema>

--- X3D separator bar ---