<?xml version="1.0" encoding="UTF-8"?>
<!-- X3D Unified Object Model (X3DUOM) X3dUnifiedObjectModel-4.0.xml -->
<!-- Online at https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml -->
<!-- This file contains a listing of all abstract and concrete nodes in version 4.0 of X3D -->
<!-- Generated 2023-01-29-08:00 10:15:59.0870706-08:00 -->
<X3dUnifiedObjectModel xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
                        version="4.0"
                        xsd:noNamespaceSchemaLocation="X3dUnifiedObjectModel.xsd">
   <SimpleTypeEnumerations>
      <!-- For schema xs:simpleType with contained xs:enumeration definitions, follow naming convention of name ending in 'Type', 'Choices' (for strict enumeration set) or 'Values' (for suggested tokens). -->
      <SimpleType name="accessTypeChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="accessTypeChoices are strictly allowed enumeration values for accessType, used when defining field declarations within a Script node or ProtoDeclare/ExternProtoDeclare statements. Original accessType name values in VRML97 were eventIn, eventOut, field, exposedField respectively. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#FieldSemantics">
         <enumeration value="initializeOnly"
                       appinfo="A field with accessType initializeOnly can be initialized, but cannot send or receive events."/>
         <enumeration value="inputOnly"
                       appinfo="A field with accessType inputOnly cannot be initialized or included in a scene file, but can receive input event values via a ROUTE."/>
         <enumeration value="outputOnly"
                       appinfo="A field with accessType outputOnly cannot be initialized or included in a scene file, but can send output event values via a ROUTE."/>
         <enumeration value="inputOutput"
                       appinfo="A field with accessType inputOutput can be initialized, and can also send or receive events."/>
      </SimpleType>
      <SimpleType name="alphaModeChoices"
                   baseType="SFString"
                   appinfo="Permitted values for Appearance alphaMode field. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/Shape.html#Appearance">
         <enumeration value="AUTO"
                       appinfo="Material transparency is applied to texture transparency"/>
         <enumeration value="OPAQUE"
                       appinfo="Ignore alpha channel texture transparency, opaque"/>
         <enumeration value="MASK"
                       appinfo="Alpha-testing mode for transparent when alpha value less than 0.5 and opaque when greater than or equal to 0.5"/>
         <enumeration value="BLEND"
                       appinfo="Blend combines partial transparency of textures and materials"/>
      </SimpleType>
      <SimpleType name="appliedParametersChoices"
                   baseType="MFString"
                   appinfo="Default global parameters for collision outputs of rigid body physics system. Contact node can override parent CollisionCollection node. Multiple optional values, but appliedParameters enumerations cannot be extended. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#t-AppliedParametersValidValues">
         <enumeration value="&#34;BOUNCE&#34;" appinfo="The bounce field value is used."/>
         <enumeration value="&#34;USER_FRICTION&#34;"
                       appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used."/>
         <enumeration value="&#34;FRICTION_COEFFICIENT-2&#34;"
                       appinfo="Apply frictionCoefficients values"/>
         <enumeration value="&#34;ERROR_REDUCTION&#34;" appinfo="Apply softnessErrorCorrection value"/>
         <enumeration value="&#34;CONSTANT_FORCE&#34;" appinfo="Apply softnessConstantForceMix value"/>
         <enumeration value="&#34;SPEED-1&#34;" appinfo="Apply first component of surfaceSpeed array"/>
         <enumeration value="&#34;SPEED-2&#34;"
                       appinfo="Apply second component of surfaceSpeed array"/>
         <enumeration value="&#34;SLIP-1&#34;" appinfo="Apply first component of slipFactors array"/>
         <enumeration value="&#34;SLIP-2&#34;" appinfo="Apply second component of slipFactors array"/>
      </SimpleType>
      <SimpleType name="bboxSizeType"
                   baseType="SFVec3f"
                   defaultValue="-1 -1 -1"
                   regex="\s*((([+]?(((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){2}([+]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*)|((\-1(\.(0)*)?([Ee][+-]?[0]+)?\s+){2}\-1(\.(0)*)?([Ee][+-]?[0]+)?)\s*)?"
                   appinfo="bboxSizeType dimensions are non-negative values, default value (-1 -1 -1) indicates that no bounding box size has been computed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/grouping.html#Boundingboxes"/>
      <SimpleType name="biquadTypeFilterChoices"
                   baseType="SFString"
                   appinfo="Permitted values for BiquadFilter type. X3D enumeration naming conventions are capitalized versions of Web Audio API enumerations, also changing hyphens to underscores. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#BiquadFilter">
         <enumeration value="LOWPASS"
                       alias="lowpass"
                       appinfo="X3D version of &#34;lowpass&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
         <enumeration value="HIGHPASS"
                       alias="highpass"
                       appinfo="X3D version of &#34;highpass&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
         <enumeration value="BANDPASS"
                       alias="bandpass"
                       appinfo="X3D version of &#34;bandpass&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
         <enumeration value="LOWSHELF"
                       alias="lowshelf"
                       appinfo="X3D version of &#34;lowshelf&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
         <enumeration value="HIGHSHELF"
                       alias="highshelf"
                       appinfo="X3D version of &#34;highshelf&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
         <enumeration value="PEAKING"
                       alias="peaking"
                       appinfo="X3D version of &#34;peaking&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
         <enumeration value="NOTCH"
                       alias="notch"
                       appinfo="X3D version of &#34;notch&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
         <enumeration value="ALLPASS"
                       alias="allpass"
                       appinfo="X3D version of &#34;allpass&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
      </SimpleType>
      <SimpleType name="channelCountModeChoices"
                   baseType="SFString"
                   appinfo="Permitted values for channelCountMode in X3DSoundChannelNode and X3DSoundDestinationNode. X3D enumeration naming conventions are capitalized versions of Web Audio API enumerations, also changing hyphens to underscores. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#SoundEffectsProcessing">
         <enumeration value="MAX"
                       alias="max"
                       appinfo="X3D version of &#34;max&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
         <enumeration value="CLAMPED_MAX"
                       alias="clamped-max"
                       appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
         <enumeration value="EXPLICIT"
                       alias="explicit"
                       appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
      </SimpleType>
      <SimpleType name="channelInterpretationChoices"
                   baseType="SFString"
                   appinfo="Permitted values for channelInterpretation in X3DSoundChannelNode and X3DSoundDestinationNode. X3D enumeration naming conventions are capitalized versions of Web Audio API enumerations, also changing hyphens to underscores. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#SoundEffectsProcessing">
         <enumeration value="SPEAKERS"
                       appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
         <enumeration value="DISCRETE"
                       appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
      </SimpleType>
      <SimpleType name="closureTypeChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="closureTypeChoices are strictly allowed enumeration values for ArcClose2D closureType field. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry2D.html#ArcClose2D">
         <enumeration value="PIE"
                       appinfo="Connects arc endpoints to center, forming a pie wedge"/>
         <enumeration value="CHORD"
                       appinfo="Connects arc endpoints directly to each other, as in chord on a circle"/>
      </SimpleType>
      <SimpleType name="componentNameChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="componentNameChoices are enumeration constants used to identify the profile for each scene-graph node, and also utilized by X3D element to identify the components required by the contained Scene. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#Components">
         <enumeration value="Core"
                       appinfo="The Core component supplies the base functionality for the X3D run-time system, including the abstract base node type, field types, the event model, and routing."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html"/>
         <enumeration value="CADGeometry"
                       appinfo="The CADGeometry component is provided for Computer-Aided Design (CAD) nodes."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/CADGeometry.html"/>
         <enumeration value="CubeMapTexturing"
                       appinfo="The Cube Map Environmental Texturing component describes how additional texturing effects are defined to produce environmental effects such as reflections from objects."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalTexturing"/>
         <enumeration value="DIS"
                       appinfo="The Distributed Interactive Simulation (DIS) component provides networked interoperability with the IEEE DIS protocol for sharing state and conducting real-time platform-level simulations across multiple host computers."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/dis.html"/>
         <enumeration value="EnvironmentalEffects"
                       appinfo="Nodes in the Environmental effects component support the creation of realistic environmental effects such as panoramic backgrounds and fog."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalEffects.html"/>
         <enumeration value="EnvironmentalSensor"
                       appinfo="The Environment Sensor nodes emit events indicating activity in the scene environment, usually based on interactions between the viewer and the world."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalSensor.html"/>
         <enumeration value="EventUtilities"
                       appinfo="The Event Utility nodes provide the capability to filter, trigger, convert, or sequence numerous event-types for common interactive applications without the use of a Script node."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/eventUtilities.html"/>
         <enumeration value="Followers"
                       appinfo="The Follower nodes (Chasers and Dampers) support dynamic creation of smooth parameter transitions at run time."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html"/>
         <enumeration value="Geometry2D"
                       appinfo="The Geometry2D component defines how two-dimensional geometry is specified and what shapes are available."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry2D.html"/>
         <enumeration value="Geometry3D"
                       appinfo="The Geometry3D component describes how three-dimensional geometry is specified and defines ElevationGrid, Extrusion, IndexedFaceSet, and most primitive geometry nodes (Box, Cone, Cylinder, Sphere)."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry3D.html"/>
         <enumeration value="Geospatial"
                       appinfo="The Geospatial component defines how to associate real-world locations in an X3D scene and specifies nodes particularly tuned for geospatial applications."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html"/>
         <enumeration value="Grouping"
                       appinfo="The Grouping component describes how nodes are organized into groups to establish a transformation hierarchy for the X3D scene graph."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/grouping.html"/>
         <enumeration value="HAnim"
                       appinfo="The Humanoid Animation (HAnim) component for X3D defines node bindings and other details for implementing ISO/IEC 19774, the HAnim International Specification. Original name was H-Anim for X3D versions 3.0 through 3.3, both enumeration values HAnim and H-Anim are allowed to pass validation."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html"/>
         <enumeration value="H-Anim"
                       appinfo="Legacy enumeration H-Anim for X3D versions 3.0-3.3 provides backwards compatibility with Humanoid Animation (HAnim) version 1, preferred form of enumeration value is HAnim."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html"/>
         <enumeration value="Interpolation"
                       appinfo="Interpolator nodes provide keyframe-based animation capability."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html"/>
         <enumeration value="KeyDeviceSensor"
                       appinfo="The Key Device Sensor defines how keyboard keystrokes are inserted into an X3D world."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/keyDeviceSensor.html"/>
         <enumeration value="Layering"
                       appinfo="The Layering component describes how to layer a set of subscene layers into a composite scene."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layering.html"/>
         <enumeration value="Layout"
                       appinfo="The Layout component defines how to precisely position content in a scene in relation to the rendered results, especially for integrating 2D content with 3D content."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layout.html"/>
         <enumeration value="Lighting"
                       appinfo="The Lighting component specifies how light sources are defined and positioned, as well as how lights effect the rendered image."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/lighting.html"/>
         <enumeration value="Navigation"
                       appinfo="The Navigation component specifies how a user can effectively and intuitively move through and around a 3D scene."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html"/>
         <enumeration value="Networking"
                       appinfo="The Networking component defines node types and other features used to access file-based and streaming resources on the World Wide Web."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/networking.html"/>
         <enumeration value="NURBS"
                       appinfo="The NURBS component describes Non-uniform Rational B-Spline (NURBS) geometry and interpolation nodes."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html"/>
         <enumeration value="ParticleSystems"
                       appinfo="The Particle Systems component specifies how to model particles and their interactions through the application of basic physics principles to affect motion."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html"/>
         <enumeration value="Picking"
                       appinfo="The Picking component provides the ability to test for arbitrary object collision and provide basic capabilities to detecting object intersections and interactions."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html"/>
         <enumeration value="PointingDeviceSensor"
                       appinfo="Pointing device sensor nodes detect pointing events from user-interface devices, defining activities such as a user selecting a piece of geometry."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/pointingDeviceSensor.html"/>
         <enumeration value="TextureProjection"
                       appinfo="TextureProjection nodes project texture images onto geometry in a scene."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/textureProjector.html"/>
         <enumeration value="Rendering"
                       appinfo="The Rendering component includes fundamental rendering primitives such as TriangleSet and PointSet nodes, as well as geometric properties nodes that define how coordinate indices, colors, normals and texture coordinates are specified."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html"/>
         <enumeration value="RigidBodyPhysics"
                       appinfo="The Rigid Body Physics component describes how to model rigid bodies and their interactions through the application of basic physics principles to effect motion."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html"/>
         <enumeration value="Scripting"
                       appinfo="The Scripting component describes how Script nodes are used to effect changes in X3D worlds."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/scripting.html"/>
         <enumeration value="Shaders"
                       appinfo="The Programmable Shaders component describes how programmable shaders are specified and how they affect the visual appearance of geometry."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html"/>
         <enumeration value="Shape"
                       appinfo="The Shape component defines nodes for associating geometry with their visible properties and the scene environment."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html"/>
         <enumeration value="Sound"
                       appinfo="The Sound component defines how sound is delivered to an X3D world as well as how sounds are accessed."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html"/>
         <enumeration value="Text"
                       appinfo="The Text component defines how text strings are rendered in an X3D scene."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/text.html"/>
         <enumeration value="Texturing"
                       appinfo="The Texturing component specifies how 2D texture images are defined and then positioned on associated geometry."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html"/>
         <enumeration value="Texturing3D"
                       appinfo="The Texturing3D component specifies how 3D volumetric textures describe surface properties as data points in a volume of space, rather than a flat surface."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texture3D.html"/>
         <enumeration value="Time"
                       appinfo="The Time component defines how time is sensed, computed and associated with events in an X3D scene."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/time.html"/>
         <enumeration value="VolumeRendering"
                       appinfo="The Volume Rendering component provides the ability to specify and render volumetric data sets."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesAudioClip"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesAudioClip lists the allowed containerField enumeration values for AudioClip node: default &#34;source&#34; if parent node is Sound node, &#34;inputs&#34; if parent is part of audio graph, otherwise &#34;children&#34; if parent node is LoadSensor."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="children"
                       appinfo="parent node is X3DSoundChannelNode, X3DSoundDestinationNode, or X3DSoundProcessingNode"/>
         <enumeration value="source"
                       appinfo="parent node is Sound node (legacy X3D3 SFNode source is allowed content model, prefer X3D4 MFNode children)"/>
         <enumeration value="watchList"
                       appinfo="parent node is LoadSensor node (X3D3 only, validation allowed in X3D4 for backwards compatibility)"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesAudioGraph"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesAudioClip lists the allowed containerField enumeration values for AudioClip node: default &#34;children&#34; if parent is part of audio graph, &#34;source&#34; if parent node is Sound node, otherwise &#34;outputs&#34; signal is provided to this node by parent ChannelSplitter node."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="children"
                       appinfo="provide inputs to parent (X3DSoundChannelNode, X3DSoundDestinationNode, X3DSoundProcessingNode) as part of audio graph, otherwise standalone as childe in scene graph"/>
         <enumeration value="outputs"
                       appinfo="parent node is ChannelSplitter, which is providing single-channel signal input to this node"/>
         <enumeration value="source"
                       appinfo="parent node is Sound node: legacy X3D3 SFNode source is allowed content model (AudioClip or MovieTexture only), prefer X3D4 MFNode children."/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesColor"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesColor lists the allowed containerField enumeration values for Color and ColorRGBA nodes: default &#34;color&#34; if parent node is a geometry node, otherwise &#34;colorRamp&#34; if parent node is ParticleSystem."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="color" appinfo="parent node is a geometry node"/>
         <enumeration value="colorRamp" appinfo="parent node is ParticleSystem"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesDISEntityTypeMapping"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesDISEntityTypeMapping lists the allowed containerField enumeration values for DISEntityTypeMapping node: default &#34;mapping&#34; if parent node is DISEntityManager node, otherwise &#34;children&#34; if parent node is LoadSensor."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="children"
                       appinfo="parent node is DISEntityManager (formerly mapping in X3D3) or LoadSensor (formerly watchList in X3D3)"/>
         <enumeration value="mapping"
                       appinfo="parent node is DISEntityManager node (X3D3, validation allowed in X3D4 for backwards compatibility)"/>
         <enumeration value="watchList"
                       appinfo="parent node is LoadSensor node (X3D3 only, validation allowed in X3D4 for backwards compatibility)"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesGroupLODShapeTransformSwitch"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesGroupLODShapeTransformSwitch lists the allowed containerField enumeration values for Shape, Transform and LOD nodes: &#34;children&#34; if parent node has abstract type X3DGroupingNode, otherwise &#34;metadata&#34; default."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="children"
                       appinfo="parent node has abstract type X3DGroupingNode"/>
         <enumeration value="proxy" appinfo="parent node is Collision"/>
         <enumeration value="rootNode" appinfo="parent node is GeoLOD"/>
         <enumeration value="shape" appinfo="parent node is CADFace or CollidableShape"/>
         <enumeration value="skin" appinfo="parent node is HAnimHumanoid"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesHAnimJoint"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesHAnimJoint lists the allowed containerField enumeration values for HAnimJoint node: default &#34;children&#34; if parent node is another HAnimJoint, otherwise &#34;joints&#34; or &#34;skeleton&#34; if parent node is HAnimHumanoid."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="children" appinfo="parent node is another HAnimJoint"/>
         <enumeration value="joints"
                       appinfo="parent node is HAnimHumanoid, typically as a USE node"/>
         <enumeration value="skeleton" appinfo="parent node is HAnimHumanoid"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesHAnimMotion"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesHAnimMotion lists the allowed containerField enumeration values for HAnimMotion node: default &#34;children&#34; if parent node is another HAnimJoint, otherwise &#34;motions&#34; if parent node is HAnimHumanoid."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="children" appinfo="parent node is a grouping node"/>
         <enumeration value="segments" appinfo="parent node is HAnimHumanoid"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesHAnimSegment"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesHAnimSegment lists the allowed containerField enumeration values for HAnimSegment node: default &#34;children&#34; if parent node is another HAnimJoint, otherwise &#34;joints&#34; or &#34;skeleton&#34; if parent node is HAnimHumanoid."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="children" appinfo="parent node is HAnimJoint"/>
         <enumeration value="segments"
                       appinfo="parent node is HAnimHumanoid, typically as a USE node"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesHAnimSite"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesHAnimSite lists the allowed containerField enumeration values for HAnimSite node: default &#34;children&#34; if parent node is another HAnimJoint, otherwise &#34;sites&#34;, &#34;skeleton&#34; or &#34;viewpoints&#34; if parent node is HAnimHumanoid."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="children" appinfo="parent node is HAnimSegment"/>
         <enumeration value="sites"
                       appinfo="parent node is HAnimHumanoid, typically as a USE node"/>
         <enumeration value="skeleton" appinfo="parent node is HAnimHumanoid"/>
         <enumeration value="viewpoints" appinfo="parent node is HAnimHumanoid"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesMetadata"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesMetadata lists the allowed containerField enumeration values for Metadata nodes: &#34;value&#34; if providing information and parent node is MetadataSet collection, otherwise default &#34;metadata&#34; if providing information about parent node."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="metadata"
                       appinfo="this node provides metadata information regarding its parent node."/>
         <enumeration value="value"
                       appinfo="parent node is MetadataSet, this node is providing information as part of a MetadataSet collection."/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesPackagedShader"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesPackagedShader lists the allowed containerField enumeration values for PackagedShader node: default &#34;shaders&#34; if parent node is DISEntityManager node, otherwise &#34;children&#34; if parent node is LoadSensor."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="shaders" appinfo="parent node is an Appearance node"/>
         <enumeration value="children"
                       appinfo="parent node is LoadSensor (formerly watchList in X3D3)"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesShaderPart"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesShaderPart lists the allowed containerField enumeration values for ShaderPart node: default &#34;shaders&#34; if parent node is ShaderPart node, otherwise &#34;children&#34; if parent node is LoadSensor."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="parts" appinfo="parent node is ComposedShader node"/>
         <enumeration value="children"
                       appinfo="parent node is LoadSensor (formerly watchList in X3D3)"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesSoundSource"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesSoundSource lists the allowed containerField enumeration values for X3DSoundSourceNode elements: default &#34;source&#34; if parent node is Sound node, otherwise &#34;inputs&#34; if parent node is another node in audio graph."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="children"
                       appinfo="parent node is X3DSoundChannelNode, X3DSoundDestinationNode, or X3DSoundProcessingNode"/>
         <enumeration value="source"
                       appinfo="parent node is Sound node (legacy X3D3 SFNode source is allowed content model, prefer X3D4 MFNode children)"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesTextureCoordinate"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesTextureCoordinate lists the allowed containerField enumeration values for TextureCoordinate node: default &#34;texCoord&#34; if parent node is a geometry node, otherwise &#34;texCoordRamp&#34; if parent node is ParticleSystem."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="texCoord" appinfo="parent node is a geometry node"/>
         <enumeration value="texCoordRamp" appinfo="parent node is ParticleSystem"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesX3DCoordinateNode"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesX3DCoordinateNode lists the allowed containerField enumeration values for Coordinate and CoordinateDouble nodes: default &#34;coord&#34; if parent node is a geometry node, otherwise skinCoord or skinBindingCoords if parent node is HAnimHumanoid"
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="coord" appinfo="parent node is a geometry node"/>
         <enumeration value="controlPoint" appinfo="parent node is a Nurbs node"/>
         <enumeration value="skinCoord" appinfo="parent node is HAnimHumanoid"/>
         <enumeration value="skinBindingCoords"
                       appinfo="parent node is HAnimHumanoid, added in X3D version 4"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesX3DNormalNode"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesX3DNormalNode lists the allowed containerField enumeration values for Normal nodes: default &#34;normal&#34; if parent node is a geometry node, otherwise skinNormal or skinBindingNormals if parent node is HAnimHumanoid"
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="normal" appinfo="parent node is a geometry node"/>
         <enumeration value="skinNormal" appinfo="parent node is HAnimHumanoid"/>
         <enumeration value="skinBindingNormals"
                       appinfo="parent node is HAnimHumanoid, added in X3D version 4"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesX3DTexture2DNode"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesX3DTexture2DNode lists the allowed containerField enumeration values for PixelTexture and MultiTexture (which can contain ImageTexture, MovieTexture, PixelTexture)."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="texture" appinfo="default, parent node is Appearance"/>
         <enumeration value="source"
                       appinfo="parent node is Sound node: legacy X3D3 SFNode source is allowed content model (AudioClip or MovieTexture only), prefer X3D4 MFNode children."/>
         <enumeration value="backTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="bottomTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="frontTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="leftTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="rightTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="topTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="children"
                       appinfo="parent node is LoadSensor (formerly watchList in X3D3)"/>
         <enumeration value="baseTexture"
                       appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial"
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#PhysicalMaterial"/>
         <enumeration value="emissiveTexture"
                       appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial or UnlitMaterial"
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#UnlitMaterial"/>
         <enumeration value="metallicRoughnessTexture"
                       appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial"
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#PhysicalMaterial"/>
         <enumeration value="normalTexture"
                       appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial or UnlitMaterial"
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#UnlitMaterial"/>
         <enumeration value="occlusionTexture"
                       appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial"
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#PhysicalMaterial"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesX3DTexture3DNode"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesX3DTexture3DNode lists the allowed containerField enumeration values for ComposedTexture3D, ImageTexture3D and PixelTexture3D nodes: default &#34;texture&#34; for parent node such as Appearance that includes a texture field, otherwise &#34;gradients&#34; if parent node is IsoSurfaceVolumeData, &#34;segmentIdentifiers&#34; if parent node is SegmentedVolumeData, &#34;surfaceNormals&#34; if parent node has abstract type X3DComposableVolumeRenderStyleNode, or &#34;voxels&#34; if parent node has abstract type X3DVolumeDataNode."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="gradients" appinfo="parent node is IsoSurfaceVolumeData"/>
         <enumeration value="segmentIdentifiers" appinfo="parent node is SegmentedVolumeData"/>
         <enumeration value="surfaceNormals"
                       appinfo="parent node has abstract type X3DComposableVolumeRenderStyleNode"/>
         <enumeration value="texture"
                       appinfo="(default) parent node such as Appearance that include a texture field"/>
         <enumeration value="voxels"
                       appinfo="parent node has abstract type X3DVolumeDataNode"/>
         <enumeration value="children"
                       appinfo="special case for ImageTexture3D with parent node LoadSensor (formerly watchList in X3D3)"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesX3DUrlObject"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesX3DUrlObject lists the allowed containerField enumeration values for Anchor, GeoMetadata, Inline and Script nodes: default &#34;children&#34; if parent node has abstract type X3DGroupingNode, otherwise &#34;children&#34; if parent node is LoadSensor."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="children"
                       appinfo="parent node has abstract type X3DGroupingNode"/>
         <enumeration value="children"
                       appinfo="parent node is LoadSensor (formerly watchList in X3D3)"/>
      </SimpleType>
      <SimpleType name="containerFieldChoicesX3dUrlObjectTexture"
                   baseType="xs:NMTOKEN"
                   appinfo="containerFieldChoicesX3dUrlObjectTexture lists the allowed containerField enumeration values for X3DTexture2DNode (ImageTexture, MovieTexture) ."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="texture" appinfo="default, parent node is Appearance"/>
         <enumeration value="children"
                       appinfo="parent node is LoadSensor (invalid for PixelTexture) (formerly watchList in X3D3)"/>
         <enumeration value="source"
                       appinfo="parent node is Sound (only valid for MovieTexture)"/>
         <enumeration value="backTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="bottomTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="frontTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="leftTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="rightTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="topTexture"
                       appinfo="parent node is TextureBackground or ComposedCubeMapTexture"/>
         <enumeration value="baseTexture"
                       appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial"
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#PhysicalMaterial"/>
         <enumeration value="emissiveTexture"
                       appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial or UnlitMaterial"
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#UnlitMaterial"/>
         <enumeration value="metallicRoughnessTexture"
                       appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial"
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#PhysicalMaterial"/>
         <enumeration value="normalTexture"
                       appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial or UnlitMaterial"
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#UnlitMaterial"/>
         <enumeration value="occlusionTexture"
                       appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial"
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#PhysicalMaterial"/>
      </SimpleType>
      <SimpleType name="distanceModelChoices"
                   baseType="SFString"
                   appinfo="Permitted values for SpatialSound distanceModel. X3D enumeration naming conventions are capitalized versions of Web Audio API enumerations, also changing hyphens to underscores. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#SpatialSound">
         <enumeration value="LINEAR"
                       alias="linear"
                       appinfo="X3D version of &#34;linear&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype"/>
         <enumeration value="INVERSE"
                       alias="inverse"
                       appinfo="X3D version of &#34;inverse&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype"/>
         <enumeration value="EXPONENTIAL"
                       alias="exponential"
                       appinfo="X3D version of &#34;exponential&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype"/>
      </SimpleType>
      <SimpleType name="fieldTypeChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="fieldTypeChoices are enumerations for all allowed names of X3DField types. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html">
         <enumeration value="SFBool" appinfo="Single Field (singleton) Boolean"/>
         <enumeration value="MFBool" appinfo="Multiple Field (list) Boolean"/>
         <enumeration value="SFColor"
                       appinfo="Single Field (singleton) color value, red-green-blue"/>
         <enumeration value="MFColor"
                       appinfo="Multiple Field (list) color value, red-green-blue"/>
         <enumeration value="SFColorRGBA"
                       appinfo="Single Field (singleton) color value, red-green-blue alpha (opacity)"/>
         <enumeration value="MFColorRGBA"
                       appinfo="Multiple Field (list) color value, red-green-blue alpha (opacity)"/>
         <enumeration value="SFDouble"
                       appinfo="Single Field (singleton) double-precision (64-bit) float"/>
         <enumeration value="MFDouble"
                       appinfo="Multiple Field (list) 2-tuple double-precision (64-bit) float vector"/>
         <enumeration value="SFFloat"
                       appinfo="Single Field (singleton) single-precision (32-bit) float"/>
         <enumeration value="MFFloat"
                       appinfo="Multiple Field (list) single-precision (32-bit) float vector"/>
         <enumeration value="SFImage" appinfo="Single Field (singleton) image value"/>
         <enumeration value="MFImage" appinfo="Multiple Field (list) image values"/>
         <enumeration value="SFInt32" appinfo="Single Field (singleton) 32-bit integer"/>
         <enumeration value="MFInt32" appinfo="Multiple Field (list) 32-bit integer"/>
         <enumeration value="SFNode" appinfo="Single Field (singleton) node"/>
         <enumeration value="MFNode" appinfo="Multiple Field (list) nodes"/>
         <enumeration value="SFRotation"
                       appinfo="Single Field (singleton) rotation value using 3-tuple axis, radian angle"/>
         <enumeration value="MFRotation"
                       appinfo="Multiple Field (list) rotation values using 3-tuple axis, radian angle"/>
         <enumeration value="SFString" appinfo="Single Field (singleton) string value"/>
         <enumeration value="MFString" appinfo="Multiple Field (list) SFString array"/>
         <enumeration value="SFTime" appinfo="Single Field (singleton) time value in seconds"/>
         <enumeration value="MFTime" appinfo="Multiple Field (list) time array in seconds"/>
         <enumeration value="SFVec2d"
                       appinfo="Single Field (singleton) 2-tuple double-precision float vector"/>
         <enumeration value="MFVec2d"
                       appinfo="Multiple Field (list) 2-tuple double-precision float vectors"/>
         <enumeration value="SFVec2f"
                       appinfo="Single Field (singleton) 2-tuple single-precision float vector"/>
         <enumeration value="MFVec2f"
                       appinfo="Multiple Field (list) 2-tuple single-precision float vectors"/>
         <enumeration value="SFVec3d"
                       appinfo="Single Field (singleton) 3-tuple double-precision float vector"/>
         <enumeration value="MFVec3d"
                       appinfo="Multiple Field (list) 3-tuple double-precision float vectors"/>
         <enumeration value="SFVec3f"
                       appinfo="Single Field (singleton) 3-tuple single-precision float vector"/>
         <enumeration value="MFVec3f"
                       appinfo="Multiple Field (list) 3-tuple single-precision float vectors"/>
         <enumeration value="SFVec4d"
                       appinfo="Single Field (singleton) 4-tuple double-precision float vector"/>
         <enumeration value="MFVec4d"
                       appinfo="Multiple Field (list) 4-tuple double-precision float vectors"/>
         <enumeration value="SFVec4f"
                       appinfo="Single Field (singleton) 4-tuple single-precision float vector"/>
         <enumeration value="MFVec4f"
                       appinfo="Multiple Field (list) 4-tuple single-precision float vectors"/>
         <enumeration value="SFMatrix3d"
                       appinfo="Single Field (singleton) 3×3 matrix of double-precision floating point numbers"/>
         <enumeration value="MFMatrix3d"
                       appinfo="Multiple Field (list) 3×3 matrices of double-precision floating point numbers"/>
         <enumeration value="SFMatrix3f"
                       appinfo="Single Field (singleton) 3×3 matrix of single-precision floating point numbers"/>
         <enumeration value="MFMatrix3f"
                       appinfo="Multiple Field (list) 3×3 matrices of double-precision floating point numbers"/>
         <enumeration value="SFMatrix4d"
                       appinfo="Single Field (singleton) 4×4 matrix of double-precision floating point numbers"/>
         <enumeration value="MFMatrix4d"
                       appinfo="Multiple Field (list) 4×4 matric3w of double-precision floating point numbers"/>
         <enumeration value="SFMatrix4f"
                       appinfo="Single Field (singleton) 4×4 matrix of single-precision floating point numbers"/>
         <enumeration value="MFMatrix4f"
                       appinfo="Multiple Field (list) 4×4 matrices of single-precision floating point numbers"/>
      </SimpleType>
      <SimpleType name="fogTypeChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="fogTypeChoices are strictly allowed enumeration values for Fog node fogType field. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalEffects.html#Fog">
         <enumeration value="LINEAR" appinfo="linear blending as a function of distance"/>
         <enumeration value="EXPONENTIAL"
                       appinfo="exponential blending as a function of distance"/>
      </SimpleType>
      <SimpleType name="fontFamilyValues"
                   baseType="MFString"
                   appinfo="fontFamilyValues are supported enumeration values for FontStyle/ScreenFontStyle node family field. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/text.html#Fontfamilyandstyle">
         <enumeration value="&#34;SANS&#34;"
                       appinfo="default font family for sans-serif font such as Helvetica"/>
         <enumeration value="&#34;SERIF&#34;"
                       appinfo="default font family for serif font such as Times-Roman"/>
         <enumeration value="&#34;TYPEWRITER&#34;"
                       appinfo="default font family for a fixed-pitch font such as Courier"/>
      </SimpleType>
      <SimpleType name="fontStyleChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="fontStyleChoices are strictly allowed enumeration values for FontStyle/ScreenFontStyle node style field. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/text.html#Fontfamilyandstyle">
         <enumeration value="PLAIN" appinfo="default plain type"/>
         <enumeration value="BOLD" appinfo="boldface type"/>
         <enumeration value="ITALIC" appinfo="italic type"/>
         <enumeration value="BOLDITALIC" appinfo="bold and italic type"/>
      </SimpleType>
      <SimpleType name="forceOutputValues"
                   baseType="MFString"
                   appinfo="forceOutputValues are supported enumeration values for X3DRigidJointNode type forceOutput field. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#X3DRigidJointNode">
         <enumeration value="&#34;ALL&#34;" appinfo="all forceOutput fields computed"/>
         <enumeration value="&#34;NONE&#34;" appinfo="no forceOutput fields computed"/>
      </SimpleType>
      <SimpleType name="generatedCubeMapTextureUpdateChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="generatedCubeMapTextureUpdateChoices are strictly allowed enumeration values for GeneratedCubeMapTexture field named 'update'. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalTexturing#GeneratedCubeMapTexture">
         <enumeration value="NONE" appinfo="no further texture updates are rendered"/>
         <enumeration value="NEXT_FRAME_ONLY" appinfo="render texture once at end of frame"/>
         <enumeration value="ALWAYS" appinfo="texture to be rendered every frame"/>
      </SimpleType>
      <SimpleType name="geoMetadataSummaryKeyValues"
                   baseType="xs:NMTOKEN"
                   appinfo="The enumeration keys for the GeoMetadata summary field. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geodata.html#t-keywordsandvalues">
         <enumeration value="title"
                       appinfo="A name to succinctly identify the dataset to user. For example, &#34;San Francisco, California&#34;."/>
         <enumeration value="description"
                       appinfo="A brief textual description or summary of the content of the dataset. For example, &#34;LANDSAT 7 satellite imagery taken over northern Scotland&#34;."/>
         <enumeration value="coordinateSystem"
                       appinfo="The spatial reference frame used to represent the data (e.g., GD, UTM, or LCC). The list of valid codes that can be used in this field are defined in ISO/IEC 18026. In the case of UTM, the zone number should also be specified in the format &#34;UTM Zx&#34;, where the zone number is in the range [1,60]. For example, &#34;UTM Z11&#34;."/>
         <enumeration value="horizontalDatum"
                       appinfo="The name of the geodetic datum. The list of valid codes that can be used in this field are defined in ISO/IEC 18026. For example, &#34;W84&#34;."/>
         <enumeration value="verticalDatum"
                       appinfo="The name of the vertical datum (geoid). The list of valid codes that can be used in this field are defined in ISO/IEC 18026. For example, &#34;W84&#34;."/>
         <enumeration value="ellipsoid"
                       appinfo="The name of the geodetic ellipsoid. The list of valid codes that can be used in this field are defined in ISO/IEC 18026. For example, &#34;WE&#34;."/>
         <enumeration value="extent"
                       appinfo="The bounding coordinates for the dataset given in spatial reference frame specified by the coordinateSystem keyword. These are provided in the order eastmost, southmost, westmost, northmost. An example for GD is: &#34;-180.0 -90.0 180.0 90.0&#34;."/>
         <enumeration value="resolution"
                       appinfo="SFFloat resolution, or ground sample distance, given in units of length base units. For example, &#34;30&#34;."/>
         <enumeration value="originator"
                       appinfo="A string defining the originator of the data, for example the author, agency, organization, publisher, etc. For example, &#34;John Doe, Any Corporation, Some Town, Some Country&#34;"/>
         <enumeration value="copyright"
                       appinfo="Any appropriate copyright declaration that pertains to the data. For example, &#34;(c) Copyright 2000, Any Corporation. All rights reserved. Freely distributable.&#34;"/>
         <enumeration value="date"
                       appinfo="A single date/time, or a date/time range, defining the valid time period to which the data pertains. Dates are specified in the format &#34;YYYY MM DD [HH:MM]&#34;. Years in the current time period should be specified using four digits (EXAMPLE &#34;1999&#34; or &#34;2001&#34;). Years can have other than four digits and can be negative. A date range is specified by supplying two values separated by a &#34;-&#34; (hyphen) character. An optional time can be supplied should this level of accuracy be required. Times are to be specified in 24-hour format with respect to GMT. For example, &#34;1999 01 01 00:00 - 1999 12 31 23:59&#34;."/>
         <enumeration value="metadataFormat"
                       appinfo="A string that specifies the format of the external metadata description specified by the url field of the GeoMetadata node. For example, &#34;FGDC&#34;, &#34;ISO TC211&#34;, &#34;CEN TC287&#34;, or &#34;OGC&#34;."/>
         <enumeration value="dataUrl"
                       appinfo="A hypertext link to the source data used to create the X3D node(s) to which this metadata pertains. Multiple dataUrl keyword/value pairs can be specified in order to provide alternative locations for the same source data. For example, &#34;https://www.foo.bar/data/sf1&#34;."/>
         <enumeration value="dataFormat"
                       appinfo="A free-text string that describes the format of the source data used to create the X3D node(s) to which this metadata pertains. This refers to the source data specified by the dataUrl keyword (if present). For example, &#34;USGS 5.5-min DEM&#34;."/>
      </SimpleType>
      <SimpleType name="geoSystemEarthEllipsoidValues"
                   baseType="MFString"
                   appinfo="geoSystemEarthEllipsoidValues are allowed enumeration values of earth ellipsoids, providing second value for any geoSystem field that has first value GD. This list is unbounded, additional enumeration values are allowed.."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#Specifyingaspatialreference">
         <enumeration value="AM" appinfo="Modified Airy"/>
         <enumeration value="AN" appinfo="Australian National"/>
         <enumeration value="BN" appinfo="Bessel 1841 (Namibia)"/>
         <enumeration value="BR" appinfo="Bessel 1841 (Ethiopia Indonesia ...)"/>
         <enumeration value="CC" appinfo="Clarke 1866"/>
         <enumeration value="CD" appinfo="Clarke 1880"/>
         <enumeration value="EA" appinfo="Everest (India 1830)"/>
         <enumeration value="EB" appinfo="Everest (Sabah &amp; Sarawak)"/>
         <enumeration value="EC" appinfo="Everest (India 1956)"/>
         <enumeration value="ED" appinfo="Everest (W. Malaysia 1969)"/>
         <enumeration value="EE" appinfo="Everest (W. Malaysia &amp; Singapore 1948)"/>
         <enumeration value="EF" appinfo="Everest (Pakistan)"/>
         <enumeration value="FA" appinfo="Modified Fischer 1960"/>
         <enumeration value="HE" appinfo="Helmert 1906"/>
         <enumeration value="HO" appinfo="Hough 1960"/>
         <enumeration value="ID" appinfo="Indonesia 1974"/>
         <enumeration value="IN" appinfo="International 1924"/>
         <enumeration value="KA" appinfo="Krassovsky 1940"/>
         <enumeration value="RF" appinfo="Geodetic Reference System 1980 (GRS 80)"/>
         <enumeration value="SA" appinfo="South American 1969"/>
         <enumeration value="WD" appinfo="WGS 72"/>
         <enumeration value="WE" appinfo="WGS 84"/>
         <enumeration value="WGS84" appinfo="WGS84 geoid"/>
         <enumeration value="Zn" appinfo="Zone number (1..60) (only used with UTM)"/>
         <enumeration value="S" appinfo="Southern hemisphere (only used with UTM)"/>
      </SimpleType>
      <SimpleType name="geoSystemSpatialReferenceFrameValues"
                   baseType="xs:NMTOKEN"
                   appinfo="geoSystemSpatialReferenceFrameValues are allowed enumeration values of spatial reference frames and earth ellipsoids, providing first value for geoSystem field. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#Spatialreferenceframes">
         <enumeration value="GD"
                       appinfo="Geodetic spatial reference frame (latitude/longitude), to be followed by ellipsoid"/>
         <enumeration value="UTM"
                       appinfo="Universal Transverse Mercator. One further required argument must be supplied for UTM in order to specify the zone number (1..60) with optional suffix of &#34;S&#34; may be appended in order to specify that the coordinates are in the southern hemisphere. Optional arguments can follow."/>
         <enumeration value="GC"
                       appinfo="Earth-fixed Geocentric with respect to the WGS84 ellipsoid. No additional arguments are supported."/>
         <enumeration value="GDC"
                       appinfo="Synonymous to GD, but may be subject to future deprecation"/>
         <enumeration value="GCC"
                       appinfo="Synonymous to GC, but may be subject to future deprecation"/>
      </SimpleType>
      <SimpleType name="geoSystemType"
                   baseType="MFString"
                   appinfo="The first enumeration value of geoSystem is one of geoSystemSpatialReferenceFrameValues. If first value is GD, then second enumeration value is one of geoSystemEarthEllipsoidValues."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#Specifyingaspatialreference"/>
      <SimpleType name="hanimFeaturePointNameValues"
                   baseType="xs:NMTOKEN"
                   appinfo="Feature point names for identification of HAnimSite/HAnimDIsplacer nodes as defined in the HAnim Architecture specification. Alternate names are also allowed, aliases from CAESAR and ISO 7250 are provided. HAnimSite/HAnimDisplacer name fields must append suffix _view _tip _pt based on functional purpose, thus strict hanimFeaturePointNameValues validation is turned off by default. CAESAR feature point names, index and description for use by HAnimDisplacer nodes as defined in the HAnim Architecture specification. ISO 7250-1 points are defined at https://www.iso.org/standard/65246.html Wikipedia overview reference https://en.wikipedia.org/wiki/Anatomical_terminology"
                   documentation="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/FeaturePoints.html">
         <enumeration value="skull_vertex"
                       index="0"
                       alias="skull_tip,vertex"
                       loa="1"
                       default="0.0050 1.7504 0.0055"
                       parent="skull"
                       appinfo="CAESAR 2003 skull_vertex matches ISO 7250-1 part 5.22 Vertex (top of head). No corresponding landmark provided in CAESAR 2018."
                       documentation="https://en.wikipedia.org/wiki/Vertex_(anatomy)"/>
         <enumeration value="glabella"
                       index="1"
                       loa="1"
                       parent="skull"
                       appinfo="glabella is between the eyebrows and above the nose"
                       documentation="https://en.wikipedia.org/wiki/Glabella"/>
         <enumeration value="sellion"
                       index="2"
                       loa="1"
                       default="0.0058 1.6316 0.0852"
                       parent="skull"
                       appinfo="osseocartilaginous junction of the nasal dorsum"
                       documentation="https://en.wikipedia.org/wiki/Human_head"/>
         <enumeration value="l_infraorbitale"
                       index="3"
                       loa="1"
                       default="0.0341 1.6171 0.0752"
                       parent="skull"
                       appinfo="Left Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit."
                       documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen"/>
         <enumeration value="l_tragion"
                       index="4"
                       loa="1"
                       default="0.0739 1.6348 0.0282"
                       parent="skull"
                       appinfo="notch just above the tragus of the ear"
                       documentation="https://en.wiktionary.org/wiki/tragion"/>
         <enumeration value="l_gonion"
                       index="5"
                       loa="1"
                       default="0.0631 1.5530 0.0330"
                       parent="skull"
                       appinfo="Left Gonion is midpoint of mandibular angle of the jaw."
                       documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible"/>
         <enumeration value="r_infraorbitale"
                       index="6"
                       loa="1"
                       default="-0.0237 1.6171 0.0752"
                       parent="skull"
                       appinfo="Right Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit."
                       documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen"/>
         <enumeration value="r_tragion"
                       index="7"
                       loa="1"
                       default="-0.0646 1.6347 0.0302"
                       parent="skull"
                       appinfo="notch just above the tragus of the ear"
                       documentation="https://en.wiktionary.org/wiki/tragion"/>
         <enumeration value="r_gonion"
                       index="8"
                       loa="1"
                       default="-0.0520 1.5529 0.0347"
                       parent="skull"
                       appinfo="Right Gonion is midpoint of the mandibular angle of the jaw."
                       documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible"/>
         <enumeration value="supramenton"
                       index="9"
                       loa="3"
                       default="0.0061 1.5410 0.0805"
                       parent="jaw"
                       appinfo="center point above tip of chin"
                       documentation="http://www.cs.uu.nl/groups/MG/multimedia/publications/art/rsfp05.pdf"/>
         <enumeration value="cervicale"
                       index="10"
                       loa="2"
                       default="0.0064 1.520 -0.0815"
                       parent="t1"
                       documentation="https://www.merriam-webster.com/dictionary/cervicale"/>
         <enumeration value="adams_apple"
                       index="11"
                       loa="2"
                       parent="c2"
                       documentation="https://en.wikipedia.org/wiki/Adam_s_apple"/>
         <enumeration value="suprasternale"
                       index="12"
                       loa="2"
                       default="0.0084 1.4714 0.0551"
                       parent="t1"
                       appinfo="Suprasternale"
                       documentation="https://medical-dictionary.thefreedictionary.com/spatium+suprasternale"/>
         <enumeration value="substernale"
                       index="13"
                       loa="2"
                       default="0.0085 1.2995 0.1147"
                       parent="t10"
                       documentation="https://medical-dictionary.thefreedictionary.com/spatium+substernale"/>
         <enumeration value="l_clavicle"
                       index="14"
                       alias="l_clavicale"
                       loa="2"
                       default="0.0271 1.4943 0.0394"
                       parent="l_clavicle"
                       documentation="https://en.wikipedia.org/wiki/Clavicle"/>
         <enumeration value="l_acromion"
                       index="15"
                       loa="2"
                       default="0.2032 1.4760 -0.0490"
                       parent="l_clavicle"
                       documentation="https://en.wikipedia.org/wiki/Acromion"/>
         <enumeration value="l_axilla_proximal"
                       index="16"
                       alias="l_axilla_ant"
                       loa="2"
                       default="0.1777 1.4065 -0.0075"
                       parent="l_clavicle"
                       appinfo="Left Axilla Proximal (Anterior)"
                       documentation="https://en.wikipedia.org/wiki/Axilla"/>
         <enumeration value="l_axilla_distal"
                       index="17"
                       alias="l_axilla_post"
                       loa="2"
                       default="0.1706 1.4072 -0.0875"
                       parent="l_clavicle"
                       appinfo="Left Axilla Distal (Posterior)"
                       documentation="https://en.wikipedia.org/wiki/Axilla"/>
         <enumeration value="l_axilla_posterior_folds"
                       index="18"
                       loa="2"
                       parent="l_clavicle"
                       documentation="https://en.wikipedia.org/wiki/Axilla"/>
         <enumeration value="r_clavicle"
                       index="19"
                       alias="r_clavicale"
                       loa="2"
                       default="-0.0115 1.4943 0.0400"
                       parent="r_clavicle"
                       documentation="https://en.wikipedia.org/wiki/Clavicle"/>
         <enumeration value="r_acromion"
                       index="20"
                       loa="2"
                       default="-0.1905 1.4791 -0.0431"
                       parent="r_clavicle"
                       documentation="https://en.wikipedia.org/wiki/Acromion"/>
         <enumeration value="r_axilla_proximal"
                       index="21"
                       alias="r_axilla_ant"
                       loa="2"
                       default="-0.1626 1.4072 -0.0031"
                       parent="r_clavicle"
                       appinfo="Right Axilla Proximal (Anterior)"
                       documentation="https://en.wikipedia.org/wiki/Axilla"/>
         <enumeration value="r_axilla_distal"
                       index="22"
                       alias="r_axilla_post"
                       loa="2"
                       default="-0.1603 1.4098 -0.0826"
                       parent="r_clavicle"
                       appinfo="Right Axilla Distal (Posterior)"
                       documentation="https://en.wikipedia.org/wiki/Axilla"/>
         <enumeration value="r_axilla_posterior_folds"
                       index="23"
                       loa="2"
                       parent="r_clavicle"
                       appinfo="Right Posterior Axillary Folds"
                       documentation="https://en.wikipedia.org/wiki/Axilla"/>
         <enumeration value="spine_1_middle_back"
                       index="24"
                       alias="middle back"
                       loa="3"
                       parent="t5"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="spine_2_lower_back"
                       index="25"
                       alias="lower back"
                       loa="3"
                       default="0.0049 1.1908 -0.1113"
                       parent="l2"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="waist_preferred_anterior"
                       index="26"
                       alias="waist_preferred_ant"
                       loa="3"
                       parent="l2"
                       documentation="https://en.wikipedia.org/wiki/Waist"/>
         <enumeration value="waist_preferred_posterior"
                       index="27"
                       alias="waist_preferred_post"
                       loa="3"
                       default="0.2900 1.0915 -0.1091"
                       parent="l2"
                       documentation="https://en.wikipedia.org/wiki/Waist"/>
         <enumeration value="l_rib10"
                       index="28"
                       alias="l_rib10_midspine"
                       loa="3"
                       default="0.0871 1.1925 0.0992"
                       parent="l2"
                       documentation="https://en.wikipedia.org/wiki/Rib"/>
         <enumeration value="l_thelion"
                       index="29"
                       alias="Left Bustpoint"
                       loa="3"
                       default="0.0918 1.3382 0.1192"
                       parent="t9"
                       documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf"/>
         <enumeration value="r_rib10"
                       index="30"
                       alias="r_rib10_midspine"
                       loa="3"
                       default="-0.0711 1.1941 0.1016"
                       parent="l2"
                       documentation="https://en.wikipedia.org/wiki/Rib"/>
         <enumeration value="r_thelion"
                       index="31"
                       alias="Right Bustpoint"
                       loa="3"
                       default="-0.0736 1.3385 0.1217"
                       parent="t9"
                       documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf"/>
         <enumeration value="l_asis"
                       index="32"
                       alias="Left Anterior Superior Iliac Spine"
                       loa="1"
                       default="0.0925 0.9983 0.1052"
                       parent="pelvis"
                       documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine"/>
         <enumeration value="l_iliocristale"
                       index="33"
                       loa="1"
                       default="0.1612 1.0537 0.0008"
                       parent="pelvis"
                       documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm"/>
         <enumeration value="l_psis"
                       index="34"
                       alias="Left Posterior Superior Iliac Spine"
                       loa="1"
                       default="0.0774 1.0190 -0.1151"
                       parent="pelvis"
                       documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine"/>
         <enumeration value="r_asis"
                       index="35"
                       alias="Right Anterior Superior Iliac Spine"
                       loa="1"
                       default="-0.0887 1.0021 0.1112"
                       parent="pelvis"
                       documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine"/>
         <enumeration value="r_iliocristale"
                       index="36"
                       loa="1"
                       default="-0.1525 1.0628 0.0035"
                       parent="pelvis"
                       documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm"/>
         <enumeration value="r_psis"
                       index="37"
                       alias="Right Posterior Superior Iliac Spine"
                       loa="1"
                       default="-0.0716 1.0190 -0.1138"
                       parent="pelvis"
                       documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine"/>
         <enumeration value="crotch"
                       index="38"
                       loa="1"
                       default="0.0034 0.8266 0.0257"
                       parent="pelvis"
                       documentation="https://en.wikipedia.org/wiki/Crotch"/>
         <enumeration value="l_femoral_lateral_epicondyle"
                       index="39"
                       alias="l_femoral_lateral_epicn,l_femoral_lateral_epicondyles"
                       loa="1"
                       default="0.1598 0.4967 0.0297"
                       parent="l_thigh"
                       documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur"/>
         <enumeration value="l_femoral_medial_epicondyle"
                       index="40"
                       alias="l_femoral_medial_epicn,l_femoral_medial_epicondyles"
                       loa="1"
                       default="0.1598 0.4967 0.0297"
                       parent="l_thigh"
                       documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur"/>
         <enumeration value="l_suprapatella"
                       index="41"
                       alias="l_kneecap"
                       loa="1"
                       parent="l_thigh"
                       documentation="https://en.wikipedia.org/wiki/Patella"/>
         <enumeration value="l_trochanterion"
                       index="42"
                       alias="l_trochanter"
                       loa="1"
                       parent="pelvis"
                       documentation="https://en.wikipedia.org/wiki/Trochanter"/>
         <enumeration value="r_femoral_lateral_epicondyle"
                       index="43"
                       alias="r_femoral_lateral_epicn,r_femoral_lateral_epicondyles"
                       loa="1"
                       default="-0.1421 0.4992 0.0310"
                       parent="r_thigh"
                       documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur"/>
         <enumeration value="r_femoral_medial_epicondyle"
                       index="44"
                       alias="r_femoral_medial_epicn,r_femoral_medial_epicondyles"
                       loa="1"
                       default="-0.0221 0.5014 0.0289"
                       parent="r_thigh"
                       documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur"/>
         <enumeration value="r_suprapatella"
                       index="45"
                       alias="r_kneecap"
                       loa="1"
                       parent="r_thigh"
                       documentation="https://en.wikipedia.org/wiki/Patella"/>
         <enumeration value="r_trochanterion"
                       index="46"
                       alias="r_trochanter"
                       loa="1"
                       parent="pelvis"
                       documentation="https://en.wikipedia.org/wiki/Trochanter"/>
         <enumeration value="l_tibiale"
                       index="47"
                       loa="1"
                       parent="l_calf"
                       documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone"/>
         <enumeration value="l_medial_malleolus"
                       index="48"
                       loa="1"
                       parent="l_calf"
                       documentation="https://en.wikipedia.org/wiki/Malleolus"/>
         <enumeration value="l_lateral_malleolus"
                       index="49"
                       loa="1"
                       parent="l_calf"
                       documentation="https://en.wikipedia.org/wiki/Malleolus"/>
         <enumeration value="l_sphyrion"
                       index="50"
                       loa="1"
                       parent="l_talus"
                       documentation="http://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385"/>
         <enumeration value="r_tibiale"
                       index="51"
                       loa="1"
                       parent="r_calf"
                       documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone"/>
         <enumeration value="r_medial_malleolus"
                       index="52"
                       loa="1"
                       parent="r_calf"
                       documentation="https://en.wikipedia.org/wiki/Malleolus"/>
         <enumeration value="r_lateral_malleolus"
                       index="53"
                       loa="1"
                       parent="r_calf"
                       documentation="https://en.wikipedia.org/wiki/Malleolus"/>
         <enumeration value="r_sphyrion"
                       index="54"
                       loa="1"
                       parent="r_talus"
                       documentation="http://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385"/>
         <enumeration value="l_metatarsal_phalanx_1"
                       index="55"
                       alias="l_metatarsal_pha1"
                       loa="4"
                       parent="l_tarsal_proximal_phalanx_1"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="l_metatarsal_phalanx_5"
                       index="56"
                       alias="l_metatarsal_pha5"
                       loa="4"
                       parent="l_tarsal_proximal_phalanx_5"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="l_dactylion"
                       index="57"
                       loa="2"
                       default="0.2056 0.6743 -0.0482"
                       parent="l_carpal_distal_phalanx_2"
                       documentation="https://en.wiktionary.org/wiki/dactylion"/>
         <enumeration value="l_calcaneus_posterior"
                       index="58"
                       alias="l_calcaneous_post"
                       loa="1"
                       parent="l_talus"
                       documentation="https://en.wikipedia.org/wiki/Calcaneus"/>
         <enumeration value="r_metatarsal_phalanx_1"
                       index="59"
                       alias="r_metatarsal_pha1"
                       loa="4"
                       parent="r_tarsal_proximal_phalanx_1"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="r_metatarsal_phalanx_5"
                       index="60"
                       alias="r_metatarsal_pha5"
                       loa="4"
                       parent="r_tarsal_proximal_phalanx_5"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="r_dactylion"
                       index="61"
                       loa="2"
                       default="-0.1941 0.6772 -0.0423"
                       parent="r_carpal_distal_phalanx_2"
                       documentation="https://en.wiktionary.org/wiki/dactylion"/>
         <enumeration value="r_calcaneus_posterior"
                       index="62"
                       alias="r_calcaneous_post"
                       loa="1"
                       parent="r_talus"
                       documentation="https://en.wikipedia.org/wiki/Calcaneus"/>
         <enumeration value="l_humeral_lateral_epicondyle"
                       index="63"
                       alias="l_humeral_lateral_epicn,l_humeral_lateral_epicondyles"
                       loa="1"
                       default="0.2280 1.1482 -0.1100"
                       parent="l_upperarm"
                       documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus"/>
         <enumeration value="l_humeral_medial_epicondyle"
                       index="64"
                       alias="l_humeral_medial_epicn,l_humeral_medial_epicondyles"
                       loa="1"
                       default="0.1735 1.1272 -0.1113"
                       parent="l_forearm"
                       documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus"/>
         <enumeration value="l_olecranon"
                       index="65"
                       loa="1"
                       default="0.1962 1.1375 -0.1123"
                       parent="l_forearm"
                       documentation="https://en.wikipedia.org/wiki/Olecranon"/>
         <enumeration value="r_humeral_lateral_epicondyle"
                       index="66"
                       alias="r_humeral_lateral_epicn,r_humeral_lateral_epicondyles"
                       loa="1"
                       default="-0.2224 1.1517 -0.1033"
                       parent="r_upperarm"
                       documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus"/>
         <enumeration value="r_humeral_medial_epicondyle"
                       index="67"
                       alias="r_humeral_medial_epicn,r_humeral_medial_epicondyles"
                       loa="1"
                       default="-0.1680 1.1298 -0.1062"
                       parent="r_forearm"
                       documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus"/>
         <enumeration value="r_olecranon"
                       index="68"
                       loa="1"
                       default="-0.1907 1.1405 -0.1065"
                       parent="r_forearm"
                       documentation="https://en.wikipedia.org/wiki/Olecranon"/>
         <enumeration value="l_radiale"
                       index="69"
                       loa="1"
                       default="0.2182 1.1212 -0.1167"
                       parent="l_forearm"
                       documentation="https://en.wikipedia.org/wiki/Carpal_bones"/>
         <enumeration value="l_ulnar_styloid"
                       index="70"
                       loa="1"
                       default="0.2142 0.8529 -0.0648"
                       parent="l_carpal"
                       documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process"/>
         <enumeration value="l_radial_styloid"
                       index="71"
                       loa="1"
                       default="0.1901 0.8645 -0.0415"
                       parent="l_forearm"
                       documentation="https://en.wikipedia.org/wiki/Radial_styloid_process"/>
         <enumeration value="r_radiale"
                       index="72"
                       loa="1"
                       default="-0.2130 1.1305 -0.1091"
                       parent="r_forearm"
                       documentation="https://en.wikipedia.org/wiki/Carpal_bones"/>
         <enumeration value="r_ulnar_styloid"
                       index="73"
                       loa="1"
                       default="-0.2117 0.8562 -0.0584"
                       parent="r_carpal"
                       documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process"/>
         <enumeration value="r_radial_styloid"
                       index="74"
                       loa="1"
                       default="-0.1884 0.8676 -0.0360"
                       parent="r_forearm"
                       documentation="https://en.wikipedia.org/wiki/Radial_styloid_process"/>
         <enumeration value="l_metacarpal_phalanx_2"
                       index="75"
                       alias="l_metacarpal_pha2,l_metacarpal_phalanx"
                       loa="2"
                       parent="l_metacarpal_2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="l_metacarpal_phalanx_3"
                       index="76"
                       loa="2"
                       parent="l_metacarpal_3"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="l_metacarpal_phalanx_5"
                       index="77"
                       alias="l_metacarpal_pha5"
                       loa="2"
                       parent="l_metacarpal_5"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="r_metacarpal_phalanx_2"
                       index="78"
                       alias="r_metacarpal_pha2,r_metacarpal_phalanx"
                       loa="2"
                       parent="r_metacarpal_2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="r_metacarpal_phalanx_3"
                       index="79"
                       loa="2"
                       parent="r_metacarpal_3"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="r_metacarpal_phalanx_5"
                       index="80"
                       alias="r_metacarpal_pha5"
                       loa="2"
                       parent="r_metacarpal_5"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="nuchale"
                       index="81"
                       alias="nuchal"
                       loa="1"
                       default="0.0039 1.5972 -0.0796"
                       parent="skull"
                       documentation="https://en.wikipedia.org/wiki/Squamous_part_of_occipital_bone"/>
         <enumeration value="l_neck_base"
                       index="82"
                       loa="3"
                       default="0.0646 1.5141 -0.0380"
                       parent="c7"
                       documentation="https://en.wikipedia.org/wiki/Neck"/>
         <enumeration value="r_neck_base"
                       index="83"
                       loa="3"
                       default="-0.0419 1.5149 -0.0220"
                       parent="c7"
                       documentation="https://en.wikipedia.org/wiki/Neck"/>
         <enumeration value="navel"
                       index="84"
                       alias="belly button"
                       loa="1"
                       default="0.0069 1.0966 0.1017"
                       parent="l5"
                       documentation="https://en.wikipedia.org/wiki/Navel"/>
         <enumeration value="l_ectocanthus"
                       index="85"
                       alias="l_canthus"
                       loa="1"
                       parent="skull"
                       documentation="https://en.wikipedia.org/wiki/Canthus"/>
         <enumeration value="r_ectocanthus"
                       index="86"
                       alias="r_canthus"
                       loa="1"
                       parent="skull"
                       documentation="https://en.wikipedia.org/wiki/Canthus"/>
         <enumeration value="menton"
                       index="87"
                       alias="chin"
                       loa="3"
                       parent="jaw"
                       documentation="https://en.wikipedia.org/wiki/Human_head"/>
         <enumeration value="mesosternale"
                       index="88"
                       alias="mesosternum"
                       loa="2"
                       parent="t6"
                       documentation="https://en.wiktionary.org/wiki/mesosternum"/>
         <enumeration value="opisthocranion"
                       index="89"
                       loa="1"
                       parent="skull"
                       documentation="http://www.columbia.edu/itc/hs/medical/humanAnatomy/yuan/craniologyISlides.pdf"/>
         <enumeration value="l_knee_crease"
                       index="90"
                       loa="1"
                       default="0.0993 0.4881 -0.0309"
                       parent="l_thigh"
                       documentation="https://en.wikipedia.org/wiki/Popliteal_fossa"/>
         <enumeration value="r_knee_crease"
                       index="91"
                       loa="1"
                       default="-0.0825 0.4932 -0.0326"
                       parent="r_thigh"
                       documentation="https://en.wikipedia.org/wiki/Popliteal_fossa"/>
         <enumeration value="rear_center_midsagittal_plane"
                       index="92"
                       alias="median plane"
                       loa="2"
                       parent="t6"
                       documentation="https://en.wikipedia.org/wiki/Median_plane"/>
         <enumeration value="buttocks_standing_wall_contact_point"
                       index="93"
                       loa="1"
                       parent="pelvis"
                       documentation="https://en.wikipedia.org/wiki/Buttocks"/>
         <enumeration value="l_chest_midsagittal_plane"
                       index="94"
                       loa="2"
                       parent="t6"
                       documentation="https://en.wikipedia.org/wiki/Sagittal_plane"/>
         <enumeration value="r_chest_midsagittal_plane"
                       index="95"
                       loa="2"
                       parent="t6"
                       documentation="https://en.wikipedia.org/wiki/Sagittal_plane"/>
         <enumeration value="l_bideltoid"
                       index="96"
                       loa="1"
                       parent="l_upperarm"
                       documentation="https://en.wiktionary.org/wiki/bideltoid"/>
         <enumeration value="r_bideltoid"
                       index="97"
                       loa="1"
                       parent="r_upperarm"
                       documentation="https://en.wiktionary.org/wiki/bideltoid"/>
         <enumeration value="l_carpal_distal_phalanx_1"
                       index="101"
                       alias="l_thumb_distal"
                       loa="2"
                       default="0.1982 0.8061 0.0759"
                       parent="l_carpal_distal_phalanx_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_distal_phalanx_2"
                       index="102"
                       alias="l_index_distal"
                       loa="2"
                       default="0.2089 0.6858 -0.0245"
                       parent="l_carpal_distal_phalanx_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_distal_phalanx_3"
                       index="103"
                       alias="l_middle_distal"
                       loa="2"
                       default="0.2080 0.6731 -0.0491"
                       parent="l_carpal_distal_phalanx_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_distal_phalanx_4"
                       index="104"
                       alias="l_ring_distal"
                       loa="2"
                       default="0.2035 0.6750 -0.0756"
                       parent="l_carpal_distal_phalanx_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_distal_phalanx_5"
                       index="105"
                       alias="l_pinky_distal"
                       loa="2"
                       default="0.2014 0.7009 -0.1012"
                       parent="l_carpal_distal_phalanx_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_distal_phalanx_1"
                       index="106"
                       alias="r_thumb_distal"
                       loa="2"
                       default="-0.1869 0.8090 0.0820"
                       parent="r_carpal_distal_phalanx_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_distal_phalanx_2"
                       index="107"
                       alias="r_index_distal"
                       loa="2"
                       default="-0.1980 0.6883 -0.0180"
                       parent="r_carpal_distal_phalanx_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_distal_phalanx_3"
                       index="108"
                       alias="r_middle_distal"
                       loa="2"
                       default="-0.1969 0.6758 -0.0427"
                       parent="r_carpal_distal_phalanx_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_distal_phalanx_4"
                       index="109"
                       alias="r_ring_distal"
                       loa="2"
                       default="-0.1934 0.6778 -0.0693"
                       parent="r_carpal_distal_phalanx_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_distal_phalanx_5"
                       index="110"
                       alias="r_pinky_distal"
                       loa="2"
                       default="-0.1938 0.7035 -0.0949"
                       parent="r_carpal_distal_phalanx_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_distal_phalanx_1"
                       index="111"
                       loa="4"
                       default="0.090 0.012 0.188"
                       parent="l_tarsal_distal_phalanx_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_distal_phalanx_2"
                       index="112"
                       alias="l_digit2"
                       loa="2"
                       default="0.110 0.011 0.19"
                       parent="l_tarsal_distal_phalanx_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_distal_phalanx_3"
                       index="113"
                       loa="4"
                       default="0.128 0.011 0.185"
                       parent="l_tarsal_distal_phalanx_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_distal_phalanx_4"
                       index="114"
                       loa="4"
                       default="0.142 0.011 0.178"
                       parent="l_tarsal_distal_phalanx_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_distal_phalanx_5"
                       index="115"
                       alias="l_tarsal_distal_pha5"
                       loa="4"
                       default="0.154 0.010 0.168"
                       parent="l_tarsal_distal_phalanx_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_distal_phalanx_1"
                       index="116"
                       loa="4"
                       default="-0.090 0.012 0.188"
                       parent="r_tarsal_distal_phalanx_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_distal_phalanx_2"
                       index="117"
                       alias="r_digit2"
                       loa="2"
                       default="-0.110 0.011 0.19"
                       parent="r_tarsal_distal_phalanx_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_distal_phalanx_3"
                       index="118"
                       loa="4"
                       default="-0.128 0.011 0.185"
                       parent="r_tarsal_distal_phalanx_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_distal_phalanx_4"
                       index="119"
                       loa="4"
                       default="-0.142 0.011 0.178"
                       parent="r_tarsal_distal_phalanx_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_distal_phalanx_5"
                       index="120"
                       alias="r_tarsal_distal_pha5"
                       loa="4"
                       default="-0.154 0.010 0.168"
                       parent="r_tarsal_distal_phalanx_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
      </SimpleType>
      <SimpleType name="hanimHumanoidInfoKeyValues"
                   baseType="xs:NMTOKEN"
                   appinfo="Enumerated keyword names for keyword=value metadata pairs describing a given HAnimHumanoid. Additional keyword=value pairs may be included as needed for specific applications. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid">
         <enumeration value="authorName" appinfo="Name of Humanoid author."/>
         <enumeration value="authorEmail" appinfo="Email address of Humanoid author."/>
         <enumeration value="copyright"
                       appinfo="Copyright information for this Humanoid model (if any)."/>
         <enumeration value="creationDate"
                       appinfo="Creation data for this for this Humanoid model."/>
         <enumeration value="usageRestrictions"
                       appinfo="Usage restrictions for this Humanoid model (if any)."/>
         <enumeration value="humanoidVersion"
                       appinfo="The humanoidVersion term refers to the version of the humanoid being used, in order to track revisions to the data. It is not the same as the version field of the Humanoid object, which refers to the version of the HAnim specification that was used when building the humanoid."/>
         <enumeration value="age"
                       appinfo="Description of Humanoid age (not necessarily numeric)."/>
         <enumeration value="gender"
                       appinfo="The gender term typically has a value of female, male or neuter."/>
         <enumeration value="height"
                       appinfo="SFFloat Humanoid height in base units (typically meters)."/>
         <enumeration value="weight"
                       appinfo="SFFloat Humanoid weight in base units (typically kilograms)."/>
      </SimpleType>
      <SimpleType name="hanimJointNameValues"
                   baseType="xs:NMTOKEN"
                   appinfo="CAESAR joint names for identification of HAnimJoint nodes as defined in the HAnim Architecture specification. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#Hierarchy">
         <enumeration value="humanoid_root"
                       index="1"
                       loa="0"
                       default="0 0.8240 0.0277"
                       documentation="https://en.wikipedia.org/wiki/Outline_of_human_anatomy#Joints"/>
         <enumeration value="sacroiliac"
                       index="2"
                       alias="SIJ,SI joint"
                       default="0 0.9149 0.0016"
                       parent="humanoid_root"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Sacroiliac_joint"/>
         <enumeration value="l_hip"
                       index="3"
                       default="0.0961 0.9124 -0.0001"
                       parent="sacroiliac"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Hip"/>
         <enumeration value="l_knee"
                       index="4"
                       default="0.1040 0.4867 0.0308"
                       parent="l_hip"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Knee"/>
         <enumeration value="l_talocrural"
                       index="5"
                       alias="l_ankle"
                       default="0.1101 0.0656 -0.0736"
                       parent="l_knee"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Ankle"/>
         <enumeration value="l_talocalcaneonavicular"
                       index="6"
                       alias="l_talocalcaneal"
                       parent="l_talocrural"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Subtalar_joint"/>
         <enumeration value="l_cuneonavicular_1"
                       index="7"
                       parent="l_talocalcaneonavicular"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
         <enumeration value="l_tarsometatarsal_1"
                       index="8"
                       parent="l_cuneonavicular_1"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
         <enumeration value="l_metatarsophalangeal_1"
                       index="9"
                       parent="l_tarsometatarsal_1"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
         <enumeration value="l_tarsal_interphalangeal_1"
                       index="10"
                       parent="l_metatarsophalangeal_1"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="l_cuneonavicular_2"
                       index="11"
                       alias="l_cuneonavicular"
                       parent="l_talocalcaneonavicular"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
         <enumeration value="l_tarsometatarsal_2"
                       index="12"
                       alias="l_subtalar,l_tarsometatarsal"
                       default="0.1086 0.0001 -0.0368"
                       parent="l_cuneonavicular_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
         <enumeration value="l_metatarsophalangeal_2"
                       index="13"
                       alias="l_midtarsal,l_metatarsophalangeal"
                       default="0.1086 0.0001 0.0368"
                       parent="l_tarsometatarsal_2"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
         <enumeration value="l_tarsal_proximal_interphalangeal_2"
                       index="14"
                       alias="l_tarsal_proximal_interphalangeal"
                       parent="l_metatarsophalangeal_2"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="l_tarsal_distal_interphalangeal_2"
                       index="15"
                       alias="l_tarsal_distal_interphalangeal"
                       default="0.1086 0.0000 0.0762"
                       parent="l_tarsal_proximal_interphalangeal_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="l_cuneonavicular_3"
                       index="16"
                       parent="l_talocalcaneonavicular"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
         <enumeration value="l_tarsometatarsal_3"
                       index="17"
                       parent="l_cuneonavicular_3"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
         <enumeration value="l_metatarsophalangeal_3"
                       index="18"
                       parent="l_tarsometatarsal_3"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
         <enumeration value="l_tarsal_proximal_interphalangeal_3"
                       index="19"
                       parent="l_metatarsophalangeal_3"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="l_tarsal_distal_interphalangeal_3"
                       index="20"
                       parent="l_tarsal_proximal_interphalangeal_3"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="l_calcaneocuboid"
                       index="21"
                       alias="l_calcaneuscuboid"
                       parent="l_talocrural"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Calcaneocuboid_joint"/>
         <enumeration value="l_transversetarsal"
                       index="22"
                       parent="l_calcaneocuboid"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Transverse_tarsal_joint"/>
         <enumeration value="l_tarsometatarsal_4"
                       index="23"
                       parent="l_transversetarsal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
         <enumeration value="l_metatarsophalangeal_4"
                       index="24"
                       parent="l_tarsometatarsal_4"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
         <enumeration value="l_tarsal_proximal_interphalangeal_4"
                       index="25"
                       parent="l_metatarsophalangeal_4"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="l_tarsal_distal_interphalangeal_4"
                       index="26"
                       parent="l_tarsal_proximal_interphalangeal_4"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="l_tarsometatarsal_5"
                       index="27"
                       parent="l_transversetarsal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
         <enumeration value="l_metatarsophalangeal_5"
                       index="28"
                       parent="l_tarsometatarsal_5"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
         <enumeration value="l_tarsal_proximal_interphalangeal_5"
                       index="29"
                       parent="l_metatarsophalangeal_5"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="l_tarsal_distal_interphalangeal_5"
                       index="30"
                       parent="l_tarsal_proximal_interphalangeal_5"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="r_hip"
                       index="31"
                       default="-0.0950 0.9171 0.0029"
                       parent="sacroiliac"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Hip"/>
         <enumeration value="r_knee"
                       index="32"
                       default="-0.0867 0.4913 0.0318"
                       parent="r_hip"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Knee"/>
         <enumeration value="r_talocrural"
                       index="33"
                       alias="r_ankle"
                       default="-0.0801 0.0712 -0.0766"
                       parent="r_knee"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Ankle"/>
         <enumeration value="r_talocalcaneonavicular"
                       index="34"
                       alias="r_talocalcaneal"
                       parent="r_talocrural"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Subtalar_joint"/>
         <enumeration value="r_cuneonavicular_1"
                       index="35"
                       parent="r_talocalcaneonavicular"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
         <enumeration value="r_tarsometatarsal_1"
                       index="36"
                       parent="r_cuneonavicular_1"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
         <enumeration value="r_metatarsophalangeal_1"
                       index="37"
                       parent="r_tarsometatarsal_1"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
         <enumeration value="r_tarsal_interphalangeal_1"
                       index="38"
                       parent="r_metatarsophalangeal_1"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="r_cuneonavicular_2"
                       index="39"
                       alias="r_cuneonavicular"
                       parent="r_talocalcaneonavicular"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
         <enumeration value="r_tarsometatarsal_2"
                       index="40"
                       alias="r_subtalar,r_tarsometatarsal"
                       default="-0.0801 0.0000 -0.0368"
                       parent="r_cuneonavicular_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
         <enumeration value="r_metatarsophalangeal_2"
                       index="41"
                       alias="r_midtarsal,r_metatarsophalangeal"
                       default="-0.0801 0.0000 0.0368"
                       parent="r_tarsometatarsal_2"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
         <enumeration value="r_tarsal_proximal_interphalangeal_2"
                       index="42"
                       alias="r_tarsal_proximal_interphalangeal"
                       parent="r_metatarsophalangeal_2"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="r_tarsal_distal_interphalangeal_2"
                       index="43"
                       alias="r_metatarsal,r_tarsal_distal_interphalangeal"
                       default="-0.0801 0.0039 0.0732"
                       parent="r_tarsal_proximal_interphalangeal_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="r_cuneonavicular_3"
                       index="44"
                       parent="r_talocalcaneonavicular"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
         <enumeration value="r_tarsometatarsal_3"
                       index="45"
                       parent="r_cuneonavicular_3"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
         <enumeration value="r_metatarsophalangeal_3"
                       index="46"
                       parent="r_tarsometatarsal_3"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
         <enumeration value="r_tarsal_proximal_interphalangeal_3"
                       index="47"
                       parent="r_metatarsophalangeal_3"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="r_tarsal_distal_interphalangeal_3"
                       index="48"
                       parent="r_tarsal_proximal_interphalangeal_3"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="r_calcaneocuboid"
                       index="49"
                       alias="r_calcaneuscuboid"
                       parent="r_talocrural"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Calcaneocuboid_joint"/>
         <enumeration value="r_transversetarsal"
                       index="50"
                       parent="r_calcaneocuboid"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Transverse_tarsal_joint"/>
         <enumeration value="r_tarsometatarsal_4"
                       index="51"
                       parent="r_transversetarsal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
         <enumeration value="r_metatarsophalangeal_4"
                       index="52"
                       parent="r_tarsometatarsal_4"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
         <enumeration value="r_tarsal_proximal_interphalangeal_4"
                       index="53"
                       parent="r_metatarsophalangeal_4"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="r_tarsal_distal_interphalangeal_4"
                       index="54"
                       parent="r_tarsal_proximal_interphalangeal_4"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="r_tarsometatarsal_5"
                       index="55"
                       parent="r_transversetarsal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
         <enumeration value="r_metatarsophalangeal_5"
                       index="56"
                       parent="r_tarsometatarsal_5"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
         <enumeration value="r_tarsal_proximal_interphalangeal_5"
                       index="57"
                       parent="r_metatarsophalangeal_5"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="r_tarsal_distal_interphalangeal_5"
                       index="58"
                       parent="r_tarsal_proximal_interphalangeal_5"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
         <enumeration value="vl5"
                       index="59"
                       default="0.0028 1.0568 -0.0776"
                       parent="humanoid_root"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vl4"
                       index="60"
                       default="0.0035 1.0925 -0.0787"
                       parent="vl5"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vl3"
                       index="61"
                       default="0.0041 1.1276 -0.0796"
                       parent="vl4"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vl2"
                       index="62"
                       default="0.0045 1.1546 -0.0800"
                       parent="vl3"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vl1"
                       index="63"
                       default="0.0048 1.1912 -0.0805"
                       parent="vl2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt12"
                       index="64"
                       default="0.0051 1.2278 -0.0808"
                       parent="vl1"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt11"
                       index="65"
                       default="0.0053 1.2679 -0.0810"
                       parent="vt12"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt10"
                       index="66"
                       default="0.0056 1.2848 -0.0822"
                       parent="vt11"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt9"
                       index="67"
                       default="0.0057 1.3126 -0.0838"
                       parent="vt10"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt8"
                       index="68"
                       default="0.0057 1.3382 -0.0845"
                       parent="vt9"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt7"
                       index="69"
                       default="0.0058 1.3625 -0.0833"
                       parent="vt8"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt6"
                       index="70"
                       default="0.0059 1.3866 -0.0800"
                       parent="vt7"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt5"
                       index="71"
                       default="0.0060 1.4102 -0.0745"
                       parent="vt6"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt4"
                       index="72"
                       default="0.0061 1.4320 -0.0675"
                       parent="vt5"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt3"
                       index="73"
                       default="0.0062 1.4583 -0.0570"
                       parent="vt4"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt2"
                       index="74"
                       default="0.0063 1.4761 -0.0484"
                       parent="vt3"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vt1"
                       index="75"
                       default="0.0065 1.4951 -0.0387"
                       parent="vt2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vc7"
                       index="76"
                       default="0.0066 1.5132 -0.0301"
                       parent="vt1"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vc6"
                       index="77"
                       default="0.0066 1.5357 -0.0143"
                       parent="vc7"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vc5"
                       index="78"
                       default="0.0066 1.5520 -0.0082"
                       parent="vc6"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vc4"
                       index="79"
                       default="0.0066 1.5662 -0.0084"
                       parent="vc5"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vc3"
                       index="80"
                       default="0.0066 1.5800 -0.0103"
                       parent="vc4"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vc2"
                       index="81"
                       default="0.0066 1.5928 -0.0103"
                       parent="vc3"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="vc1"
                       index="82"
                       default="0.0066 1.6144 -0.0034"
                       parent="vc2"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="skullbase"
                       index="83"
                       default="0.0044 1.6209 0.0236"
                       parent="vc1"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Skull"/>
         <enumeration value="l_eyelid_joint"
                       index="84"
                       parent="skullbase"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Eyelid"/>
         <enumeration value="r_eyelid_joint"
                       index="85"
                       parent="skullbase"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Eyelid"/>
         <enumeration value="l_eyeball_joint"
                       index="86"
                       default="0.0336 1.6332 0.0502"
                       parent="skullbase"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Eye"/>
         <enumeration value="r_eyeball_joint"
                       index="87"
                       default="-0.0236 1.6331 0.0510"
                       parent="skullbase"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Eye"/>
         <enumeration value="l_eyebrow_joint"
                       index="88"
                       parent="skullbase"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Eyebrow"/>
         <enumeration value="r_eyebrow_joint"
                       index="89"
                       parent="skullbase"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Eyebrow"/>
         <enumeration value="temporomandibular"
                       index="90"
                       parent="skullbase"
                       loa="3"
                       documentation="https://en.wikipedia.org/wiki/Temporomandibular_joint"/>
         <enumeration value="l_sternoclavicular"
                       index="91"
                       default="0.0820 1.4488 -0.0353"
                       parent="vt1"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Sternoclavicular_joint"/>
         <enumeration value="l_acromioclavicular"
                       index="92"
                       default="0.0962 1.4269 -0.0424"
                       parent="l_sternoclavicular"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Acromioclavicular_joint"/>
         <enumeration value="l_shoulder"
                       index="93"
                       default="0.2029 1.4376 -0.0387"
                       parent="l_acromioclavicular"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Shoulder"/>
         <enumeration value="l_elbow"
                       index="94"
                       default="0.2014 1.1357 -0.0682"
                       parent="l_shoulder"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Elbow"/>
         <enumeration value="l_radiocarpal"
                       index="95"
                       alias="l_wrist"
                       default="0.1984 0.8663 -0.0583"
                       parent="l_elbow"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Wrist"/>
         <enumeration value="l_midcarpal_1"
                       index="96"
                       parent="l_radiocarpal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
         <enumeration value="l_carpometacarpal_1"
                       index="97"
                       alias="l_thumb1"
                       default="0.1924 0.8472 -0.0534"
                       parent="l_midcarpal_1"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
         <enumeration value="l_metacarpophalangeal_1"
                       index="98"
                       alias="l_thumb2"
                       default="0.1951 0.8226 0.0246"
                       parent="l_carpometacarpal_1"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
         <enumeration value="l_carpal_interphalangeal_1"
                       index="99"
                       alias="l_thumb3"
                       default="0.1955 0.8159 0.0464"
                       parent="l_metacarpophalangeal_1"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="l_midcarpal_2"
                       index="100"
                       parent="l_radiocarpal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
         <enumeration value="l_carpometacarpal_2"
                       index="101"
                       alias="l_index0,l_carpometacarpal"
                       default="0.1983 0.8024 -0.0280"
                       parent="l_midcarpal_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
         <enumeration value="l_metacarpophalangeal_2"
                       index="102"
                       alias="l_index1,l_metacarpophalangeal"
                       default="0.1983 0.7815 -0.0280"
                       parent="l_carpometacarpal_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
         <enumeration value="l_carpal_proximal_interphalangeal_2"
                       index="103"
                       alias="l_index2,l_carpal_proximal_interphalangeal"
                       default="0.2017 0.7363 -0.0248"
                       parent="l_metacarpophalangeal_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="l_carpal_distal_interphalangeal_2"
                       index="104"
                       alias="l_index3,l_carpal_distal_interphalangeal"
                       default="0.2028 0.7139 -0.0236"
                       parent="l_carpal_proximal_interphalangeal_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="l_midcarpal_3"
                       index="105"
                       parent="l_radiocarpal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
         <enumeration value="l_carpometacarpal_3"
                       index="106"
                       alias="l_middle0"
                       default="0.1987 0.8029 -0.0530"
                       parent="l_midcarpal_3"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
         <enumeration value="l_metacarpophalangeal_3"
                       index="107"
                       alias="l_middle1"
                       default="0.1987 0.7818 -0.0530"
                       parent="l_carpometacarpal_3"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
         <enumeration value="l_carpal_proximal_interphalangeal_3"
                       index="108"
                       alias="l_middle2"
                       default="0.2013 0.7273 -0.0503"
                       parent="l_metacarpophalangeal_3"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="l_carpal_distal_interphalangeal_3"
                       index="109"
                       alias="l_middle3"
                       default="0.2026 0.7011 -0.0494"
                       parent="l_carpal_proximal_interphalangeal_3"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="l_midcarpal_4_5"
                       index="110"
                       parent="l_radiocarpal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
         <enumeration value="l_carpometacarpal_4"
                       index="111"
                       alias="l_ring0"
                       default="0.1956 0.8019 -0.0794"
                       parent="l_midcarpal_4_5"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
         <enumeration value="l_metacarpophalangeal_4"
                       index="112"
                       alias="l_ring1"
                       default="0.1956 0.7815 -0.0794"
                       parent="l_carpometacarpal_4"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
         <enumeration value="l_carpal_proximal_interphalangeal_4"
                       index="113"
                       alias="l_ring2"
                       default="0.1973 0.7287 -0.0777"
                       parent="l_metacarpophalangeal_4"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="l_carpal_distal_interphalangeal_4"
                       index="114"
                       alias="l_ring3"
                       parent="l_carpal_proximal_interphalangeal_4"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="l_carpometacarpal_5"
                       index="115"
                       alias="l_pinky0"
                       default="0.1925 0.8066 -0.1036"
                       parent="l_midcarpal_4_5"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
         <enumeration value="l_metacarpophalangeal_5"
                       index="116"
                       alias="l_pinky1"
                       default="0.1925 0.7866 -0.1036"
                       parent="l_carpometacarpal_5"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
         <enumeration value="l_carpal_proximal_interphalangeal_5"
                       index="117"
                       alias="l_pinky2"
                       default="0.1938 0.7452 -0.1024"
                       parent="l_metacarpophalangeal_5"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="l_carpal_distal_interphalangeal_5"
                       index="118"
                       alias="l_pinky3"
                       default="0.1948 0.7277 -0.1017"
                       parent="l_carpal_proximal_interphalangeal_5"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="r_sternoclavicular"
                       index="119"
                       default="-0.0694 1.4600 -0.0330"
                       parent="vt1"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Sternoclavicular_joint"/>
         <enumeration value="r_acromioclavicular"
                       index="120"
                       default="-0.0836 1.4281 -0.0401"
                       parent="r_sternoclavicular"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Acromioclavicular_joint"/>
         <enumeration value="r_shoulder"
                       index="121"
                       default="-0.1907 1.4407 -0.0325"
                       parent="r_acromioclavicular"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Shoulder"/>
         <enumeration value="r_elbow"
                       index="122"
                       default="-0.1949 1.1388 -0.0620"
                       parent="r_shoulder"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Elbow"/>
         <enumeration value="r_radiocarpal"
                       index="123"
                       alias="r_wrist"
                       default="-0.1959 0.8694 -0.0521"
                       parent="r_elbow"
                       loa="1"
                       documentation="https://en.wikipedia.org/wiki/Wrist"/>
         <enumeration value="r_midcarpal_1"
                       index="124"
                       parent="r_radiocarpal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
         <enumeration value="r_carpometacarpal_1"
                       index="125"
                       alias="r_thumb1"
                       default="-0.1899 0.8502 -0.0473"
                       parent="r_midcarpal_1"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
         <enumeration value="r_metacarpophalangeal_1"
                       index="126"
                       alias="r_thumb2"
                       default="-0.1874 0.8256 0.0306"
                       parent="r_carpometacarpal_1"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
         <enumeration value="r_carpal_interphalangeal_1"
                       index="127"
                       alias="r_thumb3"
                       default="-0.1864 0.8190 0.0506"
                       parent="r_metacarpophalangeal_1"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="r_midcarpal_2"
                       index="128"
                       parent="r_radiocarpal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
         <enumeration value="r_carpometacarpal_2"
                       index="129"
                       alias="r_index0,r_carpometacarpal"
                       parent="r_midcarpal_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
         <enumeration value="r_metacarpophalangeal_2"
                       index="130"
                       alias="r_index1,r_metacarpophalangeal"
                       default="-0.1961 0.8055 -0.0218"
                       parent="r_carpometacarpal_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
         <enumeration value="r_carpal_proximal_interphalangeal_2"
                       index="131"
                       alias="r_index2,r_carpal_proximal_interphalangeal"
                       default="-0.1954 0.7393 -0.0185"
                       parent="r_metacarpophalangeal_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="r_carpal_distal_interphalangeal_2"
                       index="132"
                       alias="r_index3,r_carpal_distal_interphalangeal"
                       default="-0.1945 0.7169 -0.0173"
                       parent="r_carpal_proximal_interphalangeal_2"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="r_midcarpal_3"
                       index="133"
                       parent="r_radiocarpal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
         <enumeration value="r_carpometacarpal_3"
                       index="134"
                       alias="r_middle0"
                       default="-0.1972 0.8060 -0.0468"
                       parent="r_midcarpal_3"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
         <enumeration value="r_metacarpophalangeal_3"
                       index="135"
                       alias="r_middle1"
                       default="-0.1972 0.7849 -0.0468"
                       parent="r_carpometacarpal_3"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
         <enumeration value="r_carpal_proximal_interphalangeal_3"
                       index="136"
                       alias="r_middle2"
                       default="-0.1950 0.7304 -0.0441"
                       parent="r_metacarpophalangeal_3"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="r_carpal_distal_interphalangeal_3"
                       index="137"
                       alias="r_middle3"
                       default="-0.1939 0.7042 -0.0432"
                       parent="r_carpal_proximal_interphalangeal_3"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="r_midcarpal_4_5"
                       index="138"
                       parent="r_radiocarpal"
                       loa="4"
                       documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
         <enumeration value="r_carpometacarpal_4"
                       index="139"
                       alias="r_ring0"
                       default="-0.1951 0.8049 -0.0732"
                       parent="r_midcarpal_4_5"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
         <enumeration value="r_metacarpophalangeal_4"
                       index="140"
                       alias="r_ring1"
                       default="-0.1951 0.7845 -0.0732"
                       parent="r_carpometacarpal_4"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
         <enumeration value="r_carpal_proximal_interphalangeal_4"
                       index="141"
                       alias="r_ring2"
                       default="-0.1920 0.7318 -0.0716"
                       parent="r_metacarpophalangeal_4"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="r_carpal_distal_interphalangeal_4"
                       index="142"
                       alias="r_ring3"
                       default="-0.1908 0.7077 -0.0706"
                       parent="r_carpal_proximal_interphalangeal_4"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="r_carpometacarpal_5"
                       index="143"
                       alias="r_pinky0"
                       default="-0.1926 0.8096 -0.0975"
                       parent="r_midcarpal_4_5"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
         <enumeration value="r_metacarpophalangeal_5"
                       index="144"
                       alias="r_pinky1"
                       default="-0.1926 0.7896 -0.0975"
                       parent="r_carpometacarpal_5"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
         <enumeration value="r_carpal_proximal_interphalangeal_5"
                       index="145"
                       alias="r_pinky2"
                       default="-0.1902 0.7483 -0.0963"
                       parent="r_metacarpophalangeal_5"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
         <enumeration value="r_carpal_distal_interphalangeal_5"
                       index="146"
                       alias="r_pinky3"
                       default="-0.1908 0.7540 -0.0960"
                       parent="r_carpal_proximal_interphalangeal_5"
                       loa="2"
                       documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
      </SimpleType>
      <SimpleType name="hanimSegmentNameValues"
                   baseType="xs:NMTOKEN"
                   appinfo="CAESAR segment names for identification of HAnimSegment nodes as defined in the HAnim Architecture specification. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#Hierarchy">
         <enumeration value="sacrum"
                       index="1"
                       loa="1"
                       parent="humanoid_root"
                       documentation="https://en.wikipedia.org/wiki/Sacrum"/>
         <enumeration value="pelvis"
                       index="2"
                       loa="1"
                       parent="sacroiliac"
                       documentation="https://en.wikipedia.org/wiki/Pelvis"/>
         <enumeration value="l_thigh"
                       index="3"
                       loa="1"
                       parent="l_hip"
                       documentation="https://en.wikipedia.org/wiki/Thigh"/>
         <enumeration value="l_calf"
                       index="4"
                       loa="1"
                       parent="l_knee"
                       documentation="https://en.wikipedia.org/wiki/Calf_(leg)"/>
         <enumeration value="l_talus"
                       index="5"
                       alias="l_hindfoot"
                       loa="1"
                       parent="l_talocrural"
                       documentation="https://en.wikipedia.org/wiki/Talus_bone"/>
         <enumeration value="l_navicular"
                       index="6"
                       loa="4"
                       parent="l_talocalcaneonavicular"
                       documentation="https://en.wikipedia.org/wiki/Navicular_bone"/>
         <enumeration value="l_cuneiform_1"
                       index="7"
                       loa="4"
                       parent="l_cuneonavicular_1"
                       documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
         <enumeration value="l_metatarsal_1"
                       index="8"
                       loa="4"
                       parent="l_tarsometatarsal_1"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="l_tarsal_proximal_phalanx_1"
                       index="9"
                       loa="4"
                       parent="l_metatarsophalangeal_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_distal_phalanx_1"
                       index="10"
                       loa="4"
                       parent="l_tarsal_interphalangeal_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_cuneiform_2"
                       index="11"
                       alias="l_cuneiform"
                       loa="4"
                       parent="l_cuneonavicular_2"
                       documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
         <enumeration value="l_metatarsal_2"
                       index="12"
                       alias="l_midproximal,l_metatarsal"
                       loa="2"
                       parent="l_tarsometatarsal_2"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="l_tarsal_proximal_phalanx_2"
                       index="13"
                       alias="l_middistal,l_tarsal_proximal_phalanx"
                       loa="1"
                       parent="l_metatarsophalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_middle_phalanx_2"
                       index="14"
                       alias="l_tarsal_middle_phalanx"
                       loa="4"
                       parent="l_tarsal_proximal_interphalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_distal_phalanx_2"
                       index="15"
                       alias="l_forefoot,l_tarsal_distal_phalanx"
                       loa="2"
                       parent="l_tarsal_distal_interphalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_cuneiform_3"
                       index="16"
                       loa="4"
                       parent="l_cuneonavicular_3"
                       documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
         <enumeration value="l_metatarsal_3"
                       index="17"
                       loa="4"
                       parent="l_tarsometatarsal_3"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="l_tarsal_proximal_phalanx_3"
                       index="18"
                       loa="4"
                       parent="l_metatarsophalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_middle_phalanx_3"
                       index="19"
                       loa="4"
                       parent="l_tarsal_proximal_interphalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_distal_phalanx_3"
                       index="20"
                       loa="4"
                       parent="l_tarsal_distal_interphalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_calcaneus"
                       index="21"
                       alias="l_calcaneum"
                       loa="4"
                       parent="l_calcaneocuboid"
                       documentation="https://en.wikipedia.org/wiki/Calcaneus"/>
         <enumeration value="l_cuboid"
                       index="22"
                       loa="4"
                       parent="l_transversetarsal"
                       documentation="https://en.wikipedia.org/wiki/Cuboid"/>
         <enumeration value="l_metatarsal_4"
                       index="23"
                       loa="4"
                       parent="l_tarsometatarsal_4"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="l_tarsal_proximal_phalanx_4"
                       index="24"
                       loa="4"
                       parent="l_metatarsophalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_middle_phalanx_4"
                       index="25"
                       loa="4"
                       parent="l_tarsal_proximal_interphalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_distal_phalanx_4"
                       index="26"
                       loa="4"
                       parent="l_tarsal_distal_interphalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_metatarsal_5"
                       index="27"
                       loa="4"
                       parent="l_tarsometatarsal_5"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="l_tarsal_proximal_phalanx_5"
                       index="28"
                       loa="4"
                       parent="l_metatarsophalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_middle_phalanx_5"
                       index="29"
                       loa="4"
                       parent="l_tarsal_proximal_interphalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_tarsal_distal_phalanx_5"
                       index="30"
                       loa="4"
                       parent="l_tarsal_distal_interphalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_thigh"
                       index="31"
                       loa="1"
                       parent="r_hip"
                       documentation="https://en.wikipedia.org/wiki/Thigh"/>
         <enumeration value="r_calf"
                       index="32"
                       loa="1"
                       parent="r_knee"
                       documentation="https://en.wikipedia.org/wiki/Calf_(leg)"/>
         <enumeration value="r_talus"
                       index="33"
                       alias="r_hindfoot"
                       loa="1"
                       parent="r_talocrural"
                       documentation="https://en.wikipedia.org/wiki/Talus_bone"/>
         <enumeration value="r_navicular"
                       index="34"
                       loa="4"
                       parent="r_talocalcaneonavicular"
                       documentation="https://en.wikipedia.org/wiki/Navicular_bone"/>
         <enumeration value="r_cuneiform_1"
                       index="35"
                       loa="4"
                       parent="r_cuneonavicular_1"
                       documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
         <enumeration value="r_metatarsal_1"
                       index="36"
                       loa="4"
                       parent="r_tarsometatarsal_1"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="r_tarsal_proximal_phalanx_1"
                       index="37"
                       loa="4"
                       parent="r_metatarsophalangeal_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_distal_phalanx_1"
                       index="38"
                       loa="4"
                       parent="r_tarsal_interphalangeal_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_cuneiform_2"
                       index="39"
                       alias="r_cuneiform"
                       loa="4"
                       parent="r_cuneonavicular_2"
                       documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
         <enumeration value="r_metatarsal_2"
                       index="40"
                       alias="r_midproximal"
                       loa="2"
                       parent="r_tarsometatarsal_2"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="r_tarsal_proximal_phalanx_2"
                       index="41"
                       alias="r_middistal,r_tarsal_proximal_phalanx"
                       loa="1"
                       parent="r_metatarsophalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_middle_phalanx_2"
                       index="42"
                       alias="r_tarsal_middle_phalanx"
                       loa="4"
                       parent="r_tarsal_proximal_interphalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_distal_phalanx_2"
                       index="43"
                       alias="r_forefoot,r_tarsal_distal_phalanx"
                       loa="2"
                       parent="r_tarsal_distal_interphalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_cuneiform_3"
                       index="44"
                       loa="4"
                       parent="r_cuneonavicular_3"
                       documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
         <enumeration value="r_metatarsal_3"
                       index="45"
                       loa="4"
                       parent="r_tarsometatarsal_3"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="r_tarsal_proximal_phalanx_3"
                       index="46"
                       loa="4"
                       parent="r_metatarsophalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_middle_phalanx_3"
                       index="47"
                       loa="4"
                       parent="r_tarsal_proximal_interphalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_distal_phalanx_3"
                       index="48"
                       loa="4"
                       parent="r_tarsal_distal_interphalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_calcaneus"
                       index="49"
                       alias="r_calcaneum"
                       loa="4"
                       parent="r_calcaneocuboid"
                       documentation="https://en.wikipedia.org/wiki/Calcaneus"/>
         <enumeration value="r_cuboid"
                       index="50"
                       loa="4"
                       parent="r_transversetarsal"
                       documentation="https://en.wikipedia.org/wiki/Cuboid"/>
         <enumeration value="r_metatarsal_4"
                       index="51"
                       loa="4"
                       parent="r_tarsometatarsal_4"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="r_tarsal_proximal_phalanx_4"
                       index="52"
                       loa="4"
                       parent="r_metatarsophalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_middle_phalanx_4"
                       index="53"
                       loa="4"
                       parent="r_tarsal_proximal_interphalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_distal_phalanx_4"
                       index="54"
                       loa="4"
                       parent="r_tarsal_distal_interphalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_metatarsal_5"
                       index="55"
                       loa="4"
                       parent="r_tarsometatarsal_5"
                       documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
         <enumeration value="r_tarsal_proximal_phalanx_5"
                       index="56"
                       loa="4"
                       parent="r_metatarsophalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_middle_phalanx_5"
                       index="57"
                       loa="4"
                       parent="r_tarsal_proximal_interphalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_tarsal_distal_phalanx_5"
                       index="58"
                       loa="4"
                       parent="r_tarsal_distal_interphalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l5"
                       index="59"
                       loa="1"
                       parent="vl5"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="l4"
                       index="60"
                       loa="3"
                       parent="vl4"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="l3"
                       index="61"
                       loa="2"
                       parent="vl3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="l2"
                       index="62"
                       loa="3"
                       parent="vl2"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="l1"
                       index="63"
                       loa="2"
                       parent="vl1"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t12"
                       index="64"
                       loa="3"
                       parent="vt12"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t11"
                       index="65"
                       loa="3"
                       parent="vt11"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t10"
                       index="66"
                       loa="2"
                       parent="vt10"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t9"
                       index="67"
                       loa="3"
                       parent="vt9"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t8"
                       index="68"
                       loa="3"
                       parent="vt8"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t7"
                       index="69"
                       loa="3"
                       parent="vt7"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t6"
                       index="70"
                       loa="2"
                       parent="vt6"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t5"
                       index="71"
                       loa="3"
                       parent="vt5"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t4"
                       index="72"
                       loa="3"
                       parent="vt4"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t3"
                       index="73"
                       loa="3"
                       parent="vt3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t2"
                       index="74"
                       loa="3"
                       parent="vt2"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="t1"
                       index="75"
                       loa="2"
                       parent="vt1"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="c7"
                       index="76"
                       loa="3"
                       parent="vc7"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="c6"
                       index="77"
                       loa="3"
                       parent="vc6"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="c5"
                       index="78"
                       loa="3"
                       parent="vc5"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="c4"
                       index="79"
                       loa="2"
                       parent="vc4"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="c3"
                       index="80"
                       loa="3"
                       parent="vc3"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="c2"
                       index="81"
                       loa="2"
                       parent="vc2"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="c1"
                       index="82"
                       loa="3"
                       parent="vc1"
                       documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
         <enumeration value="skull"
                       index="83"
                       alias="head"
                       loa="1"
                       parent="skullbase"
                       documentation="https://en.wikipedia.org/wiki/Skull"/>
         <enumeration value="l_eyelid"
                       index="84"
                       loa="3"
                       parent="l_eyelid_joint"
                       documentation="https://en.wikipedia.org/wiki/Eyelid"/>
         <enumeration value="r_eyelid"
                       index="85"
                       loa="3"
                       parent="r_eyelid_joint"
                       documentation="https://en.wikipedia.org/wiki/Eyelid"/>
         <enumeration value="l_eyeball"
                       index="86"
                       loa="3"
                       parent="l_eyeball_joint"
                       documentation="https://en.wikipedia.org/wiki/Eye"/>
         <enumeration value="r_eyeball"
                       index="87"
                       loa="3"
                       parent="r_eyeball_joint"
                       documentation="https://en.wikipedia.org/wiki/Eye"/>
         <enumeration value="l_eyebrow"
                       index="88"
                       loa="3"
                       parent="l_eyebrow_joint"
                       documentation="https://en.wikipedia.org/wiki/Eyebrow"/>
         <enumeration value="r_eyebrow"
                       index="89"
                       loa="3"
                       parent="r_eyebrow_joint"
                       documentation="https://en.wikipedia.org/wiki/Eyebrow"/>
         <enumeration value="jaw"
                       index="90"
                       loa="3"
                       parent="temporomandibular"
                       documentation="https://en.wikipedia.org/wiki/Jaw"/>
         <enumeration value="l_clavicle"
                       index="91"
                       loa="2"
                       parent="l_sternoclavicular"
                       documentation="https://en.wikipedia.org/wiki/Clavicle"/>
         <enumeration value="l_scapula"
                       index="92"
                       loa="2"
                       parent="l_acromioclavicular"
                       documentation="https://en.wikipedia.org/wiki/Scapula"/>
         <enumeration value="l_upperarm"
                       index="93"
                       loa="1"
                       parent="l_shoulder"
                       documentation="https://en.wikipedia.org/wiki/Arm"/>
         <enumeration value="l_forearm"
                       index="94"
                       loa="1"
                       parent="l_elbow"
                       documentation="https://en.wikipedia.org/wiki/Forearm"/>
         <enumeration value="l_carpal"
                       index="95"
                       alias="l_hand"
                       loa="1"
                       parent="l_radiocarpal"
                       documentation="https://en.wikipedia.org/wiki/Carpal_bones"/>
         <enumeration value="l_trapezium"
                       index="96"
                       loa="4"
                       parent="l_midcarpal_1"
                       documentation="https://en.wikipedia.org/wiki/Trapezium_(bone)"/>
         <enumeration value="l_metacarpal_1"
                       index="97"
                       alias="l_thumb_metacarpal"
                       loa="2"
                       parent="l_carpometacarpal_1"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="l_carpal_proximal_phalanx_1"
                       index="98"
                       alias="l_thumb_proximal"
                       loa="2"
                       parent="l_metacarpophalangeal_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_distal_phalanx_1"
                       index="99"
                       alias="l_thumb_distal"
                       loa="2"
                       parent="l_carpal_interphalangeal_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_trapezoid"
                       index="100"
                       loa="4"
                       parent="l_midcarpal_2"
                       documentation="https://en.wikipedia.org/wiki/Trapezoid_bone"/>
         <enumeration value="l_metacarpal_2"
                       index="101"
                       alias="l_index_metacarpal"
                       loa="2"
                       parent="l_carpometacarpal_2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="l_carpal_proximal_phalanx_2"
                       index="102"
                       alias="l_index_proximal,l_carpal_proximal_phalanx"
                       loa="2"
                       parent="l_metacarpophalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_middle_phalanx_2"
                       index="103"
                       alias="l_index_middle,l_carpal_middle_phalanx"
                       loa="2"
                       parent="l_carpal_proximal_interphalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_distal_phalanx_2"
                       index="104"
                       alias="l_index_distal,l_carpal_distal_phalanx"
                       loa="2"
                       parent="l_carpal_distal_interphalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_capitate"
                       index="105"
                       loa="4"
                       parent="l_midcarpal_3"
                       documentation="https://en.wikipedia.org/wiki/Capitate_bone"/>
         <enumeration value="l_metacarpal_3"
                       index="106"
                       alias="l_middle_metacarpal"
                       loa="2"
                       parent="l_carpometacarpal_3"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="l_carpal_proximal_phalanx_3"
                       index="107"
                       alias="l_middle_proximal"
                       loa="2"
                       parent="l_metacarpophalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_middle_phalanx_3"
                       index="108"
                       alias="l_middle_middle"
                       loa="2"
                       parent="l_carpal_proximal_interphalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_distal_phalanx_3"
                       index="109"
                       alias="l_middle_distal"
                       loa="2"
                       parent="l_carpal_distal_interphalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_hamate"
                       index="110"
                       loa="4"
                       parent="l_midcarpal_4_5"
                       documentation="https://en.wikipedia.org/wiki/Hamate_bone"/>
         <enumeration value="l_metacarpal_4"
                       index="111"
                       alias="l_ring_metacarpal"
                       loa="2"
                       parent="l_carpometacarpal_4"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="l_carpal_proximal_phalanx_4"
                       index="112"
                       alias="l_ring_proximal"
                       loa="2"
                       parent="l_metacarpophalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_middle_phalanx_4"
                       index="113"
                       alias="l_ring_middle"
                       loa="2"
                       parent="l_carpal_proximal_interphalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_distal_phalanx_4"
                       index="114"
                       alias="l_ring_distal"
                       loa="2"
                       parent="l_carpal_distal_interphalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_metacarpal_5"
                       index="115"
                       alias="l_pinky_metacarpal"
                       loa="2"
                       parent="l_carpometacarpal_5"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="l_carpal_proximal_phalanx_5"
                       index="116"
                       alias="l_pinky_proximal"
                       loa="2"
                       parent="l_metacarpophalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_middle_phalanx_5"
                       index="117"
                       alias="l_pinky_middle"
                       loa="2"
                       parent="l_carpal_proximal_interphalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="l_carpal_distal_phalanx_5"
                       index="118"
                       alias="l_pinky_distal"
                       loa="2"
                       parent="l_carpal_distal_interphalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_clavicle"
                       index="119"
                       loa="2"
                       parent="r_sternoclavicular"
                       documentation="https://en.wikipedia.org/wiki/Clavicle"/>
         <enumeration value="r_scapula"
                       index="120"
                       loa="2"
                       parent="r_acromioclavicular"
                       documentation="https://en.wikipedia.org/wiki/Scapula"/>
         <enumeration value="r_upperarm"
                       index="121"
                       loa="1"
                       parent="r_shoulder"
                       documentation="https://en.wikipedia.org/wiki/Arm"/>
         <enumeration value="r_forearm"
                       index="122"
                       loa="1"
                       parent="r_elbow"
                       documentation="https://en.wikipedia.org/wiki/Forearm"/>
         <enumeration value="r_carpal"
                       index="123"
                       alias="r_hand"
                       loa="1"
                       parent="r_radiocarpal"
                       documentation="https://en.wikipedia.org/wiki/Carpal_bones"/>
         <enumeration value="r_trapezium"
                       index="124"
                       loa="4"
                       parent="r_midcarpal_1"
                       documentation="https://en.wikipedia.org/wiki/Trapezium_(bone)"/>
         <enumeration value="r_metacarpal_1"
                       index="125"
                       alias="r_thumb_metacarpal"
                       loa="2"
                       parent="r_carpometacarpal_1"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="r_carpal_proximal_phalanx_1"
                       index="126"
                       alias="r_thumb_proximal"
                       loa="2"
                       parent="r_metacarpophalangeal_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_distal_phalanx_1"
                       index="127"
                       alias="r_thumb_distal"
                       loa="2"
                       parent="r_carpal_interphalangeal_1"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_trapezoid"
                       index="128"
                       loa="4"
                       parent="r_midcarpal_2"
                       documentation="https://en.wikipedia.org/wiki/Trapezoid_bone"/>
         <enumeration value="r_metacarpal_2"
                       index="129"
                       alias="r_index_metacarpal"
                       loa="2"
                       parent="r_carpometacarpal_2"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="r_carpal_proximal_phalanx_2"
                       index="130"
                       alias="r_index_proximal,r_carpal_proximal_phalanx"
                       loa="2"
                       parent="r_metacarpophalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_middle_phalanx_2"
                       index="131"
                       alias="r_index_middle,r_carpal_middle_phalanx"
                       loa="2"
                       parent="r_carpal_proximal_interphalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_distal_phalanx_2"
                       index="132"
                       alias="r_index_distal,r_carpal_distal_phalanx"
                       loa="2"
                       parent="r_carpal_distal_interphalangeal_2"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_capitate"
                       index="133"
                       loa="4"
                       parent="r_midcarpal_3"
                       documentation="https://en.wikipedia.org/wiki/Capitate_bone"/>
         <enumeration value="r_metacarpal_3"
                       index="134"
                       alias="r_middle_metacarpal"
                       loa="2"
                       parent="r_carpometacarpal_3"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="r_carpal_proximal_phalanx_3"
                       index="135"
                       alias="r_middle_proximal"
                       loa="2"
                       parent="r_metacarpophalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_middle_phalanx_3"
                       index="136"
                       alias="r_middle_middle"
                       loa="2"
                       parent="r_carpal_proximal_interphalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_distal_phalanx_3"
                       index="137"
                       alias="r_middle_distal"
                       loa="2"
                       parent="r_carpal_distal_interphalangeal_3"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_hamate"
                       index="138"
                       loa="4"
                       parent="r_midcarpal_4_5"
                       documentation="https://en.wikipedia.org/wiki/Hamate_bone"/>
         <enumeration value="r_metacarpal_4"
                       index="139"
                       alias="r_ring_metacarpal"
                       loa="2"
                       parent="r_carpometacarpal_4"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="r_carpal_proximal_phalanx_4"
                       index="140"
                       alias="r_ring_proximal"
                       loa="2"
                       parent="r_metacarpophalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_middle_phalanx_4"
                       index="141"
                       alias="r_ring_middle"
                       loa="2"
                       parent="r_carpal_proximal_interphalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_distal_phalanx_4"
                       index="142"
                       alias="r_ring_distal"
                       loa="2"
                       parent="r_carpal_distal_interphalangeal_4"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_metacarpal_5"
                       index="143"
                       alias="r_pinky_metacarpal"
                       loa="2"
                       parent="r_carpometacarpal_5"
                       documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
         <enumeration value="r_carpal_proximal_phalanx_5"
                       index="144"
                       alias="r_pinky_proximal"
                       loa="2"
                       parent="r_metacarpophalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_middle_phalanx_5"
                       index="145"
                       alias="r_pinky_middle"
                       loa="2"
                       parent="r_carpal_proximal_interphalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
         <enumeration value="r_carpal_distal_phalanx_5"
                       index="146"
                       alias="r_pinky_distal"
                       loa="2"
                       parent="r_carpal_distal_interphalangeal_5"
                       documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
      </SimpleType>
      <SimpleType name="hanimVersionChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="hanimVersionChoices enumeration constants are used to identify the allowed versions for an HAnimHumanoid node. Note that default HAnimHumanoid version is 2.0 for X3D version 4, and default is 1.0 for X3D version 3. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimHumanoid">
         <enumeration value="2.0"
                       appinfo="Revised standard HAnim 19774 version 2 (parts 1 and 2) were approved by ISO in November 2019, published by Web3D Consortium May 2020."
                       documentation="https://www.web3d.org/documents/specifications/19774/V2.0"/>
      </SimpleType>
      <SimpleType name="hatchStyleValues"
                   baseType="SFInt32"
                   appinfo="hatchStyle selects a hatch pattern from International Register of Graphical Items."
                   documentation="https://isotc.iso.org/livelink/livelink/fetch/-8916524/8916549/8916590/6208440/class_pages/hatchstyle.html">
         <enumeration value="1"
                       alias="HORIZONTAL"
                       appinfo="Horizontal equally spaced parallel lines"/>
         <enumeration value="2"
                       alias="VERTICAL"
                       appinfo="Vertical equally spaced parallel lines"/>
         <enumeration value="3"
                       alias="POSITIVE_SLOPE"
                       appinfo="Positive slope equally spaced parallel lines"/>
         <enumeration value="4"
                       alias="NEGATIVE_SLOPE"
                       appinfo="Negative slope equally spaced parallel lines"/>
         <enumeration value="5"
                       alias="HORIZONTAL_VERTICAL_CROSSHATCH"
                       appinfo="Horizontal/vertical crosshatch"/>
         <enumeration value="6"
                       alias="POSITIVE_NEGATIVE_SLOPE_CROSSHATCH"
                       appinfo="Positive slope/negative slope crosshatch"/>
         <enumeration value="7"
                       alias="CAST_IRON"
                       appinfo="(cast iron or malleable iron and general use for all materials)"/>
         <enumeration value="8" alias="STEEL" appinfo="(steel)"/>
         <enumeration value="9"
                       alias="BRONZE_BRASS_COPPER_COMPOSITIONS"
                       appinfo="(bronze, brass, copper, and compositions)"/>
         <enumeration value="10"
                       alias="WHITE_METAL_ZINC_LEAD_BABBIT_ALLOYS"
                       appinfo="(white metal, zinc, lead, babbit, and alloys)"/>
         <enumeration value="11"
                       alias="MAGNESIUM_ALUMINUM_ALLOYS"
                       appinfo="(magnesium, aluminum, and aluminum alloys)"/>
         <enumeration value="12"
                       alias="RUBBER_PLASTIC_ELECTRICAL_INSULATION"
                       appinfo="(rubber, plastic, and electrical insulation)"/>
         <enumeration value="13"
                       alias="CORK_FELT_FABRIC_LEATHER_FIBRE"
                       appinfo="(cork, felt, fabric, leather, and fibre/fiber)"/>
         <enumeration value="14"
                       alias="THERMAL_INSULATION"
                       appinfo="(thermal insulation)"/>
         <enumeration value="15"
                       alias="TITANIUM"
                       appinfo="(titanium and refi-actory material)"/>
         <enumeration value="16"
                       alias="MARBLE_SLATE_PORCELAIN_GLASS"
                       appinfo="(marble, slate, porcelain, glass, etc.)"/>
         <enumeration value="17" alias="EARTH" appinfo="(earth)"/>
         <enumeration value="18" alias="SAND" appinfo="(sand)"/>
         <enumeration value="19" alias="REPEATING_DOT" appinfo="(repeating dot)"/>
      </SimpleType>
      <SimpleType name="initializeOnlyAccessTypes"
                   baseType="xs:NMTOKEN"
                   appinfo="Table of fields having accessType initializeOnly."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#FieldSemantics">
         <enumeration value="autoCalc"/>
         <enumeration value="bboxCenter"/>
         <enumeration value="bboxSize"/>
         <enumeration value="beginCap"/>
         <enumeration value="bottomRadius"/>
         <enumeration value="category"/>
         <enumeration value="ccw"/>
         <enumeration value="child1Url"/>
         <enumeration value="child2Url"/>
         <enumeration value="child3Url"/>
         <enumeration value="child4Url"/>
         <enumeration value="closed"/>
         <enumeration value="closureType"/>
         <enumeration value="colorKey"/>
         <enumeration value="colorIndex"/>
         <enumeration value="colorPerVertex"/>
         <enumeration value="convex"/>
         <enumeration value="coordIndex"/>
         <enumeration value="country"/>
         <enumeration value="creaseAngle"/>
         <enumeration value="crossSection"/>
         <enumeration value="directOutput"/>
         <enumeration value="domain"/>
         <enumeration value="duration"/>
         <enumeration value="endCap"/>
         <enumeration value="endAngle"/>
         <enumeration value="extra"/>
         <enumeration value="forceTransitions"/>
         <enumeration value="generateMipMaps"/>
         <enumeration value="geoGridOrigin"/>
         <enumeration value="geometryType"/>
         <enumeration value="geoSystem"/>
         <enumeration value="height"/>
         <enumeration value="index"/>
         <enumeration value="initialDestination"/>
         <enumeration value="initialValue"/>
         <enumeration value="innerRadius"/>
         <enumeration value="internal"/>
         <enumeration value="intersectionType"/>
         <enumeration value="kind"/>
         <enumeration value="knot"/>
         <enumeration value="language"/>
         <enumeration value="lineSegments"/>
         <enumeration value="mustEvaluate"/>
         <enumeration value="normalIndex"/>
         <enumeration value="normalPerVertex"/>
         <enumeration value="numComponents"/>
         <enumeration value="order"/>
         <enumeration value="outerRadius"/>
         <enumeration value="phaseFunction"/>
         <enumeration value="radius"/>
         <enumeration value="range"/>
         <enumeration value="repeatR"/>
         <enumeration value="repeatS"/>
         <enumeration value="repeatT"/>
         <enumeration value="rootUrl"/>
         <enumeration value="rotateYUp"/>
         <enumeration value="size"/>
         <enumeration value="sortOrder"/>
         <enumeration value="spatialize"/>
         <enumeration value="specific"/>
         <enumeration value="speedFactor"/>
         <enumeration value="spine"/>
         <enumeration value="startAngle"/>
         <enumeration value="subcategory"/>
         <enumeration value="texCoordIndex"/>
         <enumeration value="texCoordKey"/>
         <enumeration value="uClosed"/>
         <enumeration value="uDimension"/>
         <enumeration value="uKnot"/>
         <enumeration value="uOrder"/>
         <enumeration value="vClosed"/>
         <enumeration value="vDimension"/>
         <enumeration value="vKnot"/>
         <enumeration value="vOrder"/>
         <enumeration value="xDimension"/>
         <enumeration value="xSpacing"/>
         <enumeration value="zDimension"/>
         <enumeration value="zSpacing"/>
      </SimpleType>
      <SimpleType name="inputOnlyAccessTypes"
                   baseType="xs:NMTOKEN"
                   appinfo="Table of fields having accessType inputOnly. These are not otherwise listed in element definitions since they cannot be specified in an .x3d file."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#FieldSemantics">
         <enumeration value="activate"/>
         <enumeration value="set_articulationParameterValue0"/>
         <enumeration value="set_articulationParameterValue1"/>
         <enumeration value="set_articulationParameterValue2"/>
         <enumeration value="set_articulationParameterValue3"/>
         <enumeration value="set_articulationParameterValue4"/>
         <enumeration value="set_articulationParameterValue5"/>
         <enumeration value="set_articulationParameterValue6"/>
         <enumeration value="set_articulationParameterValue7"/>
         <enumeration value="set_boolean"/>
         <enumeration value="set_bind"/>
         <enumeration value="set_colorIndex"/>
         <enumeration value="set_contacts"/>
         <enumeration value="set_coordIndex"/>
         <enumeration value="set_crossSection"/>
         <enumeration value="set_destination"/>
         <enumeration value="set_fraction"/>
         <enumeration value="set_height"/>
         <enumeration value="set_index"/>
         <enumeration value="set_normalIndex"/>
         <enumeration value="set_orientation"/>
         <enumeration value="set_scale"/>
         <enumeration value="set_spine"/>
         <enumeration value="set_texCoordIndex"/>
         <enumeration value="set_triggerTime"/>
      </SimpleType>
      <SimpleType name="inputOutputAccessTypes"
                   baseType="xs:NMTOKEN"
                   appinfo="Table of fields having accessType inputOutput."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#FieldSemantics">
         <enumeration value="absorption"/>
         <enumeration value="activeLayer"/>
         <enumeration value="address"/>
         <enumeration value="align"/>
         <enumeration value="alpha"/>
         <enumeration value="alphaCutoff"/>
         <enumeration value="alphaMode"/>
         <enumeration value="ambientIntensity"/>
         <enumeration value="ambientTextureMapping"/>
         <enumeration value="anchorPoint"/>
         <enumeration value="angle"/>
         <enumeration value="angularDampingFactor"/>
         <enumeration value="angularVelocity"/>
         <enumeration value="anisotropicDegree"/>
         <enumeration value="antennaLocation"/>
         <enumeration value="applicationID"/>
         <enumeration value="applied"/>
         <enumeration value="appliedParameters"/>
         <enumeration value="antennaPatternType"/>
         <enumeration value="antennaPatternLength"/>
         <enumeration value="articulationParameterArray"/>
         <enumeration value="articulationParameterChangeIndicatorArray"/>
         <enumeration value="articulationParameterCount"/>
         <enumeration value="articulationParameterDesignatorArray"/>
         <enumeration value="articulationParameterIdPartAttachedToArray"/>
         <enumeration value="articulationParameterTypeArray"/>
         <enumeration value="attack"/>
         <enumeration value="attenuation"/>
         <enumeration value="autoDamp"/>
         <enumeration value="autoDisable"/>
         <enumeration value="autoOffset"/>
         <enumeration value="autoRefresh"/>
         <enumeration value="autoRefreshTimeLimit"/>
         <enumeration value="avatarSize"/>
         <enumeration value="axis"/>
         <enumeration value="axis1"/>
         <enumeration value="axis1Angle"/>
         <enumeration value="axis1Torque"/>
         <enumeration value="axis2"/>
         <enumeration value="axis2Angle"/>
         <enumeration value="axis2Torque"/>
         <enumeration value="axis3Angle"/>
         <enumeration value="axis3Torque"/>
         <enumeration value="axisOfRotation"/>
         <enumeration value="axisRotation"/>
         <enumeration value="backAmbientIntensity"/>
         <enumeration value="backDiffuseColor"/>
         <enumeration value="backEmissiveColor"/>
         <enumeration value="backShininess"/>
         <enumeration value="backSpecularColor"/>
         <enumeration value="backTexture"/>
         <enumeration value="backTransparency"/>
         <enumeration value="backUrl"/>
         <enumeration value="baseColor"/>
         <enumeration value="baseTextureMapping"/>
         <enumeration value="beamWidth"/>
         <enumeration value="bottom"/>
         <enumeration value="bottomTexture"/>
         <enumeration value="bottomUrl"/>
         <enumeration value="bounce"/>
         <enumeration value="boundaryOpacity"/>
         <enumeration value="borderColor"/>
         <enumeration value="borderWidth"/>
         <enumeration value="boundaryModeS"/>
         <enumeration value="boundaryModeT"/>
         <enumeration value="boundaryModeR"/>
         <enumeration value="buffer"/>
         <enumeration value="bufferDuration"/>
         <enumeration value="center"/>
         <enumeration value="castShadow"/>
         <enumeration value="centerOfMass"/>
         <enumeration value="centerOfRotation"/>
         <enumeration value="class"/>
         <enumeration value="clipBoundary"/>
         <enumeration value="channels"/>
         <enumeration value="channelCountMode"/>
         <enumeration value="channelInterpretation"/>
         <enumeration value="channelSelection"/>
         <enumeration value="channelsEnabled"/>
         <enumeration value="gain"/>
         <enumeration value="collisionType"/>
         <enumeration value="color"/>
         <enumeration value="colorSteps"/>
         <enumeration value="coneInnerAngle"/>
         <enumeration value="coneOuterAngle"/>
         <enumeration value="coneOuterGain"/>
         <enumeration value="contactNormal"/>
         <enumeration value="contourStepSize"/>
         <enumeration value="controlPoint"/>
         <enumeration value="constantForceMix"/>
         <enumeration value="contactSurfaceThickness"/>
         <enumeration value="coolColor"/>
         <enumeration value="createParticles"/>
         <enumeration value="cryptoSystem"/>
         <enumeration value="cryptoKeyID"/>
         <enumeration value="cutOffAngle"/>
         <enumeration value="cycleInterval"/>
         <enumeration value="data"/>
         <enumeration value="dataLength"/>
         <enumeration value="deadReckoning"/>
         <enumeration value="delayTime"/>
         <enumeration value="deletionAllowed"/>
         <enumeration value="depth"/>
         <enumeration value="description"/>
         <enumeration value="desiredAngularVelocity1"/>
         <enumeration value="desiredAngularVelocity2"/>
         <enumeration value="detonationLocation"/>
         <enumeration value="detonationRelativeLocation"/>
         <enumeration value="detonationResult"/>
         <enumeration value="detune"/>
         <enumeration value="diffuse"/>
         <enumeration value="diffuseColor"/>
         <enumeration value="diffuseTextureMapping"/>
         <enumeration value="dimensions"/>
         <enumeration value="direction"/>
         <enumeration value="disableAngularSpeed"/>
         <enumeration value="disableLinearSpeed"/>
         <enumeration value="disableTime"/>
         <enumeration value="diskAngle"/>
         <enumeration value="displacements"/>
         <enumeration value="bboxDisplay"/>
         <enumeration value="detune"/>
         <enumeration value="displayed"/>
         <enumeration value="distanceModel"/>
         <enumeration value="easeInEaseOut"/>
         <enumeration value="edgeColor"/>
         <enumeration value="emissiveColor"/>
         <enumeration value="emissiveTextureMapping"/>
         <enumeration value="enabled"/>
         <enumeration value="enabledAxes"/>
         <enumeration value="dopplerEnabled"/>
         <enumeration value="enableHRTF"/>
         <enumeration value="encodingScheme"/>
         <enumeration value="endFrame"/>
         <enumeration value="entityID"/>
         <enumeration value="entityKind"/>
         <enumeration value="entityDomain"/>
         <enumeration value="entityCountry"/>
         <enumeration value="entityCategory"/>
         <enumeration value="entitySubcategory"/>
         <enumeration value="entitySpecific"/>
         <enumeration value="entityExtra"/>
         <enumeration value="errorCorrection"/>
         <enumeration value="eventApplicationID"/>
         <enumeration value="eventEntityID"/>
         <enumeration value="eventNumber"/>
         <enumeration value="eventSiteID"/>
         <enumeration value="family"/>
         <enumeration value="fanCount"/>
         <enumeration value="farDistance"/>
         <enumeration value="fftSize"/>
         <enumeration value="fieldOfView"/>
         <enumeration value="filled"/>
         <enumeration value="finiteRotationAxis"/>
         <enumeration value="fired1"/>
         <enumeration value="fired2"/>
         <enumeration value="fireMissionIndex"/>
         <enumeration value="firingRange"/>
         <enumeration value="firingRate"/>
         <enumeration value="fixed"/>
         <enumeration value="fogType"/>
         <enumeration value="force"/>
         <enumeration value="forceID"/>
         <enumeration value="forceOutput"/>
         <enumeration value="forces"/>
         <enumeration value="frameDuration"/>
         <enumeration value="frameIncrement"/>
         <enumeration value="frameIndex"/>
         <enumeration value="frequency"/>
         <enumeration value="frequencyBinCount"/>
         <enumeration value="frictionCoefficients"/>
         <enumeration value="frictionDirection"/>
         <enumeration value="frontTexture"/>
         <enumeration value="frontUrl"/>
         <enumeration value="function"/>
         <enumeration value="fuse"/>
         <enumeration value="gain"/>
         <enumeration value="geoCenter"/>
         <enumeration value="geoCoords"/>
         <enumeration value="global"/>
         <enumeration value="gradientThreshold"/>
         <enumeration value="gravity"/>
         <enumeration value="groundAngle"/>
         <enumeration value="groundColor"/>
         <enumeration value="gustiness"/>
         <enumeration value="hatchColor"/>
         <enumeration value="hatched"/>
         <enumeration value="hatchStyle"/>
         <enumeration value="headlight"/>
         <enumeration value="horizontal"/>
         <enumeration value="id"/>
         <enumeration value="image"/>
         <enumeration value="inertia"/>
         <enumeration value="info"/>
         <enumeration value="inputSource"/>
         <enumeration value="integerKey"/>
         <enumeration value="intensity"/>
         <enumeration value="intensityThreshold"/>
         <enumeration value="interauralDistance"/>
         <enumeration value="iterations"/>
         <enumeration value="jointBindingPositions"/>
         <enumeration value="jointBindingRotations"/>
         <enumeration value="jointBindingScales"/>
         <enumeration value="joints"/>
         <enumeration value="justify"/>
         <enumeration value="key"/>
         <enumeration value="knee"/>
         <enumeration value="keyVelocity"/>
         <enumeration value="jump"/>
         <enumeration value="keyValue"/>
         <enumeration value="language"/>
         <enumeration value="leftTexture"/>
         <enumeration value="leftToRight"/>
         <enumeration value="leftUrl"/>
         <enumeration value="length"/>
         <enumeration value="lengthOfModulationParameters"/>
         <enumeration value="lifetimeVariation"/>
         <enumeration value="lighting"/>
         <enumeration value="limitOrientation"/>
         <enumeration value="linearAcceleration"/>
         <enumeration value="linearDampingFactor"/>
         <enumeration value="linearVelocity"/>
         <enumeration value="linetype"/>
         <enumeration value="linewidthScaleFactor"/>
         <enumeration value="llimit"/>
         <enumeration value="loa"/>
         <enumeration value="load"/>
         <enumeration value="location"/>
         <enumeration value="loop"/>
         <enumeration value="loopEnd"/>
         <enumeration value="loopStart"/>
         <enumeration value="mapping"/>
         <enumeration value="marking"/>
         <enumeration value="mass"/>
         <enumeration value="magnificationFilter"/>
         <enumeration value="matchCriterion"/>
         <enumeration value="matrix"/>
         <enumeration value="maxAngle"/>
         <enumeration value="maxAngle1"/>
         <enumeration value="maxBack"/>
         <enumeration value="maxChannelCount"/>
         <enumeration value="maxCorrectionSpeed"/>
         <enumeration value="maxDecibels"/>
         <enumeration value="maxDelayTime"/>
         <enumeration value="maxDistance"/>
         <enumeration value="maxExtent"/>
         <enumeration value="maxFront"/>
         <enumeration value="maxParticles"/>
         <enumeration value="maxPosition"/>
         <enumeration value="maxSeparation"/>
         <enumeration value="maxTorque1"/>
         <enumeration value="maxTorque2"/>
         <enumeration value="mediaDeviceID"/>
         <enumeration value="metallic"/>
         <enumeration value="metallicRoughnessTextureMapping"/>
         <enumeration value="minAngle"/>
         <enumeration value="minAngle1"/>
         <enumeration value="minBack"/>
         <enumeration value="minBounceSpeed"/>
         <enumeration value="minDecibels"/>
         <enumeration value="minFront"/>
         <enumeration value="minificationFilter"/>
         <enumeration value="minPosition"/>
         <enumeration value="minSeparation"/>
         <enumeration value="mode"/>
         <enumeration value="modulationTypeSpreadSpectrum"/>
         <enumeration value="modulationTypeMajor"/>
         <enumeration value="modulationTypeDetail"/>
         <enumeration value="modulationTypeSystem"/>
         <enumeration value="momentsOfInertia"/>
         <enumeration value="motor1Axis"/>
         <enumeration value="motor2Axis"/>
         <enumeration value="motor3Axis"/>
         <enumeration value="multicastRelayHost"/>
         <enumeration value="multicastRelayPort"/>
         <enumeration value="munitionEndPoint"/>
         <enumeration value="munitionStartPoint"/>
         <enumeration value="munitionApplicationID"/>
         <enumeration value="munitionEntityID"/>
         <enumeration value="munitionSiteID"/>
         <enumeration value="munitionQuantity"/>
         <enumeration value="name"/>
         <enumeration value="nearDistance"/>
         <enumeration value="networkMode"/>
         <enumeration value="normalScale"/>
         <enumeration value="normalTextureMapping"/>
         <enumeration value="numberOfChannels"/>
         <enumeration value="normalize"/>
         <enumeration value="normalizeVelocity"/>
         <enumeration value="objectType"/>
         <enumeration value="occlusionStrength"/>
         <enumeration value="occlusionTextureMapping"/>
         <enumeration value="offset"/>
         <enumeration value="offsetUnits"/>
         <enumeration value="on"/>
         <enumeration value="opacityFactor"/>
         <enumeration value="optionsImag"/>
         <enumeration value="optionsReal"/>
         <enumeration value="orientation"/>
         <enumeration value="orthogonalColor"/>
         <enumeration value="oversample"/>
         <enumeration value="parallelColor"/>
         <enumeration value="parameter"/>
         <enumeration value="particleLifetime"/>
         <enumeration value="particleSize"/>
         <enumeration value="pauseTime"/>
         <enumeration value="pickable"/>
         <enumeration value="pitch"/>
         <enumeration value="plane"/>
         <enumeration value="playbackRate"/>
         <enumeration value="point"/>
         <enumeration value="pointSize"/>
         <enumeration value="pointSizeScaleFactor"/>
         <enumeration value="pointSizeMinValue"/>
         <enumeration value="pointSizeMaxValue"/>
         <enumeration value="port"/>
         <enumeration value="position"/>
         <enumeration value="power"/>
         <enumeration value="preferAccuracy"/>
         <enumeration value="priority"/>
         <enumeration value="qualityFactor"/>
         <enumeration value="radioID"/>
         <enumeration value="radioEntityTypeKind"/>
         <enumeration value="radioEntityTypeDomain"/>
         <enumeration value="radioEntityTypeCountry"/>
         <enumeration value="radioEntityTypeCategory"/>
         <enumeration value="radioEntityTypeNomenclature"/>
         <enumeration value="radioEntityTypeNomenclatureVersion"/>
         <enumeration value="ratio"/>
         <enumeration value="readInterval"/>
         <enumeration value="receivedPower"/>
         <enumeration value="receiverState"/>
         <enumeration value="reference"/>
         <enumeration value="referenceDistance"/>
         <enumeration value="refraction"/>
         <enumeration value="relativeAntennaLocation"/>
         <enumeration value="release"/>
         <enumeration value="retainedOpacity"/>
         <enumeration value="retainUserOffsets"/>
         <enumeration value="resumeTime"/>
         <enumeration value="rightTexture"/>
         <enumeration value="rightUrl"/>
         <enumeration value="rolloffFactor"/>
         <enumeration value="rotation"/>
         <enumeration value="roughness"/>
         <enumeration value="rtpHeaderExpected"/>
         <enumeration value="sampleRate"/>
         <enumeration value="samples"/>
         <enumeration value="scale"/>
         <enumeration value="scaleMode"/>
         <enumeration value="scaleOrientation"/>
         <enumeration value="segmentEnabled"/>
         <enumeration value="separateBackColor"/>
         <enumeration value="shininess"/>
         <enumeration value="shadowIntensity"/>
         <enumeration value="shadows"/>
         <enumeration value="side"/>
         <enumeration value="shininessTextureMapping"/>
         <enumeration value="silhouetteBoundaryOpacity"/>
         <enumeration value="silhouetteRetainedOpacity"/>
         <enumeration value="silhouetteSharpness"/>
         <enumeration value="siteID"/>
         <enumeration value="size"/>
         <enumeration value="sizeUnits"/>
         <enumeration value="skeletalConfiguration"/>
         <enumeration value="skinCoordIndex"/>
         <enumeration value="skinCoordWeight"/>
         <enumeration value="skyColor"/>
         <enumeration value="skyAngle"/>
         <enumeration value="sliderForce"/>
         <enumeration value="slipCoefficients"/>
         <enumeration value="slipFactors"/>
         <enumeration value="smoothingTimeConstant"/>
         <enumeration value="softnessConstantForceMix"/>
         <enumeration value="softnessErrorCorrection"/>
         <enumeration value="solid"/>
         <enumeration value="source"/>
         <enumeration value="spacing"/>
         <enumeration value="specular"/>
         <enumeration value="specularColor"/>
         <enumeration value="specularTextureMapping"/>
         <enumeration value="speed"/>
         <enumeration value="startFrame"/>
         <enumeration value="startTime"/>
         <enumeration value="stiffness"/>
         <enumeration value="stopBounce"/>
         <enumeration value="stopErrorCorrection"/>
         <enumeration value="stop1ConstantForceMix"/>
         <enumeration value="stop1Bounce"/>
         <enumeration value="stop2Bounce"/>
         <enumeration value="stop3Bounce"/>
         <enumeration value="stop1ErrorCorrection"/>
         <enumeration value="stop2ErrorCorrection"/>
         <enumeration value="stop3ErrorCorrection"/>
         <enumeration value="stopTime"/>
         <enumeration value="streamIdentifier"/>
         <enumeration value="string"/>
         <enumeration value="stripCount"/>
         <enumeration value="style"/>
         <enumeration value="summary"/>
         <enumeration value="surfaceArea"/>
         <enumeration value="surfaceSpeed"/>
         <enumeration value="surfaceTolerance"/>
         <enumeration value="surfaceValues"/>
         <enumeration value="suspensionErrorCorrection"/>
         <enumeration value="suspensionForce"/>
         <enumeration value="tailTime"/>
         <enumeration value="tau"/>
         <enumeration value="tdlType"/>
         <enumeration value="tessellation"/>
         <enumeration value="tessellationScale"/>
         <enumeration value="textureCompression"/>
         <enumeration value="texturePriority"/>
         <enumeration value="threshold"/>
         <enumeration value="timeOut"/>
         <enumeration value="title"/>
         <enumeration value="toggle"/>
         <enumeration value="tolerance"/>
         <enumeration value="top"/>
         <enumeration value="topTexture"/>
         <enumeration value="topToBottom"/>
         <enumeration value="topUrl"/>
         <enumeration value="torques"/>
         <enumeration value="totalFrameCount"/>
         <enumeration value="trackCurrentView"/>
         <enumeration value="transitionTime"/>
         <enumeration value="transitionType"/>
         <enumeration value="translation"/>
         <enumeration value="transmitFrequencyBandwidth"/>
         <enumeration value="transmitState"/>
         <enumeration value="transmitterApplicationID"/>
         <enumeration value="transmitterEntityID"/>
         <enumeration value="transmitterRadioID"/>
         <enumeration value="transmitterSiteID"/>
         <enumeration value="transparency"/>
         <enumeration value="turbulence"/>
         <enumeration value="type"/>
         <enumeration value="ulimit"/>
         <enumeration value="upVector"/>
         <enumeration value="update"/>
         <enumeration value="url"/>
         <enumeration value="useFiniteRotation"/>
         <enumeration value="useGeometry"/>
         <enumeration value="useGlobalGravity"/>
         <enumeration value="uTessellation"/>
         <enumeration value="variation"/>
         <enumeration value="value"/>
         <enumeration value="values"/>
         <enumeration value="version"/>
         <enumeration value="vector"/>
         <enumeration value="vertexCount"/>
         <enumeration value="vertices"/>
         <enumeration value="viewAll"/>
         <enumeration value="visibilityLimit"/>
         <enumeration value="visibilityRange"/>
         <enumeration value="visible"/>
         <enumeration value="vTessellation"/>
         <enumeration value="warhead"/>
         <enumeration value="warmColor"/>
         <enumeration value="weight"/>
         <enumeration value="weightConstant1"/>
         <enumeration value="weightConstant2"/>
         <enumeration value="weightFunction1"/>
         <enumeration value="weightFunction2"/>
         <enumeration value="whichChoice"/>
         <enumeration value="whichGeometry"/>
         <enumeration value="writeInterval"/>
         <enumeration value="yScale"/>
      </SimpleType>
      <SimpleType name="intersectionTypeValues"
                   baseType="xs:NMTOKEN"
                   appinfo="intersectionTypeValues are supported enumeration values for X3DPickSensorNode type intersectionType field. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html#X3DPickSensorNode">
         <enumeration value="BOUNDS"
                       appinfo="TODO undefined in X3D specification"
                       documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
         <enumeration value="GEOMETRY"
                       appinfo="TODO undefined in X3D specification"
                       documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
      </SimpleType>
      <SimpleType name="justifyChoices"
                   baseType="MFString"
                   appinfo="justifyChoices are strictly allowed enumeration values for justify field in FontStyle and ScreenFontStyle nodes determining major and minor axis alignment (typically horizontal and vertical) of text layout. Note that intermediate commas and extraneous whitespace are disallowed by these strictly defined enumeration values. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/text.html#Directionandjustification">
         <enumeration value="&#34;MIDDLE&#34;"/>
         <enumeration value="&#34;MIDDLE&#34; &#34;BEGIN&#34;"/>
         <enumeration value="&#34;MIDDLE&#34; &#34;END&#34;"/>
         <enumeration value="&#34;MIDDLE&#34; &#34;FIRST&#34;"/>
         <enumeration value="&#34;MIDDLE&#34; &#34;MIDDLE&#34;"/>
         <enumeration value="&#34;BEGIN&#34;"/>
         <enumeration value="&#34;BEGIN&#34; &#34;BEGIN&#34;"/>
         <enumeration value="&#34;BEGIN&#34; &#34;END&#34;"/>
         <enumeration value="&#34;BEGIN&#34; &#34;FIRST&#34;"/>
         <enumeration value="&#34;BEGIN&#34; &#34;MIDDLE&#34;"/>
         <enumeration value="&#34;END&#34;"/>
         <enumeration value="&#34;END&#34; &#34;BEGIN&#34;"/>
         <enumeration value="&#34;END&#34; &#34;END&#34;"/>
         <enumeration value="&#34;END&#34; &#34;FIRST&#34;"/>
         <enumeration value="&#34;END&#34; &#34;MIDDLE&#34;"/>
         <enumeration value="&#34;FIRST&#34;"/>
         <enumeration value="&#34;FIRST&#34; &#34;BEGIN&#34;"/>
         <enumeration value="&#34;FIRST&#34; &#34;END&#34;"/>
         <enumeration value="&#34;FIRST&#34; &#34;FIRST&#34;"/>
         <enumeration value="&#34;FIRST&#34; &#34;MIDDLE&#34;"/>
      </SimpleType>
      <SimpleType name="layoutAlignChoices"
                   baseType="MFString"
                   appinfo="Permitted combinations of horizontal and vertical values for the align field in the Layout node. Note that intermediate commas and extraneous whitespace are disallowed by these strictly defined enumeration values. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layout.html#Layout">
         <enumeration value="&#34;LEFT&#34; &#34;BOTTOM&#34;"/>
         <enumeration value="&#34;LEFT&#34; &#34;CENTER&#34;"/>
         <enumeration value="&#34;LEFT&#34; &#34;TOP&#34;"/>
         <enumeration value="&#34;CENTER&#34; &#34;BOTTOM&#34;"/>
         <enumeration value="&#34;CENTER&#34; &#34;CENTER&#34;"/>
         <enumeration value="&#34;CENTER&#34; &#34;TOP&#34;"/>
         <enumeration value="&#34;RIGHT&#34; &#34;BOTTOM&#34;"/>
         <enumeration value="&#34;RIGHT&#34; &#34;CENTER&#34;"/>
         <enumeration value="&#34;RIGHT&#34; &#34;TOP&#34;"/>
      </SimpleType>
      <SimpleType name="layoutScaleModeChoices"
                   baseType="MFString"
                   appinfo="Permitted combinations of horizontal and vertical values for the scaleMode field in the Layout node. Note that intermediate commas and extraneous whitespace are disallowed by these strictly defined enumeration values. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layout.html#Layout">
         <enumeration value="&#34;NONE&#34; &#34;NONE&#34;"/>
         <enumeration value="&#34;NONE&#34; &#34;FRACTION&#34;"/>
         <enumeration value="&#34;NONE&#34; &#34;STRETCH&#34;"/>
         <enumeration value="&#34;NONE&#34; &#34;PIXEL&#34;"/>
         <enumeration value="&#34;FRACTION&#34; &#34;NONE&#34;"/>
         <enumeration value="&#34;FRACTION&#34; &#34;FRACTION&#34;"/>
         <enumeration value="&#34;FRACTION&#34; &#34;STRETCH&#34;"/>
         <enumeration value="&#34;FRACTION&#34; &#34;PIXEL&#34;"/>
         <enumeration value="&#34;STRETCH&#34; &#34;NONE&#34;"/>
         <enumeration value="&#34;STRETCH&#34; &#34;FRACTION&#34;"/>
         <enumeration value="&#34;STRETCH&#34; &#34;STRETCH&#34;"/>
         <enumeration value="&#34;STRETCH&#34; &#34;PIXEL&#34;"/>
         <enumeration value="&#34;PIXEL&#34; &#34;NONE&#34;"/>
         <enumeration value="&#34;PIXEL&#34; &#34;FRACTION&#34;"/>
         <enumeration value="&#34;PIXEL&#34; &#34;STRETCH&#34;"/>
         <enumeration value="&#34;PIXEL&#34; &#34;PIXEL&#34;"/>
      </SimpleType>
      <SimpleType name="layoutUnitsChoices"
                   baseType="MFString"
                   appinfo="Permitted combinations of horizontal and vertical values for the offsetUnits field in the Layout node. Note that intermediate commas and extraneous whitespace are disallowed by these strictly defined enumeration values. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layout.html#Layout">
         <enumeration value="&#34;WORLD&#34; &#34;WORLD&#34;"/>
         <enumeration value="&#34;WORLD&#34; &#34;FRACTION&#34;"/>
         <enumeration value="&#34;WORLD&#34; &#34;PIXEL&#34;"/>
         <enumeration value="&#34;FRACTION&#34; &#34;WORLD&#34;"/>
         <enumeration value="&#34;FRACTION&#34; &#34;FRACTION&#34;"/>
         <enumeration value="&#34;FRACTION&#34; &#34;PIXEL&#34;"/>
         <enumeration value="&#34;PIXEL&#34; &#34;WORLD&#34;"/>
         <enumeration value="&#34;PIXEL&#34; &#34;FRACTION&#34;"/>
         <enumeration value="&#34;PIXEL&#34; &#34;PIXEL&#34;"/>
      </SimpleType>
      <SimpleType name="lineTypeValues"
                   baseType="SFInt32"
                   appinfo="linetype selects a hatch pattern from International Register of Graphical Items."
                   documentation="https://isotc.iso.org/livelink/livelink/fetch/-8916524/8916549/8916590/6208440/class_pages/linetype.html">
         <enumeration value="1" alias="SOLID" appinfo="Solid"/>
         <enumeration value="2" alias="DASHED" appinfo="Dashed"/>
         <enumeration value="3" alias="DOTTED" appinfo="Dotted"/>
         <enumeration value="4" alias="DASHED_DOTTED" appinfo="Dashed-dotted"/>
         <enumeration value="5" alias="DASHED_DOT_DOT" appinfo="Dash-dot-dot"/>
         <enumeration value="6" alias="SINGLE_ARROW" appinfo="(single arrow)"/>
         <enumeration value="7" alias="SINGLE_DOT" appinfo="(single dot)"/>
         <enumeration value="8" alias="DOUBLE_ARROW" appinfo="(double arrow)"/>
         <enumeration value="9" alias="STITCH_LINE" appinfo="(stitch line)"/>
         <enumeration value="10" alias="CHAIN_LINE" appinfo="(chain line)"/>
         <enumeration value="11" alias="CENTER_LINE" appinfo="(center line)"/>
         <enumeration value="12" alias="HIDDEN_LINE" appinfo="(hidden line)"/>
         <enumeration value="13" alias="PHANTOM_LINE" appinfo="(phantom line)"/>
         <enumeration value="14"
                       alias="BREAK_LINE_STYLE_1"
                       appinfo="(break line - style 1)"/>
         <enumeration value="15"
                       alias="BREAK_LINE_STYLE_2"
                       appinfo="(break line - style 2)"/>
         <enumeration value="16"
                       alias="USER_SPECIFIED_DASH_PATTERN"
                       appinfo="User-specified dash pattern"/>
      </SimpleType>
      <SimpleType name="loaType"
                   baseType="SFInt32"
                   appinfo="Level Of Articulation 0..4 indicates complexity and detail of joints for given humanoid skeletal hierarchy. Note that value of -1 indicates that no LOA conformance is provided."
                   documentation="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#LevelsOfArticulation"/>
      <SimpleType name="metaDirectionChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="metaDirectionChoices are strictly allowed enumeration values for meta element direction field. This list is bounded, no additional values are allowed."
                   documentation="http://www.w3.org/TR/html4/struct/dirlang.html#adef-dir">
         <enumeration value="rtl" appinfo="right-to-left"/>
         <enumeration value="ltr" appinfo="left-to-right"/>
      </SimpleType>
      <SimpleType name="metaNameValues"
                   baseType="xs:NMTOKEN"
                   appinfo="metaNameValues are supported enumeration values for meta element name field. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#metaTags">
         <enumeration value="accessRights"
                       appinfo="permission required to access resource or security status"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-accessRights"/>
         <enumeration value="author"
                       appinfo="name of individual author"
                       documentation="https://www.w3.org/TR/html5/document-metadata.html#author"/>
         <enumeration value="contributor"
                       appinfo="name of individual contributing to this resource"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-contributor"/>
         <enumeration value="created"
                       appinfo="date of initial version"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-created"/>
         <enumeration value="creator"
                       appinfo="name of original author"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-creator"/>
         <enumeration value="description"
                       appinfo="summary overview describing this resource"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-description"/>
         <enumeration value="disclaimer"
                       appinfo="statement of denial or disavowal regarding potential claims or responsiblity"/>
         <enumeration value="drawing"
                       appinfo="name or reference link to a supporting drawing or sketch file"/>
         <enumeration value="error"
                       appinfo="information about an error (or known problem) that can prevent proper operation"/>
         <enumeration value="generator"
                       appinfo="authoring tool or translation tool"
                       documentation="https://www.w3.org/TR/html5/document-metadata.html#generator"/>
         <enumeration value="hint" appinfo="user hint about resource features or operation"/>
         <enumeration value="identifier"
                       appinfo="url address or unique Uniform Resource Identifier (URI) for resource"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-identifier"/>
         <enumeration value="Image"
                       appinfo="name or reference link to supporting image file"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#dcmitype-Image"/>
         <enumeration value="info" appinfo="additional info of interest"/>
         <enumeration value="information" appinfo="additional information of interest"/>
         <enumeration value="isVersionOf"
                       appinfo="Related resource of which the described resource is a version, edition, or adaptation."
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-isVersionOf"/>
         <enumeration value="keywords"
                       appinfo="comma-separated tokens, each of which is a keyword of interest"
                       documentation="https://www.w3.org/TR/html5/document-metadata.html#keywords"/>
         <enumeration value="license"
                       appinfo="content or software license"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-license"/>
         <enumeration value="mediator"
                       appinfo="entity that mediates access to resource and for whom resource is intended or useful"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-mediator"/>
         <enumeration value="modified"
                       appinfo="date of modified version"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-modified"/>
         <enumeration value="movie"
                       appinfo="name or reference link to supporting movie file (note that Dublin Core term is MovingImage)"/>
         <enumeration value="MovingImage"
                       appinfo="name or reference link to supporting movie"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#dcmitype-MovingImage"/>
         <enumeration value="original"
                       appinfo="name or reference link to original file or resource"/>
         <enumeration value="photo"
                       appinfo="name or reference link to supporting photo file (note that Dublin Core term is Image)"/>
         <enumeration value="photograph"
                       appinfo="name or reference link to supporting photograph file (note that Dublin Core term is Image)"/>
         <enumeration value="publisher"
                       appinfo="entity responsible for making the resource available"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-publisher"/>
         <enumeration value="reference"
                       appinfo="name or reference link to supporting reference"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-references"/>
         <enumeration value="requires"
                       appinfo="prerequisites for operation or viewing"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-requires"/>
         <enumeration value="rights"
                       appinfo="intellectual property rights (IPR)"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-rights"/>
         <enumeration value="robots"
                       appinfo="search engine and web-spider guidance value: noindex to block page indexing, nofollow to block following links"
                       documentation="https://developers.google.com/search/reference/robots_meta_tag"/>
         <enumeration value="Sound"
                       appinfo="name or reference link to supporting sound file"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#dcmitype-Sound"/>
         <enumeration value="source"
                       appinfo="related resource from which the described resource is derived"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-source"/>
         <enumeration value="specificationSection"
                       appinfo="title of relevant specification section"/>
         <enumeration value="specificationUrl"
                       appinfo="url for relevant specification section"
                       documentation="https://www.web3d.org/standards"/>
         <enumeration value="subject"
                       appinfo="search-index subject keywords, key phrases, or classification codes"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-subject"/>
         <enumeration value="Text"
                       appinfo="resource consisting primarily of words for reading"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#dcmitype-Text"/>
         <enumeration value="title"
                       appinfo="file name for this resource"
                       documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-title"/>
         <enumeration value="TODO"
                       appinfo="action item &#34;to do&#34; that still needs to be performed"/>
         <enumeration value="translator"
                       appinfo="name of person performing translation from another format or language"/>
         <enumeration value="translated"
                       appinfo="date of translation from another format or language"/>
         <enumeration value="version" appinfo="current version number or ID of this resource"/>
         <enumeration value="warning"
                       appinfo="warning information about a known problem that impedes proper operation"/>
      </SimpleType>
      <SimpleType name="multiTextureFunctionValues"
                   baseType="MFString"
                   appinfo="multiTextureFunctionValues are supported enumeration values for the MultiTexture node function attribute, one per each texture. An empty string indicates no function is applied. Multiple optional values, but cannot be extended."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#t-ValuesForFunctionField">
         <enumeration value="&#34;COMPLEMENT&#34;" appinfo="Invert argument x as (1 - x)"/>
         <enumeration value="&#34;ALPHAREPLICATE&#34;"
                       appinfo="Replicate alpha information to all color channels before operation completes."/>
         <enumeration value="&#34;&#34;"
                       appinfo="No function is applied - empty SFString is allowed value within MFString array"/>
      </SimpleType>
      <SimpleType name="multiTextureModeValues"
                   baseType="MFString"
                   appinfo="multiTextureModeValues are supported enumeration values for the MultiTexture mode attribute, one per each texture. Multiple optional values, but cannot be extended."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#t-MultitextureModes">
         <enumeration value="&#34;ADD&#34;"/>
         <enumeration value="&#34;ADDSIGNED&#34;"/>
         <enumeration value="&#34;ADDSIGNED2X&#34;"/>
         <enumeration value="&#34;ADDSMOOTH&#34;"/>
         <enumeration value="&#34;BLENDCURRENTALPHA&#34;"/>
         <enumeration value="&#34;BLENDDIFFUSEALPHA&#34;"/>
         <enumeration value="&#34;BLENDFACTORALPHA&#34;"/>
         <enumeration value="&#34;BLENDTEXTUREALPHA&#34;"/>
         <enumeration value="&#34;DOTPRODUCT3&#34;"/>
         <enumeration value="&#34;MODULATE&#34;"/>
         <enumeration value="&#34;MODULATE2X&#34;"/>
         <enumeration value="&#34;MODULATE4X&#34;"/>
         <enumeration value="&#34;MODULATEALPHA_ADDCOLOR&#34;"/>
         <enumeration value="&#34;MODULATEINVALPHA_ADDCOLOR&#34;"/>
         <enumeration value="&#34;MODULATEINVCOLOR_ADDALPHA&#34;"/>
         <enumeration value="&#34;OFF&#34;"/>
         <enumeration value="&#34;REPLACE&#34;"/>
         <enumeration value="&#34;SELECTARG1&#34;"/>
         <enumeration value="&#34;SELECTARG2&#34;"/>
         <enumeration value="&#34;SUBTRACT&#34;"/>
      </SimpleType>
      <SimpleType name="multiTextureSourceValues"
                   baseType="MFString"
                   appinfo="multiTextureSourceValues are supported enumeration values for the MultiTexture node source attribute, one per each texture. Multiple optional values, but cannot be extended."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#t-ValuesForSourceField">
         <enumeration value="&#34;DIFFUSE&#34;"/>
         <enumeration value="&#34;FACTOR&#34;"/>
         <enumeration value="&#34;SPECULAR&#34;"/>
         <enumeration value="&#34;&#34;"/>
      </SimpleType>
      <SimpleType name="navigationTransitionTypeValues"
                   baseType="MFString"
                   appinfo="navigationTransitionTypeValues are supported enumeration values for the transitionType field in the NavigationInfo node. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html#NavigationInfo">
         <enumeration value="&#34;TELEPORT&#34;" appinfo="immediate transition"/>
         <enumeration value="&#34;LINEAR&#34;"
                       appinfo="transition may proceed directly through intervening objects"/>
         <enumeration value="&#34;ANIMATE&#34;" appinfo="rowser-specific transition"/>
      </SimpleType>
      <SimpleType name="navigationTypeValues"
                   baseType="MFString"
                   appinfo="navigationTypeValues are supported enumeration values for the type field in the NavigationInfo node. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html#NavigationInfo">
         <enumeration value="&#34;ANY&#34;" appinfo="browser can offer any type for user to choose"/>
         <enumeration value="&#34;WALK&#34;"
                       appinfo="free navigation, avatar remains on ground, collision detection"/>
         <enumeration value="&#34;EXAMINE&#34;"
                       appinfo="view an individual object by rotating view about center"/>
         <enumeration value="&#34;FLY&#34;" appinfo="free navigation, collision detection"/>
         <enumeration value="&#34;LOOKAT&#34;" appinfo="navigate to particular object"/>
         <enumeration value="&#34;NONE&#34;" appinfo="disables all navigation interfaces"/>
         <enumeration value="&#34;EXPLORE&#34;"
                       appinfo="consistent keystroke navigation for both geospatial and Cartesian modes"/>
      </SimpleType>
      <SimpleType name="networkModeChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="networkModeChoices are strictly allowed enumeration values for DIS field networkMode. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/dis.html#CommonDISfields">
         <enumeration value="standAlone"
                       appinfo="ignore network but still respond to events in local scene"/>
         <enumeration value="networkReader"
                       appinfo="listen to network and read PDU packets at readInterval, act as remotely linked copy of entity"/>
         <enumeration value="networkWriter"
                       appinfo="send PDU packets to network at writeInterval, act as master entity"/>
      </SimpleType>
      <SimpleType name="outputOnlyAccessTypes"
                   baseType="xs:NMTOKEN"
                   appinfo="Table of fields having accessType outputOnly. These are not otherwise listed in element definitions since they cannot be specified in an .x3d file."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#FieldSemantics">
         <enumeration value="actionKeyPress"/>
         <enumeration value="actionKeyRelease"/>
         <enumeration value="altKey"/>
         <enumeration value="angle"/>
         <enumeration value="angleRate"/>
         <enumeration value="articulationParameterValue0_changed"/>
         <enumeration value="articulationParameterValue1_changed"/>
         <enumeration value="articulationParameterValue2_changed"/>
         <enumeration value="articulationParameterValue3_changed"/>
         <enumeration value="articulationParameterValue4_changed"/>
         <enumeration value="articulationParameterValue5_changed"/>
         <enumeration value="articulationParameterValue6_changed"/>
         <enumeration value="articulationParameterValue7_changed"/>
         <enumeration value="bindTime"/>
         <enumeration value="body1AnchorPoint"/>
         <enumeration value="body1Axis"/>
         <enumeration value="body2AnchorPoint"/>
         <enumeration value="body2Axis"/>
         <enumeration value="centerOfRotation_changed"/>
         <enumeration value="channelCount"/>
         <enumeration value="collideTime"/>
         <enumeration value="controlKey"/>
         <enumeration value="cycleTime"/>
         <enumeration value="detonateTime"/>
         <enumeration value="duration_changed"/>
         <enumeration value="elapsedTime"/>
         <enumeration value="enteredText"/>
         <enumeration value="enterTime"/>
         <enumeration value="exitTime"/>
         <enumeration value="finalText"/>
         <enumeration value="firedTime"/>
         <enumeration value="fraction_changed"/>
         <enumeration value="geovalue_changed"/>
         <enumeration value="hinge1Angle"/>
         <enumeration value="hinge1AngleRate"/>
         <enumeration value="hinge2Angle"/>
         <enumeration value="hinge2AngleRate"/>
         <enumeration value="hitGeoCoord_changed"/>
         <enumeration value="hitNormal_changed"/>
         <enumeration value="hitPoint_changed"/>
         <enumeration value="hitTexCoord_changed"/>
         <enumeration value="inputFalse"/>
         <enumeration value="inputNegate"/>
         <enumeration value="inputTrue"/>
         <enumeration value="isActive"/>
         <enumeration value="isBound"/>
         <enumeration value="isCollided"/>
         <enumeration value="isDetonated"/>
         <enumeration value="isLoaded"/>
         <enumeration value="isOver"/>
         <enumeration value="isPaused"/>
         <enumeration value="isNetworkReader"/>
         <enumeration value="isNetworkWriter"/>
         <enumeration value="isRtpHeaderHeard"/>
         <enumeration value="isSelected"/>
         <enumeration value="isStandAlone"/>
         <enumeration value="isValid"/>
         <enumeration value="keyPress"/>
         <enumeration value="keyRelease"/>
         <enumeration value="level_changed"/>
         <enumeration value="lineBounds"/>
         <enumeration value="loadTime"/>
         <enumeration value="modifiedFraction_changed"/>
         <enumeration value="motor1Angle"/>
         <enumeration value="motor1AngleRate"/>
         <enumeration value="motor2Angle"/>
         <enumeration value="motor2AngleRate"/>
         <enumeration value="motor3Angle"/>
         <enumeration value="motor3AngleRate"/>
         <enumeration value="next"/>
         <enumeration value="normal_changed"/>
         <enumeration value="orientation_changed"/>
         <enumeration value="origin"/>
         <enumeration value="pickedGeometry"/>
         <enumeration value="pickedNormal"/>
         <enumeration value="pickedPoint"/>
         <enumeration value="pickedTextureCoordinate"/>
         <enumeration value="position_changed"/>
         <enumeration value="previous"/>
         <enumeration value="progress"/>
         <enumeration value="rotation_changed"/>
         <enumeration value="separation"/>
         <enumeration value="separationRate"/>
         <enumeration value="shiftKey"/>
         <enumeration value="textBounds"/>
         <enumeration value="time"/>
         <enumeration value="timestamp"/>
         <enumeration value="touchTime"/>
         <enumeration value="trackPoint_changed"/>
         <enumeration value="transitionComplete"/>
         <enumeration value="translation_changed"/>
         <enumeration value="triggerTime"/>
         <enumeration value="triggerTrue"/>
         <enumeration value="triggerValue"/>
         <enumeration value="value_changed"/>
      </SimpleType>
      <SimpleType name="particleSystemGeometryTypeValues"
                   baseType="xs:NMTOKEN"
                   appinfo="particleSystemGeometryTypeValues are supported enumeration values for the ParticleSystem node geometryType field. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#ParticleSystem">
         <enumeration value="LINE"
                       appinfo="line is drawn along current velocity vector of particle"/>
         <enumeration value="POINT" appinfo="point geometry is rendered at particle position"/>
         <enumeration value="QUAD"
                       appinfo="quad geometry is rendered at particle position facing direction traveled"/>
         <enumeration value="SPRITE"
                       appinfo="quad geometry is rendered at particle position facing screen"/>
         <enumeration value="TRIANGLE"
                       appinfo="pair of triangles creating quad geometry is rendered at particle position facing direction traveled"/>
         <enumeration value="GEOMETRY"
                       appinfo="geometry field is used for rendering each particle"/>
      </SimpleType>
      <SimpleType name="periodicWaveTypeChoices"
                   baseType="SFString"
                   appinfo="Permitted values for PeriodicWave type. X3D enumeration naming conventions are capitalized versions of Web Audio API enumerations, also changing hyphens to underscores. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#PeriodicWave">
         <enumeration value="SINE"
                       alias="sine"
                       appinfo="X3D version of &#34;sine&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype"/>
         <enumeration value="SQUARE"
                       alias="square"
                       appinfo="X3D version of &#34;square&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype"/>
         <enumeration value="SAWTOOTH"
                       alias="sawtooth"
                       appinfo="X3D version of &#34;sawtooth&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype"/>
         <enumeration value="TRIANGLE"
                       alias="triangle"
                       appinfo="X3D version of &#34;triangle&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype"/>
         <enumeration value="CUSTOM"
                       alias="custom"
                       appinfo="X3D version of &#34;custom&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype"/>
      </SimpleType>
      <SimpleType name="phaseFunctionValues"
                   baseType="SFString"
                   appinfo="phaseFunctionValues are supported enumeration values for the phaseFunction field in the ShadedVolumeStyle. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#ShadedVolumeStyle">
         <enumeration value="Henyey-Greenstein"
                       appinfo="Henyey-Greenstein phase function for scattering model"/>
         <enumeration value="NONE" appinfo="no scattering"/>
      </SimpleType>
      <SimpleType name="pickableObjectTypeValues"
                   baseType="MFString"
                   appinfo="pickableObjectTypeValues are supported enumeration values for the objectType field in the abstract types X3DPickableObject and X3DPickSensorNode. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html#X3DPickableObject">
         <enumeration value="&#34;ALL&#34;" appinfo="each node is available for picking"/>
         <enumeration value="&#34;NONE&#34;" appinfo="no node is available for picking"/>
         <enumeration value="&#34;TERRAIN&#34;" appinfo="TERRAIN is an example value"/>
      </SimpleType>
      <SimpleType name="pickSensorMatchCriterionChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="pickSensorMatchCriterionChoices are strictly allowed enumeration values for X3DPickSensorNode node matchCriterion field. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html#X3DPickSensorNode">
         <enumeration value="MATCH_ANY"
                       appinfo="any match of objectType values is acceptable"/>
         <enumeration value="MATCH_EVERY"
                       appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match"/>
         <enumeration value="MATCH_ONLY_ONE"
                       appinfo="one and only one objectType value can match"/>
      </SimpleType>
      <SimpleType name="pickSensorSortOrderValues"
                   baseType="xs:NMTOKEN"
                   appinfo="pickSensorSortOrderValues are supported enumeration values for X3DPickSensorNode node sortOrder field. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html#X3DPickSensorNode">
         <enumeration value="ANY"
                       appinfo="any single object that can satisfy picking conditions"/>
         <enumeration value="CLOSEST"
                       appinfo="return closest object by distance that satisfies conditions of this pick sensor"/>
         <enumeration value="ALL"
                       appinfo="every object that satisfies picking conditions for this pick sensor is returned"/>
         <enumeration value="ALL_SORTED"
                       appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order"/>
      </SimpleType>
      <SimpleType name="profileNameChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="profileNameChoices enumeration constants are used to identify the profile for each scene-graph node, and also utilized by X3D element to identify the profile of a contained Scene. Profiles correspond primarily to subsets of allowed X3D nodes. Some nodes in Interchange profile include fields that are ignored unless Immersive or Full profile is active. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#Profiles">
         <enumeration value="Core"
                       appinfo="Core Profile includes no nodes and is provided as the basis for custom componentization. Allowed X3D statements for all profiles are: connect ExternProtoDeclare EXPORT field fieldValue IMPORT IS ProtoBody ProtoDeclare ProtoInterface ProtoInstance ROUTE X3D. Allowed X3D nodes for this profile are: MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/coreprofile.html"/>
         <enumeration value="Interchange"
                       appinfo="Interchange Profile equals the minimum subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Appearance Background Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder DirectionalLight Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PointSet PositionInterpolator ScalarInterpolator Shape Sphere TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint WorldInfo."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/interchange.html"/>
         <enumeration value="CADInterchange"
                       appinfo="CADInterchange Profile adds support for CADGeometry component nodes to Interchange Profile. Allowed X3D nodes for this profile are: Anchor Appearance CADAssembly CADFace CADLayer CADPart Billboard Collision Color ColorRGBA Coordinate DirectionalLight FragmentShader Group ImageTexture IndexedLineSet IndexedQuadSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline LineProperties LineSet LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiShader MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal PixelTexture PointSet QuadSet Shader ShaderAppearance Shape TextureCoordinate TextureCoordinateGenerator TextureTransform Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint VertexShader WorldInfo."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/CADInterchange.html"/>
         <enumeration value="Interactive"
                       appinfo="Interactive Profile adds interaction nodes (Anchor, KeySensor) to the minimum subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Anchor Appearance Background BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ScalarInterpolator Shape Sphere SphereSensor SpotLight StringSensor Switch TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor TimeTrigger TouchSensor Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint VisibilitySensor WorldInfo."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/interactive.html"/>
         <enumeration value="Immersive"
                       appinfo="Immersive Profile equals all of the nodes in the VRML97 Specification, plus various X3D node additions including KeySensor, StringSensor and Scene. Allowed X3D nodes for this profile are: Anchor Appearance AudioClip Background Billboard BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger Box Collision Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Extrusion Fog FontStyle Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFan IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineProperties LineSet LoadSensor LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MovieTexture MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet Polyline2D Polypoint2D PositionInterpolator ProximitySensor Rectangle2D ScalarInterpolator Script Shape Sound Sphere SphereSensor SpotLight StringSensor Switch Text TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor TimeTrigger TouchSensor TriangleFanSet TriangleSet TriangleSet2D TriangleStripSet Transform Viewpoint VisibilitySensor WorldInfo."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/immersive.html"/>
         <enumeration value="MedicalInterchange"
                       appinfo="The MedicalInterchange profile adds support for VolumeRendering component to Interchange profile. Allowed X3D nodes for this profile are: Anchor Arc2D ArcClose2D Appearance Background Billboard BlendedVolumeStyle BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger BoundaryEnhancementVolumeStyle Box CartoonVolumeStyle Circle2D ClipPlane Collision Color ColorInterpolator ColorRGBA ComposedVolumeStyle CompositeTexture3D Cone Coordinate CoordinateDouble CoordinateInterpolator Cylinder DirectionalLight Disk2D EdgeEnhancementVolumeStyle FillProperties FontStyle Group ImageTexture ImageTexture3D IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger IsoSurfaceVolumeData LineProperties LineSet LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OctTree OpacityMapVolumeStyle OrientationInterpolator OrthoViewpoint PixelTexture PixelTexture3D PointSet Polyline2D Polypoint2D PositionInterpolator ProjectionVolumeStyle Rectangle2D ScalarInterpolator SegmentedVolumeData ShadedVolumeStyle Shape SilhouetteEnhancementVolumeStyle Sphere StaticGroup Switch Text TextureCoordinate TextureCoordinate3D TextureCoordinate4D TextureCoordinateGenerator TextureMatrixTransform TextureProperties TextureTransform TextureTransform3D TimeSensor TimeTrigger ToneMappedVolumeStyle Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint ViewpointGroup VolumeData WorldInfo."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/MedInterchange.html"/>
         <enumeration value="MPEG4Interactive"
                       appinfo="MPEGInteractive Profile defines base interoperability with MPEG4 standards to a small subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Anchor Appearance Background Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Group ImageTexture IndexedFaceSet IndexedLineSet Inline LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString NavigationInfo NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ScalarInterpolator Shape Sphere SphereSensor SpotLight Switch TextureCoordinate TextureTransform TimeSensor TouchSensor Transform Viewpoint WorldInfo."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/MPEG4interactive.html"/>
         <enumeration value="Full"
                       appinfo="The Full Profile corresponds to all Immersive X3D nodes plus all approved/implemented extensions. All X3D nodes and statements are allowed in this profile."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fullProfile.html"/>
      </SimpleType>
      <SimpleType name="projectionVolumeStyleTypeChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="projectionVolumeStyleTypeChoices are strictly allowed enumeration values for ProjectionVolumeStyle field named 'type'. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#ProjectionVolumeStyle">
         <enumeration value="MAX"
                       appinfo="Maximum Intensity Projection (MIP) or Least MIP (LMIP) algorithm is used to generate output color"/>
         <enumeration value="MIN"
                       appinfo="Minimum Intensity Projection algorithm is used to generate output color"/>
         <enumeration value="AVERAGE"
                       appinfo="All voxels along ray are averaged to generate output color"/>
      </SimpleType>
      <SimpleType name="shaderLanguageValues"
                   baseType="xs:NMTOKEN"
                   appinfo="shaderLanguageValues are supported enumeration values for the language field in shader nodes including &#34;Cg&#34; &#34;GLSL&#34; &#34;HLSL&#34;, other values are optionally supported by browsers. Used to optionally determine the language type if no MIME-type information is available. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#X3DShaderNode">
         <enumeration value="Cg" appinfo="nVidia Cg shading language"/>
         <enumeration value="GLSL" appinfo="OpenGL shading language (GLSL)"/>
         <enumeration value="HLSL" appinfo="Microsoft High Level Shading Language (HLSL)"/>
      </SimpleType>
      <SimpleType name="shaderPartTypeValues"
                   baseType="xs:NMTOKEN"
                   appinfo="shaderPartTypeValues are allowed enumeration values for ShaderPart type field. This list is unbounded, additional enumeration values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#ShaderPart">
         <enumeration value="VERTEX" appinfo="vertex shader"/>
         <enumeration value="FRAGMENT" appinfo="fragment shader"/>
      </SimpleType>
      <SimpleType name="textureBoundaryModeChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="textureBoundaryModeChoices are strictly allowed enumeration values for TextureProperties boundaryMode* fields. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#t-TextureBoundaryModes">
         <enumeration value="CLAMP" appinfo="Clamp texture coordinates to range [0,1]"/>
         <enumeration value="CLAMP_TO_EDGE"
                       appinfo="Clamp texture coordinates such that a border texel is never sampled"/>
         <enumeration value="CLAMP_TO_BOUNDARY"
                       appinfo="Clamp texture coordinates such that texture samples are border texels for fragments"/>
         <enumeration value="MIRRORED_REPEAT"
                       appinfo="Texture coordinates are mirrored and then clamped as in CLAMP_TO_EDGE"/>
         <enumeration value="REPEAT" appinfo="Repeat a texture across the fragment"/>
      </SimpleType>
      <SimpleType name="textureCompressionModeChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="textureCompressionModeChoices are strictly allowed enumeration values for TextureProperties field textureCompression. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#t-TextureCompressionModes">
         <enumeration value="DEFAULT" appinfo="browser-specified default compression mode"/>
         <enumeration value="FASTEST" appinfo="fastest method available"/>
         <enumeration value="HIGH" appinfo="greatest amount of compression"/>
         <enumeration value="LOW" appinfo="least amount of compression"/>
         <enumeration value="MEDIUM" appinfo="moderate amount of compressions"/>
         <enumeration value="NICEST" appinfo="highest quality method available"/>
      </SimpleType>
      <SimpleType name="textureCoordinateGeneratorModeChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="textureCoordinateGeneratorModeChoices are strictly allowed enumeration values for TextureCoordinateGenerator mode field. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#t-Texturecoordgeneration">
         <enumeration value="SPHERE"
                       appinfo="Creates texture coordinates for a spherical environment"/>
         <enumeration value="CAMERASPACENORMAL"
                       appinfo="Use vertex normal, transformed to camera space, as input texture coordinates"/>
         <enumeration value="CAMERASPACEPOSITION"
                       appinfo="Use vertex position, transformed to camera space, as input texture coordinates"/>
         <enumeration value="CAMERASPACEREFLECTIONVECTOR"
                       appinfo="Use reflection vector, transformed to camera space, as input texture coordinates"/>
         <enumeration value="SPHERE-LOCAL" appinfo="Sphere mapping but in local coordinates"/>
         <enumeration value="COORD" appinfo="Use vertex coordinates"/>
         <enumeration value="COORD-EYE"
                       appinfo="Use vertex coordinates transformed to camera space"/>
         <enumeration value="NOISE"
                       appinfo="Apply Perlin solid noise function on vertex coordinates"/>
         <enumeration value="NOISE-EYE"
                       appinfo="Apply Perlin solid noise function on vertex coordinates transformed to camera space"/>
         <enumeration value="SPHERE-REFLECT"
                       appinfo="similar to CAMERASPACEREFLECTIONVECTOR with optional index of refraction"/>
         <enumeration value="SPHERE-REFLECT-LOCAL"
                       appinfo="Similar to SPHERE-REFLECT transformed to camera space"/>
      </SimpleType>
      <SimpleType name="textureMagnificationModeChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="textureMagnificationModeChoices are strictly allowed enumeration values for TextureProperties field magnificationFilter. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#t-TextureMagnificationModes">
         <enumeration value="AVG_PIXEL"
                       appinfo="weighted average of four texture elements closest to center of pixel being textured"/>
         <enumeration value="DEFAULT" appinfo="browser-specified default magnification mode"/>
         <enumeration value="FASTEST" appinfo="fastest method available"/>
         <enumeration value="NEAREST_PIXEL"
                       appinfo="texture element nearest to the center of pixel being textured"/>
         <enumeration value="NICEST" appinfo="highest quality method available"/>
      </SimpleType>
      <SimpleType name="textureMinificationModeChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="textureMinificationModeChoices are strictly allowed enumeration values for TextureProperties field minificationFilter. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#t-TextureMinificationModes">
         <enumeration value="AVG_PIXEL"
                       appinfo="weighted average of four texture elements closest to center of pixel being textured"/>
         <enumeration value="AVG_PIXEL_AVG_MIPMAP" appinfo="tri-linear mipmap filtering"/>
         <enumeration value="AVG_PIXEL_NEAREST_MIPMAP"
                       appinfo="choose mipmap that most closely matches size of pixel being textured, use weighted average of four texture elements closest to center of pixel"/>
         <enumeration value="DEFAULT" appinfo="browser-specified default minification mode"/>
         <enumeration value="FASTEST"
                       appinfo="fastest method available, use mipmaps if possible"/>
         <enumeration value="NEAREST_PIXEL"
                       appinfo="texture element nearest to center of pixel being textured"/>
         <enumeration value="NEAREST_PIXEL_AVG_MIPMAP"
                       appinfo="texture element nearest to center of pixel being textured, use average of two nearest mipmaps"/>
         <enumeration value="NEAREST_PIXEL_NEAREST_MIPMAP"
                       appinfo="texture element nearest to center of pixel being textured, use nearest mipmap"/>
         <enumeration value="NICEST" appinfo="highest quality method available"/>
      </SimpleType>
      <SimpleType name="unitCategoryChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="unitCategoryChoices are strictly allowed enumeration values for standard units in the UNIT statement. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#t-Standardunits">
         <enumeration value="angle" appinfo="angle default is radians"/>
         <enumeration value="force" appinfo="force default is newtons"/>
         <enumeration value="length" appinfo="length default is meters"/>
         <enumeration value="mass" appinfo="mass default is kilograms"/>
      </SimpleType>
      <SimpleType name="unitIntervalType"
                   baseType="SFFloat"
                   defaultValue="0.0"
                   appinfo="unitIntervalType value is an SFFloat ranging [0..1]"
                   documentation="_Evaluating the X3D Schema with semantic web tools_, Web3D 2012 Conference, Petit, Marc (EDF), Henry Boccon-Gibod (EDF), Mouton, Christophe (EDF)"/>
      <SimpleType name="volumeRenderingWeightFunctionChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="volumeRenderingWeightFunctionChoices are strictly allowed enumeration values for BlendedVolumeStyle weightFunction* fields."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#t-WeightFunctionTypes">
         <enumeration value="CONSTANT" appinfo="Use weightConstant1"/>
         <enumeration value="ALPHA1" appinfo="Use O_v"/>
         <enumeration value="ALPHA2" appinfo="Use O_blend"/>
         <enumeration value="ONE_MINUS_ALPHA1" appinfo="Use 1 - O_v"/>
         <enumeration value="ONE_MINUS_ALPHA2" appinfo="Use 1 - O_blend"/>
         <enumeration value="TABLE" appinfo="Use table lookup value"/>
      </SimpleType>
      <SimpleType name="waveShaperOversampleChoices"
                   baseType="SFString"
                   appinfo="Permitted values for WaveShaper oversample field. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#WaveShaper">
         <enumeration value="NONE"
                       alias="none"
                       appinfo="No oversampling. X3D version of &#34;none&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype"/>
         <enumeration value="2X"
                       alias="2x"
                       appinfo="Double sampling rate. X3D version of &#34;2x&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype"/>
         <enumeration value="4X"
                       alias="4x"
                       appinfo="Quadruple sampling rate. X3D version of &#34;4x&#34; in Web Audio API."
                       documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype"/>
      </SimpleType>
      <SimpleType name="x3dVersionChoices"
                   baseType="xs:NMTOKEN"
                   appinfo="x3dVersionChoices enumeration string constants are used to identify the allowed versions for an X3D scene graph. This list is bounded, no additional values are allowed."
                   documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#Profiles">
         <enumeration value="3.0"
                       appinfo="X3D version 3.0 approved by ISO in 2004."
                       documentation="https://www.web3d.org/documents/specifications/19775-1/V3.0/index.html"/>
         <enumeration value="3.1"
                       appinfo="X3D version 3.1 Amendment 1 approved by ISO in 2005. Backwards compatibility maintained with version 3.0."
                       documentation="https://www.web3d.org/documents/specifications/19775-1/V3.1/index.html"/>
         <enumeration value="3.2"
                       appinfo="X3D version 3.2 Amendment 2 approved by ISO in 2007. Backwards compatibility maintained with versions 3.0 and 3.1."
                       documentation="https://www.web3d.org/documents/specifications/19775-1/V3.2/index.html"/>
         <enumeration value="3.3"
                       appinfo="X3D version 3.3 approved by ISO in 2013 as International Standard (IS). Backwards compatibility maintained with versions 3.0, 3.1 and 3.2."
                       documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/X3D.html"/>
         <enumeration value="4.0"
                       appinfo="X3D version 4.0 under final development by Web3D Consortium. Backwards compatibility maintained with versions 3.0, 3.1, 3.2 and 3.3."
                       documentation="https://www.web3d.org/x3d4"/>
      </SimpleType>
   </SimpleTypeEnumerations>
   <FieldTypes>
      <FieldType type="SFBool"
                  tupleSize="1"
                  isArray="false"
                  defaultValue="false"
                  regex="\s*(true|false)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFBoolAndMFBool"
                               appinfo="SFBool is a logical type with possible values (true|false) to match the XML boolean type. Hint: XML boolean values are lower case (true|false) in order to maintain compatibility with HTML and other XML documents.">
            <Inheritance baseType="xs:boolean" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFBool"
                  tupleSize="1"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((true|false)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFBoolAndMFBool"
                               appinfo="MFBool is an array of boolean values. Type MFBool was previously undefined in the VRML97 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. Hint: XML boolean values are lower case (true|false) in order to maintain compatibility with HTML and other XML documents.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFColor"
                  tupleSize="3"
                  isArray="false"
                  defaultValue="0 0 0"
                  regex="\s*(([+]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s+){2}([+]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFColorAndMFColor"
                               appinfo="SFColor specifies one RGB (red-green-blue) color triple, where each color value is an RGB triple of floating point numbers in range [0,1]. The default value of an uninitialized SFColor field is (0 0 0). Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFColor"
                  tupleSize="3"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s+){2}([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFColorAndMFColor"
                               appinfo="MFColor specifies zero or more SFColor RGB triples, where each color value is an RGB triple of floating point numbers in range [0,1]. The default value of an uninitialized MFColor field is the empty list. Individual SFColor array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFColorRGBA"
                  tupleSize="4"
                  isArray="false"
                  defaultValue="0 0 0 0"
                  regex="\s*(([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFColorRGBAAndMFColorRGBA"
                               appinfo="SFColorRGBA specifies one RGBA (red-green-blue-alpha) color 4-tuple, where each color value is an RGBA 4-tuple of floating point numbers in range [0,1]. Alpha (opacity) values = (1 - transparency). The default value of an uninitialized SFColorRGBA field is (0 0 0 0). Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFColorRGBA"
                  tupleSize="4"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFColorRGBAAndMFColorRGBA"
                               appinfo="MFColorRGBA specifies zero or more SFColorRGBA 4-tuples, where each color value is an RGBA 4-tuple of floating point numbers in range [0,1]. Alpha (opacity) values = (1 - transparency). The default value of an uninitialized MFColor field is the empty list. Individual SFColorRGBA array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFDouble"
                  tupleSize="1"
                  isArray="false"
                  defaultValue="0.0"
                  regex="\s*([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFDoubleAndMFDouble"
                               appinfo="SFDouble is a double-precision floating-point type. Array values are optionally separated by commas in XML syntax. See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations of Single Precision for rationale.">
            <Inheritance baseType="xs:double" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFDouble"
                  tupleSize="1"
                  isArray="true"
                  defaultValue=""
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFDoubleAndMFDouble"
                               appinfo="MFDouble is an array of Double values, meaning a double-precision floating-point array type. See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations of Single Precision for rationale. Array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFFloat"
                  tupleSize="1"
                  isArray="false"
                  defaultValue="0.0"
                  regex="\s*([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFFloatAndMFFloat"
                               appinfo="SFFloat is a single-precision floating-point type.">
            <Inheritance baseType="xs:float" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFFloat"
                  tupleSize="1"
                  isArray="true"
                  defaultValue=""
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFFloatAndMFFloat"
                               appinfo="MFFloat is an array of SFFloat values, meaning a single-precision floating-point array type. Array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFImage"
                  tupleSize="1"
                  isArray="false"
                  defaultValue="0 0 0"
                  regex="\s*([+]?(0|[1-9][0-9]*)([Ee][+]?[0-9]+)?\s+){2}[+]?[0-4](\s+(0x[0-9a-fA-F]{1,16}|[+]?(0|[1-9][0-9]*)([Ee][+]?[0-9]+)?))*\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFImageAndMFImage"
                               appinfo="SFImage 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 x height) hexadecimal or integer values representing the pixels in the image.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFImage"
                  tupleSize="1"
                  isArray="true"
                  defaultValue=""
                  regex="\s*(([+]?(0|[1-9][0-9]*)([Ee][+]?[0-9]+)?\s+){2}[+]?[0-4](\s+(0x[0-9a-fA-F]{1,16}|[+]?(0|[1-9][0-9]*)([Ee][+]?[0-9]+)?))*\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFImageAndMFImage"
                               appinfo="MFImage is an array of SFImage values.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFInt32"
                  tupleSize="1"
                  isArray="false"
                  defaultValue="0"
                  regex="\s*[+-]?(0|[1-9][0-9]*)([Ee][+-]?[0-9]+)?\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFInt32AndMFInt32"
                               appinfo="SFInt32 specifies one 32-bit signed integer.">
            <Inheritance baseType="xs:integer" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFInt32"
                  tupleSize="1"
                  isArray="true"
                  defaultValue=""
                  regex="\s*([+-]?(0|[1-9][0-9]*)([Ee][+-]?[0-9]+)?\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFInt32AndMFInt32"
                               appinfo="MFInt32 defines an array of 32-bit signed integers. Array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFMatrix3d"
                  tupleSize="9"
                  isArray="false"
                  defaultValue="1 0 0 0 1 0 0 0 1"
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){8}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFMatrix3dAndMFMatrix3d"
                               appinfo="SFMatrix3d specifies a 3x3 matrix of double-precision floating point numbers, organized in row-major fashion. Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFMatrix3d"
                  tupleSize="9"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){8}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFMatrix3dAndMFMatrix3d"
                               appinfo="MFMatrix3d specifies zero or more 3x3 matrices of double-precision floating point numbers, organized in row-major fashion. Warning: comma characters can only appear between singleton 9-tuple values.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFMatrix3f"
                  tupleSize="9"
                  isArray="false"
                  defaultValue="1 0 0 0 1 0 0 0 1"
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){8}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFMatrix3fAndMFMatrix3f"
                               appinfo="SFMatrix3f specifies a 3x3 matrix of single-precision floating point numbers, organized in row-major fashion. Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFMatrix3f"
                  tupleSize="9"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){8}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFMatrix3fAndMFMatrix3f"
                               appinfo="MFMatrix3f specifies zero or more 3x3 matrices of single-precision floating point numbers, organized in row-major fashion. Warning: comma characters can only appear between singleton 9-tuple values.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFMatrix4d"
                  tupleSize="16"
                  isArray="false"
                  defaultValue="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){15}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFMatrix4dAndMFMatrix4d"
                               appinfo="SFMatrix4d specifies a 4x4 matrix of double-precision floating point numbers, organized in row-major fashion. Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFMatrix4d"
                  tupleSize="16"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){15}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFMatrix4dAndMFMatrix4d"
                               appinfo="MFMatrix4d specifies zero or more 4x4 matrices of double-precision floating point numbers, organized in row-major fashion. Warning: comma characters can only appear between singleton 16-tuple values.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFMatrix4f"
                  tupleSize="16"
                  isArray="false"
                  defaultValue="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){15}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFMatrix4fAndMFMatrix4f"
                               appinfo="SFMatrix4f specifies a 4x4 matrix of single-precision floating point numbers, organized in row-major fashion. Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFMatrix4f"
                  tupleSize="16"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){15}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFMatrix4fAndMFMatrix4f"
                               appinfo="MFMatrix4f specifies zero or more 4x4 matrices of single-precision floating point numbers, organized in row-major fashion. Warning: comma characters can only appear between singleton 16-tuple values.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFNode" tupleSize="1" isArray="false" defaultValue="">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFNodeAndMFNode"
                               appinfo="SFNode specifies an X3D node; the default empty value of an uninitialized SFNode field is sometimes described as NULL.">
            <Inheritance baseType="SFString" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFNode" tupleSize="1" isArray="true" defaultValue="">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFNodeAndMFNode"
                               appinfo="MFNode specifies zero or more nodes; the default value of an MFNode field is the empty list.">
            <Inheritance baseType="SFString" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFRotation"
                  tupleSize="4"
                  isArray="false"
                  defaultValue="0 0 1 0"
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFRotationAndMFRotation"
                               appinfo="SFRotation is an axis-angle 4-tuple, indicating X-Y-Z direction axis plus angle orientation about that axis. The first three values specify a normalized axis vector about which the rotation takes place, so the first three values shall be within the range [-1..+1] in order to represent a normalized unit vector. The fourth value specifies the amount of right-handed rotation about that axis in radians. Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFRotation"
                  tupleSize="4"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFRotationAndMFRotation"
                               appinfo="MFRotation is an array of SFRotation values. Individual singleton SFRotation array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFString"
                  tupleSize="1"
                  isArray="false"
                  defaultValue=""
                  regex="(\s|\S)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFStringAndMFString"
                               appinfo="SFString defines a single string encoded with the UTF-8 universal character set.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFString"
                  tupleSize="1"
                  isArray="true"
                  defaultValue=""
                  regex="(\s|\S)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFStringAndMFString"
                               appinfo="MFString is an array of SFString values, each &#34;quoted&#34; and separated by whitespace. Individual SFString array values are optionally separated by commas in XML syntax."/>
      </FieldType>
      <FieldType type="SFTime"
                  tupleSize="1"
                  isArray="false"
                  defaultValue="-1.0"
                  regex="\s*([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFTimeAndMFTime"
                               appinfo="SFTime specifies a single time value, expressed as a double-precision floating point number. Typically, SFTime fields represent the number of seconds since Jan 1, 1970, 00:00:00 GMT.">
            <Inheritance baseType="xs:double" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFTime"
                  tupleSize="1"
                  isArray="true"
                  defaultValue=""
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFTimeAndMFTime"
                               appinfo="MFTime is an array of SFTime values. Array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFVec2d"
                  tupleSize="2"
                  isArray="false"
                  defaultValue="0.0 0.0"
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){1}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec2dAndMFVec2d"
                               appinfo="SFVec2d is a 2-tuple pair of SFDouble values. Hint: SFVec2d can be used to specify a 2D double-precision coordinate. Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFVec2d"
                  tupleSize="2"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){1}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec2dAndMFVec2d"
                               appinfo="MFVec2d is an array of SFVec2d values. Individual singleton SFVec2d array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFVec2f"
                  tupleSize="2"
                  isArray="false"
                  defaultValue="0.0 0.0"
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){1}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec2fAndMFVec2f"
                               appinfo="SFVec2f is a 2-tuple pair of SFFloat values. Hint: SFVec2f can be used to specify a 2D single-precision coordinate. Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFVec2f"
                  tupleSize="2"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){1}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec2fAndMFVec2f"
                               appinfo="MFVec2f is an array of SFVec2f values. Individual singleton SFVec2f array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFVec3d"
                  tupleSize="3"
                  isArray="false"
                  defaultValue="0.0 0.0 0.0"
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){2}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec3dAndMFVec3d"
                               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. Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFVec3d"
                  tupleSize="3"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){2}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec3dAndMFVec3d"
                               appinfo="MFVec3d is an array of SFVec3d values. Individual singleton SFVec3d array values are optionally separated by commas in XML syntax. Original rationale for inclusion: 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.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFVec3f"
                  tupleSize="3"
                  isArray="false"
                  defaultValue="0.0 0.0 0.0"
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){2}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec3fAndMFVec3f"
                               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. Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFVec3f"
                  tupleSize="3"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){2}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec3fAndMFVec3f"
                               appinfo="MFVec3f is an array of SFVec3f values. Individual singleton SFVec3f array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFVec4d"
                  tupleSize="4"
                  isArray="false"
                  defaultValue="0.0 0.0 0.0 1.0"
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec4dAndMFVec4d"
                               appinfo="SFVec4d is a 4-tuple set of double-precision floating-point values, specifying a 3D homogeneous vector. Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFVec4d"
                  tupleSize="4"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec4dAndMFVec4d"
                               appinfo="MFVec4d is zero or more SFVec4d values. Individual singleton SFVec4d array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="SFVec4f"
                  tupleSize="4"
                  isArray="false"
                  defaultValue="0.0 0.0 0.0 1.0"
                  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec4fAndMFVec4f"
                               appinfo="SFVec4f is a 4-tuple set of single-precision floating-point values, specifying a 3D homogeneous vector. Warning: comma characters within singleton values do not pass strict XML validation.">
            <Inheritance baseType="xs:string" x3dType="X3DField"/>
         </InterfaceDefinition>
      </FieldType>
      <FieldType type="MFVec4f"
                  tupleSize="4"
                  isArray="true"
                  defaultValue=""
                  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldsDef.html#SFVec4fAndMFVec4f"
                               appinfo="MFVec4f is zero or more SFVec4f values. Individual singleton SFVec4f array values are optionally separated by commas in XML syntax.">
            <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
         </InterfaceDefinition>
      </FieldType>
   </FieldTypes>
   <AbstractObjectTypes>
      <AbstractObjectType name="X3DBoundedObject">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/grouping.html#X3DBoundedObject"
                               appinfo="X3DBoundedObject indicates that bounding box values can be provided (or computed) to encompass this node and any children.">
            <componentInfo name="Grouping" level="1"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    baseType="bboxSizeType"/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
         </InterfaceDefinition>
      </AbstractObjectType>
      <AbstractObjectType name="X3DFogObject">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalEffects.html#X3DFogOjbect"
                               appinfo="Abstract type describing a node that influences the lighting equation through the use of fog semantics.">
            <componentInfo name="EnvironmentalEffects" level="2"/>
            <field name="color"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"/>
            <field name="fogType"
                    type="SFString"
                    accessType="inputOutput"
                    default="LINEAR"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="fogTypeChoices"
                    baseType="xs:NMTOKEN">
               <enumeration value="LINEAR" appinfo="linear blending as a function of distance."/>
               <enumeration value="EXPONENTIAL"
                             appinfo="exponential blending as a function of distance."/>
            </field>
            <field name="visibilityRange"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"/>
         </InterfaceDefinition>
      </AbstractObjectType>
      <AbstractObjectType name="X3DMetadataObject">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#X3DMetadataObject"
                               appinfo="Each node inheriting the X3DMetadataObject interface contains a single array of strictly typed values: MFBool, MFInt32, MFFloat, MFDouble, MFString, or MFNode, the latter having children that are all Metadata nodes.">
            <componentInfo name="Core" level="1"/>
            <field name="name" type="SFString" accessType="inputOutput"/>
            <field name="reference" type="SFString" accessType="inputOutput"/>
         </InterfaceDefinition>
      </AbstractObjectType>
      <AbstractObjectType name="X3DPickableObject">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html#X3DPickableObject"
                               appinfo="The X3DPickableObject abstract interface marks a node as being capable of having customized picking performed on its contents or children.">
            <componentInfo name="Picking" level="1"/>
            <field name="pickable"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
         </InterfaceDefinition>
      </AbstractObjectType>
      <AbstractObjectType name="X3DProgrammableShaderObject">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#X3DProgrammableShaderObject"
                               appinfo="Base type for all nodes that specify arbitrary fields for interfacing with per-object attribute values.">
            <componentInfo name="Shaders" level="1"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
         </InterfaceDefinition>
      </AbstractObjectType>
      <AbstractObjectType name="X3DUrlObject">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/networking.html#X3DUrlObject"
                               appinfo="X3DUrlObject indicates that a node has content loaded from a Uniform Resource Locator (URL) and can be tracked via a LoadSensor. Such child nodes have containerField='children' to indicate their relationship to the parent LoadSensor node.">
            <componentInfo name="Networking" level="1"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"/>
            <field name="description" type="SFString" accessType="inputOutput"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="url" type="MFString" accessType="inputOutput">
               <componentInfo name="Networking" level="4"/>
            </field>
         </InterfaceDefinition>
      </AbstractObjectType>
   </AbstractObjectTypes>
   <AbstractNodeTypes>
      <AbstractNodeType name="X3DAppearanceChildNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#X3DAppearanceChildNode"
                               appinfo="Nodes of this type can be used as child nodes for Appearance.">
            <componentInfo name="Shape" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DAppearanceNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#X3DAppearanceNode"
                               appinfo="Base type for all Appearance nodes.">
            <componentInfo name="Shape" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="AppearanceChildContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DArrayField">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldTypes.html#X3DArrayField"
                               appinfo="X3DArrayField is the abstract field type from which all field types that can contain multiple values are derived, implementing the X3DField interface. All fields derived from X3DArrayField have names beginning with MF (multiple-valued field). MF fields may zero or more values, each of which shall be of the type indicated by the corresponding SF field type. It is illegal for any MF field to mix values of different SF field types.">
            <Inheritance x3dType="X3DField"/>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DBackgroundNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalEffects.html#X3DBackgroundNode"
                               appinfo="Abstract type from which all backgrounds inherit, also defining a background binding stack.">
            <componentInfo name="EnvironmentalEffects" level="1"/>
            <Inheritance baseType="X3DBindableNode"/>
            <field name="bindTime"
                    type="SFTime"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"/>
            <field name="groundAngle"
                    type="MFFloat"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="1.5708">
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="groundColor"
                    type="MFColor"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="1"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isBound"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="set_bind"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DBindableNode"/>
            <field name="skyAngle"
                    type="MFFloat"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="3.1416">
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="skyColor"
                    type="MFColor"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    maxInclusive="1">
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="transparency"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DBindableNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#X3DBindableNode"
                               appinfo="Bindable nodes implement the binding stack, so that only one of each node type is active at a given time.">
            <componentInfo name="Core" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="bindTime" type="SFTime" accessType="outputOnly"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isBound" type="SFBool" accessType="outputOnly"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="set_bind" type="SFBool" accessType="inputOnly"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DChaserNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#X3DChaserNode"
                               appinfo="The X3DChaserNode abstract node type calculates the output on value_changed as a finite impulse response (FIR) based on the events received on set_destination field.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DFollowerNode"/>
            <field name="duration"
                    type="SFTime"
                    accessType="initializeOnly"
                    default="1"
                    minInclusive="0"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DChildNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#X3DChildNode"
                               appinfo="A node that implements X3DChildNode is one of the legal children for a X3DGroupingNode parent.">
            <componentInfo name="Core" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DColorNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#X3DColorNode"
                               appinfo="Base type for color specifications in X3D.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DGeometricPropertyNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DComposableVolumeRenderStyleNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#X3DComposableVolumeRenderStyleNode"
                               appinfo="The X3DComposableVolumeRenderStyleNode abstract node type is the base type for all node types that allow rendering styles to be sequentially composed together to form a single renderable output.">
            <componentInfo name="VolumeRendering" level="1"/>
            <Inheritance baseType="X3DVolumeRenderStyleNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeRenderStyleNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DComposedGeometryNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#X3DComposedGeometryNode"
                               appinfo="Composed geometry nodes produce renderable geometry, can contain Color Coordinate Normal TextureCoordinate, and are contained by a Shape node.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"/>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ComposedGeometryContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DCoordinateNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#X3DCoordinateNode"
                               appinfo="Base type for all coordinate node types in X3D.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DGeometricPropertyNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DDamperNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#X3DDamperNode"
                               appinfo="The X3DDamperNode abstract node type creates an IIR response that approaches the destination value according to the shape of the e-function only asymptotically but very quickly.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DFollowerNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="order"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="0"
                    maxInclusive="5"/>
            <field name="tau"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.3"
                    minInclusive="0"/>
            <field name="tolerance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DDragSensorNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/pointingDeviceSensor.html#X3DDragSensorNode"
                               appinfo="Base type for all drag-style pointing device sensors.">
            <componentInfo name="PointingDeviceSensor" level="1"/>
            <Inheritance baseType="X3DPointingDeviceSensorNode"/>
            <field name="autoOffset"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"/>
            <field name="isOver"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DPointingDeviceSensorNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="trackPoint_changed" type="SFVec3f" accessType="outputOnly"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DEnvironmentalSensorNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalSensor.html#X3DEnvironmentalSensorNode"
                               appinfo="Base type for the environmental sensor nodes ProximitySensor, TransformSensor and VisibilitySensor.">
            <componentInfo name="EnvironmentalSensor" level="1"/>
            <Inheritance baseType="X3DSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="size"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DEnvironmentTextureNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalTexturing#X3DEnvironmentTextureNode"
                               appinfo="Base type for all nodes that specify cubic environment map sources for texture images.">
            <componentInfo name="CubeMapTexturing" level="1"/>
            <Inheritance baseType="X3DTextureNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DField">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fieldTypes.html#X3DField"
                               appinfo="X3DField is the abstract field type from which all single values field types are derived. All fields directly derived from X3DField have names beginning with SF (single-valued field). SF fields may only contain a single value of the type indicated by the name of the field type."/>
      </AbstractNodeType>
      <AbstractNodeType name="X3DFollowerNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#X3DFollowerNode"
                               appinfo="X3DFollowerNode is the abstract base class for all nodes in the Followers component.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive" type="SFBool" accessType="outputOnly"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DFontStyleNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/text.html#X3DFontStyleNode"
                               appinfo="Base type for all font style nodes.">
            <componentInfo name="Text" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DGeometricPropertyNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#X3DGeometricPropertyNode"
                               appinfo="Base type for all geometric property node types.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DGeometryNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#X3DGeometryNode"
                               appinfo="Geometry nodes produce renderable geometry and are contained by a Shape node.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DGroupingNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/grouping.html#X3DGroupingNode"
                               appinfo="Grouping nodes can contain other nodes as children, thus making up the backbone of a scene graph.">
            <componentInfo name="Grouping" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    baseType="bboxSizeType"/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DInfoNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/grouping.html#X3DInfoNode"
                               appinfo="Base type for all nodes that contain only information without visual semantics.">
            <componentInfo name="Core" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DInterpolatorNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#X3DInterpolatorNode"
                               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.">
            <componentInfo name="Interpolation" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key" type="MFFloat" accessType="inputOutput"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="set_fraction" type="SFFloat" accessType="inputOnly"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DKeyDeviceSensorNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/keyDeviceSensor.html#X3DKeyDeviceSensorNode"
                               appinfo="Base type for all sensor node types that operate using key devices.">
            <componentInfo name="KeyDeviceSensor" level="1"/>
            <Inheritance baseType="X3DSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DLayerNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layering.html#X3DLayerNode"
                               appinfo="The X3DLayerNode abstract node type is the base node type for layer nodes.">
            <componentInfo name="Layering" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <AdditionalInheritance baseType="X3DPickableObject"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="objectType"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;ALL&#34;"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickableObjectTypeValues"
                    baseType="MFString">
               <enumeration value="&#34;ALL&#34;" appinfo="each node is available for picking."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no node is available for picking."/>
               <enumeration value="&#34;TERRAIN&#34;" appinfo="TERRAIN is an example value."/>
            </field>
            <field name="pickable"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="viewport"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DViewportNode"/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DLayoutNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layout.html#X3DLayoutNode"
                               appinfo="X3DLayoutNode is the base node type for layout nodes.">
            <componentInfo name="Layout" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DLightNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/lighting.html#X3DLightNode"
                               appinfo="Light nodes provide illumination for rendering geometry in the scene. Implementing nodes must include a global field with type SFBool and accessType inputOutput.">
            <componentInfo name="Lighting" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="ambientIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"/>
            <field name="color"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"/>
            <field name="intensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="on" type="SFBool" accessType="inputOutput" default="true"/>
            <field name="shadowIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"/>
            <field name="shadows"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DMaterialNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#X3DMaterialNode"
                               appinfo="Base type for all Material nodes.">
            <componentInfo name="Shape" level="1"/>
            <Inheritance baseType="X3DAppearanceChildNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DNBodyCollidableNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#X3DNBodyCollidableNode"
                               appinfo="The X3DNBodyCollidableNode abstract node type represents objects that act as the interface between the rigid body physics, collision geometry proxy, and renderable objects in the scene graph hierarchy.">
            <componentInfo name="RigidBodyPhysics" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    baseType="bboxSizeType"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="rotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"/>
            <field name="translation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DNBodyCollisionSpaceNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#X3DNBodyCollisionSpaceNode"
                               appinfo="The X3DNBodyCollisionSpaceNode abstract node type represents objects that act as a self-contained spatial collection of objects that can interact through collision detection routines.">
            <componentInfo name="RigidBodyPhysics" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    baseType="bboxSizeType"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DNetworkSensorNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/networking.html#X3DNetworkSensorNode"
                               appinfo="Base typefor all sensors that generate events based on network activity.">
            <componentInfo name="Networking" level="1"/>
            <Inheritance baseType="X3DSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#X3DNode"
                               appinfo="All instantiable nodes implement X3DNode, which corresponds to SFNode type in the X3D specification.">
            <componentInfo name="Core" level="1"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    description="IS/connect statements define prototype connections between ProtoInterface fields and node fields within a ProtoBody."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for each node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKENS"
                    description="The class attribute is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets. This attribute is only functional if the X3D model is loaded within an HTML page."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="The id attribute is a unique identifier, reserved for use by HTML5/DOM pages, independent of DEF labeling and internal X3D node referencing. This attribute is only functional if the X3D model is loaded within an HTML page."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    description="The style attribute provides an inline block of CSS for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets. This attribute is only functional if the X3D model is loaded within an HTML page."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DNormalNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#X3DNormalNode"
                               appinfo="Base type for all normal node types in X3D.">
            <componentInfo name="Rendering" level="2"/>
            <Inheritance baseType="X3DGeometricPropertyNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DNurbsControlCurveNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#X3DNurbsControlCurveNode"
                               appinfo="Base type for all nodes that provide control curve information in 2D space.">
            <componentInfo name="NURBS" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="controlPoint" type="MFVec2d" accessType="inputOutput"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DNurbsSurfaceGeometryNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#X3DNurbsSurfaceGeometryNode"
                               appinfo="Abstract geometry type for all types of NURBS surfaces.">
            <componentInfo name="NURBS" level="1"/>
            <Inheritance baseType="X3DParametricGeometryNode"/>
            <field name="controlPoint"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Coordinate|CoordinateDouble"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|NurbsTextureCoordinate"/>
            <field name="uClosed"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"/>
            <field name="uDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"/>
            <field name="uKnot" type="MFDouble" accessType="initializeOnly"/>
            <field name="uOrder"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"/>
            <field name="uTessellation"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"/>
            <field name="vClosed"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"/>
            <field name="vDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"/>
            <field name="vKnot" type="MFDouble" accessType="initializeOnly"/>
            <field name="vOrder"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"/>
            <field name="vTessellation"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"/>
            <field name="weight"
                    type="MFDouble"
                    accessType="inputOutput"
                    minExclusive="0"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DOneSidedMaterialNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#X3DOneSidedMaterialNode"
                               appinfo="Base type for material nodes that describe how the shape looks like from one side. A different number of contanied texture nodes are allowed by each of the implementing nodes.">
            <componentInfo name="Shape" level="4"/>
            <Inheritance baseType="X3DMaterialNode"/>
            <field name="emissiveTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="normalScale"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0">
               <componentInfo name="Shape" level="2"/>
            </field>
            <field name="normalTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DParametricGeometryNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#X3DParametricGeometryNode"
                               appinfo="Base type for all geometry node types that are created parametrically and use control points to describe the final shape of the surface.">
            <componentInfo name="NURBS" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DParticleEmitterNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#X3DParticleEmitterNode"
                               appinfo="The X3DParticleEmitterNode abstract type represents any node that is an emitter of particles.">
            <componentInfo name="ParticleSystems" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mass"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="on" type="SFBool" accessType="inputOutput" default="true"/>
            <field name="speed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"/>
            <field name="surfaceArea"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"/>
            <field name="variation"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.25"
                    minInclusive="0"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DParticlePhysicsModelNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#X3DParticlePhysicsModelNode"
                               appinfo="The X3DParticlePhysicsModelNode abstract type represents any node that applies a form of constraints on the particles after they have been generated.">
            <componentInfo name="ParticleSystems" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DPickSensorNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html#X3DPickSensorNode"
                               appinfo="The X3DPickSensorNode abstract node type is the base node type that represents the lowest common denominator of picking capabilities.">
            <componentInfo name="Picking" level="1"/>
            <Inheritance baseType="X3DSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"/>
            <field name="intersectionType"
                    type="SFString"
                    accessType="initializeOnly"
                    default="BOUNDS"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="intersectionTypeValues"
                    baseType="xs:NMTOKEN">
               <enumeration value="BOUNDS"
                             appinfo="TODO undefined in X3D specification."
                             documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
               <enumeration value="GEOMETRY"
                             appinfo="TODO undefined in X3D specification."
                             documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"/>
            <field name="matchCriterion"
                    type="SFString"
                    accessType="inputOutput"
                    default="MATCH_ANY"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="pickSensorMatchCriterionChoices"
                    baseType="xs:NMTOKEN">
               <enumeration value="MATCH_ANY"
                             appinfo="any match of objectType values is acceptable."/>
               <enumeration value="MATCH_EVERY"
                             appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match."/>
               <enumeration value="MATCH_ONLY_ONE"
                             appinfo="one and only one objectType value can match."/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="objectType"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;ALL&#34;"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickableObjectTypeValues"
                    baseType="MFString">
               <enumeration value="&#34;ALL&#34;" appinfo="each node is available for picking."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no node is available for picking."/>
               <enumeration value="&#34;TERRAIN&#34;" appinfo="TERRAIN is an example value."/>
            </field>
            <field name="pickedGeometry"
                    type="MFNode"
                    accessType="outputOnly"
                    acceptableNodeTypes="X3DChildNode"/>
            <field name="pickingGeometry"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DGeometryNode"/>
            <field name="pickTarget"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DGroupingNode|X3DShapeNode|Inline"/>
            <field name="sortOrder"
                    type="SFString"
                    accessType="initializeOnly"
                    default="CLOSEST"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickSensorSortOrderValues"
                    baseType="xs:NMTOKEN">
               <enumeration value="ANY"
                             appinfo="any single object that can satisfy picking conditions."/>
               <enumeration value="CLOSEST"
                             appinfo="return closest object by distance that satisfies conditions of this pick sensor."/>
               <enumeration value="ALL"
                             appinfo="every object that satisfies picking conditions for this pick sensor is returned."/>
               <enumeration value="ALL_SORTED"
                             appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order."/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DPointingDeviceSensorNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/pointingDeviceSensor.html#X3DPointingDeviceSensorNode"
                               appinfo="Base type for all pointing device sensors.">
            <componentInfo name="PointingDeviceSensor" level="1"/>
            <Inheritance baseType="X3DSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"/>
            <field name="isOver" type="SFBool" accessType="outputOnly"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DProductStructureChildNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/CADGeometry.html#X3DProductStructureChildNode"
                               appinfo="Base type marking nodes that are valid product structure children for the CADGeometry component.">
            <componentInfo name="CADGeometry" level="2"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="name" type="SFString" accessType="inputOutput"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DPrototypeInstance">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#X3DPrototypeInstance"
                               appinfo="Base type for all prototype instances. Note that direct children nodes are disallowed, instead let fieldValue with type SFNode/MFNode contain them. Current practice is that, if desired, prototype authors must explicitly add the metadata SFNode field in the ProtoInterface.">
            <componentInfo name="Core" level="2"/>
            <Inheritance baseType="X3DNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DRigidJointNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#X3DRigidJointNode"
                               appinfo="The X3DRigidJointNode abstract node type is the base type for all joint types.">
            <componentInfo name="RigidBodyPhysics" level="2"/>
            <Inheritance baseType="X3DNode"/>
            <field name="body1"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"/>
            <field name="body2"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"/>
            <field name="forceOutput"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;NONE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="forceOutputValues"
                    baseType="MFString">
               <enumeration value="&#34;ALL&#34;" appinfo="all forceOutput fields computed."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no forceOutput fields computed."/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="RigidJointNodeContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DScriptNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/scripting.html#X3DScriptNode"
                               appinfo="Base type for scripting nodes (but not shader nodes).">
            <componentInfo name="Scripting" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"/>
            <field name="description" type="SFString" accessType="inputOutput"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"/>
            <field name="url" type="MFString" accessType="inputOutput">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DSensorNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#X3DSensorNode"
                               appinfo="Base type for all sensors.">
            <componentInfo name="Core" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="description" type="SFString" accessType="inputOutput"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive" type="SFBool" accessType="outputOnly"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DSequencerNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/eventUtilities.html#X3DSequencerNode"
                               appinfo="Base type from which all Sequencers are derived.">
            <componentInfo name="EventUtilities" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key" type="MFFloat" accessType="inputOutput"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="next" type="SFBool" accessType="inputOnly"/>
            <field name="previous" type="SFBool" accessType="inputOnly"/>
            <field name="set_fraction" type="SFFloat" accessType="inputOnly"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DShaderNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#X3DShaderNode"
                               appinfo="Base type for all nodes that specify a programmable shader.">
            <componentInfo name="Shaders" level="1"/>
            <Inheritance baseType="X3DAppearanceChildNode"/>
            <field name="activate" type="SFBool" accessType="inputOnly"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isSelected" type="SFBool" accessType="outputOnly"/>
            <field name="isValid" type="SFBool" accessType="outputOnly"/>
            <field name="language"
                    type="SFString"
                    accessType="initializeOnly"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="shaderLanguageValues"
                    baseType="xs:NMTOKEN">
               <enumeration value="Cg" appinfo="nVidia Cg shading language."/>
               <enumeration value="GLSL" appinfo="OpenGL shading language (GLSL)."/>
               <enumeration value="HLSL" appinfo="Microsoft High Level Shading Language (HLSL)."/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DShapeNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#X3DShapeNode"
                               appinfo="Base type for all Shape nodes.">
            <componentInfo name="Shape" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="appearance"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DAppearanceNode"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    baseType="bboxSizeType"/>
            <field name="castShadow"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="geometry"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DGeometryNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="ShapeChildContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DSingleTextureCoordinateNode">
         <InterfaceDefinition specificationSection="X3D version 4"
                               specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#X3DSingleTextureCoordinateNode"
                               appinfo="Base type for all texture coordinate nodes which specify texture coordinates for a single texture.">
            <componentInfo name="Texturing" level="1"/>
            <Inheritance baseType="X3DTextureCoordinateNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DSingleTextureNode">
         <InterfaceDefinition specificationSection="X3D version 4"
                               specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#X3DSingleTextureNode"
                               appinfo="Base type for all texture node types that define a single texture. A single texture can be used to influence a parameter of various material nodes in the Shape component, and it can be a child of MultiTexture.">
            <componentInfo name="Texturing" level="1"/>
            <Inheritance baseType="X3DTextureNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DSingleTextureTransformNode">
         <InterfaceDefinition specificationSection="X3D version 4"
                               specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#X3DSingleTextureTransformNode"
                               appinfo="Base type for all texture transform nodes which specify texture coordinate transformation for a single texture.">
            <componentInfo name="Texturing" level="1"/>
            <Inheritance baseType="X3DTextureTransformNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DSoundChannelNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#X3DSoundChannelNode"
                               appinfo="Base type for all sound destination nodes, which represent the final destination of an audio signal and are what the user can ultimately hear.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundNode"/>
            <field name="channelCount" type="SFInt32" accessType="outputOnly"/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundNode"/>
            <field name="gain" type="SFFloat" accessType="inputOutput" default="1"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DSoundDestinationNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#X3DSoundDestinationNode"
                               appinfo="Base type for all sound destination nodes, which represent the final destination of an audio signal and are what the user can ultimately hear.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundNode"/>
            <field name="channelCount" type="SFInt32" accessType="outputOnly"/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundNode"/>
            <field name="gain" type="SFFloat" accessType="inputOutput" default="1"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive" type="SFBool" accessType="outputOnly"/>
            <field name="mediaDeviceID" type="SFString" accessType="inputOutput"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DSoundNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#X3DSoundNode"
                               appinfo="Base type for all sound nodes.">
            <componentInfo name="Sound" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="description" type="SFString" accessType="inputOutput"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DSoundProcessingNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#X3DSoundProcessingNode"
                               appinfo="Base type for all sound processing nodes, which are used to enhance audio with filtering, delaying, changing gain, etc.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DTimeDependentNode"/>
            <AdditionalInheritance baseType="X3DSoundNode"/>
            <field name="channelCount" type="SFInt32" accessType="outputOnly"/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="gain" type="SFFloat" accessType="inputOutput" default="1"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"/>
            <field name="tailTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DSoundSourceNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#X3DSoundSourceNode"
                               appinfo="Nodes implementing X3DSoundSourceNode provide signal inputs to the audio graph.">
            <componentInfo name="Sound" level="1"/>
            <Inheritance baseType="X3DTimeDependentNode"/>
            <AdditionalInheritance baseType="X3DSoundNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="gain" type="SFFloat" accessType="inputOutput" default="1"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DStatement">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#scenegraph"
                               appinfo="X3DStatement is a marker interface that identifies statements relating to nonrenderable scene graph structure. X3DStatement does not extend from any other node type since it is not an explicit part of the X3D node interface hierarchy, and DEF/USE is not appropriate for such statements.">
            <componentInfo name="Core" level="1"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DTexture2DNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#X3DTexture2DNode"
                               appinfo="Base type for all nodes which specify 2D sources for texture images.">
            <componentInfo name="Texturing" level="1"/>
            <Inheritance baseType="X3DSingleTextureNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="repeatS"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"/>
            <field name="repeatT"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"/>
            <field name="textureProperties"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="TextureProperties"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="TextureProperties"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DTexture3DNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texture3D.html#X3DTexture3DNode"
                               appinfo="Base type for all nodes that specify 3D sources for texture images.">
            <componentInfo name="Texturing3D" level="1"/>
            <Inheritance baseType="X3DTextureNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="repeatR"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"/>
            <field name="repeatS"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"/>
            <field name="repeatT"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"/>
            <field name="textureProperties"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="TextureProperties"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="TextureProperties"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DTextureCoordinateNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#X3DTextureCoordinateNode"
                               appinfo="Base type for all nodes which specify texture coordinates.">
            <componentInfo name="Texturing" level="1"/>
            <Inheritance baseType="X3DGeometricPropertyNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DTextureNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#X3DTextureNode"
                               appinfo="Base type for all nodes which specify sources for texture images.">
            <componentInfo name="Texturing" level="1"/>
            <Inheritance baseType="X3DAppearanceChildNode"/>
            <field name="description" type="SFString" accessType="inputOutput"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DTextureProjectorNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/textureProjector.html#X3DTextureProjectorNode"
                               appinfo="Base type for all node types that specify texture projector nodes, which provide a form of lighting.">
            <componentInfo name="TextureProjection" level="4"/>
            <Inheritance baseType="X3DLightNode"/>
            <field name="ambientIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"/>
            <field name="aspectRatio"
                    type="SFFloat"
                    accessType="outputOnly"
                    minExclusive="0"/>
            <field name="color"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"/>
            <field name="description" type="SFString" accessType="inputOutput"/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 1"/>
            <field name="farDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    minInclusive="-1"/>
            <field name="global"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="intensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DLightNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="location"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="nearDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    minInclusive="-1"/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DLightNode"/>
            <field name="shadowIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"/>
            <field name="shadows"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DLightNode"/>
            <field name="texture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ImageTexture"/>
               <NodeContentModel name="MovieTexture"/>
               <NodeContentModel name="PixelTexture"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DTextureTransformNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#X3DTextureTransformNode"
                               appinfo="Base type for all nodes which specify a transformation of texture coordinates.">
            <componentInfo name="Texturing" level="1"/>
            <Inheritance baseType="X3DAppearanceChildNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DTimeDependentNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/time.html#X3DTimeDependentNode"
                               appinfo="Base type from which all time-dependent nodes are derived.">
            <componentInfo name="Time" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="description" type="SFString" accessType="inputOutput"/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive" type="SFBool" accessType="outputOnly"/>
            <field name="isPaused" type="SFBool" accessType="outputOnly">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DTouchSensorNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/pointingDeviceSensor.html#X3DTouchSensorNode"
                               appinfo="Base type for all touch-style pointing device sensors.">
            <componentInfo name="PointingDeviceSensor" level="1"/>
            <Inheritance baseType="X3DPointingDeviceSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"/>
            <field name="isOver"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DPointingDeviceSensorNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="touchTime" type="SFTime" accessType="outputOnly"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DTriggerNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/eventUtilities.html#X3DTriggerNode"
                               appinfo="Base type from which all trigger nodes are derived.">
            <componentInfo name="EventUtilities" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DVertexAttributeNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#X3DVertexAttributeNode"
                               appinfo="Base type for all nodes that specify per-vertex attribute information to the shader.">
            <componentInfo name="Shaders" level="1"/>
            <Inheritance baseType="X3DGeometricPropertyNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DViewpointNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html#X3DViewpointNode"
                               appinfo="Node type X3DViewpointNode defines a specific location in the local coordinate system from which the user may view the scene, and also defines a viewpoint binding stack.">
            <componentInfo name="Navigation" level="1"/>
            <Inheritance baseType="X3DBindableNode"/>
            <field name="bindTime"
                    type="SFTime"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"/>
            <field name="description" type="SFString" accessType="inputOutput">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="farDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isBound"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"/>
            <field name="jump"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="navigationInfo"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="NavigationInfo"/>
            <field name="nearDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"/>
            <field name="orientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"/>
            <field name="retainUserOffsets"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="set_bind"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DBindableNode"/>
            <field name="viewAll"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="NavigationInfo"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DViewportNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layering.html#X3DViewportNode"
                               appinfo="The X3DViewportNode abstract node type is the base node type for viewport nodes.">
            <componentInfo name="Layering" level="1"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DVolumeDataNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#X3DVolumeDataNode"
                               appinfo="The X3DVolumeDataNode abstract node type is the base type for all node types that describe volumetric data to be rendered.">
            <componentInfo name="VolumeRendering" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    baseType="bboxSizeType"/>
            <field name="dimensions"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    minExclusive="0"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
      <AbstractNodeType name="X3DVolumeRenderStyleNode">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#X3DVolumeRenderStyleNode"
                               appinfo="The X3DVolumeRenderStyleNode abstract node type is the base type for all node types that specify a specific visual rendering style to be used when rendering volume data.">
            <componentInfo name="VolumeRendering" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </AbstractNodeType>
   </AbstractNodeTypes>
   <ConcreteNodes>
      <ConcreteNode name="AcousticProperties">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#AcousticProperties"
                               appinfo="AcousticProperties specifies the interaction of sound waves with characteristics of geometric objects in the scene.">
            <componentInfo name="Shape" level="5"/>
            <Inheritance baseType="X3DAppearanceChildNode"/>
            <field name="absorption"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="specifies the sound absorption coefficient of a surface, meaning the ratio of sound intensity not reflected by a surface."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="diffuse"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="diffuse coefficient of sound reflection indicates how much of the incident sound energy is reflected back in multiple directions."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="refraction"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="sound refraction coefficient of a medium, which determines change in propagation direction of sound wave when obliquely crossing boundary between two mediums where its speed is different."/>
            <field name="specular"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="specular coefficient of sound reflection striking a plane surface, directly reflected back into space, where angle of reflection equals angle of incidence."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="acousticProperties" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Analyser">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Analyser"
                               appinfo="Analyser provides real-time frequency and time-domain analysis information, without any change to the input.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundProcessingNode"/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="Enables/disables node operation."/>
            <field name="fftSize"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="2048"
                    minInclusive="0"
                    description="fftSize represents size of Fast Fourier Transform (FFT) used to determine frequency domain."/>
            <field name="frequencyBinCount"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="1024"
                    minInclusive="0"
                    description="frequencyBinCount is half of fftSize and generally equates to number of data values available for the visualization."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="maxDecibels"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-30"
                    description="maxDecibels represents maximum power value in scaling range for FFT analysis data."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="minDecibels"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-100"
                    description="minDecibels represents minimum power value in scaling range for FFT analysis data."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="smoothingTimeConstant"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    minInclusive="0"
                    description="smoothingTimeConstant represents averaging constant during last analysis frame."/>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="tailTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Anchor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/networking.html#Anchor"
                               appinfo="Anchor is a Grouping node that can contain most nodes.">
            <componentInfo name="Networking" level="2"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="The [autoRefresh field has no effect, Anchor operation is only triggered by user selection."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="The [autoRefreshTimeLimit field has no effect, Anchor operation is only triggered by user selection."/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="The load field has no effect, Anchor operation is only triggered by user selection."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="parameter"
                    type="MFString"
                    accessType="inputOutput"
                    description="If provided, parameter tells the X3D player where to to redirect the loaded url."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Address of replacement world, or #ViewpointDEFName within the current scene, or alternate Web resource, activated by the user selecting Shape geometry within the Anchor children nodes.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesX3DUrlObject"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Appearance">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#Appearance"
                               appinfo="Appearance specifies the visual properties of geometry by containing the Material, ImageTexture/MovieTexture/PixelTexture, FillProperties, LineProperties, programmable shader nodes (ComposedShader, PackagedShader, ProgramShader) and TextureTransform nodes.">
            <componentInfo name="Shape" level="1"/>
            <Inheritance baseType="X3DAppearanceNode"/>
            <field name="acousticProperties"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="AcousticProperties"
                    description="Single contained acousticProperties node that can specify additional acoustic attributes applied to associated surface geometry.">
               <componentInfo name="Shape" level="5"/>
            </field>
            <field name="alphaCutoff"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.5"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="Threshold value used for pixel rendering either transparent or opaque, used when alphaMode=&#34;MASK&#34;."/>
            <field name="alphaMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="AUTO"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="alphaModeChoices"
                    baseType="SFString"
                    description="Provides options for control of alpha transparency handling for textures.">
               <enumeration value="AUTO"
                             appinfo="Material transparency is applied to texture transparency."/>
               <enumeration value="OPAQUE"
                             appinfo="Ignore alpha channel texture transparency, opaque."/>
               <enumeration value="MASK"
                             appinfo="Alpha-testing mode for transparent when alpha value less than 0.5 and opaque when greater than or equal to 0.5."/>
               <enumeration value="BLEND"
                             appinfo="Blend combines partial transparency of textures and materials."/>
            </field>
            <field name="fillProperties"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FillProperties"
                    description="Single contained FillProperties node that can specify additional visual attributes applied to polygonal areas of corresponding geometry, on top of whatever other appearance is already defined.">
               <componentInfo name="Shape" level="3"/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="lineProperties"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="LineProperties"
                    description="Single contained LineProperties node that can specify additional visual attributes applied to corresponding line geometry.">
               <componentInfo name="Shape" level="2"/>
            </field>
            <field name="material"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMaterialNode"
                    description="Single contained Material node that can specify visual attributes for lighting response (color types, transparency, etc."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pointProperties"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="PointProperties"
                    description="Single contained PointProperties node that can specify additional visual attributes applied to corresponding point geometry.">
               <componentInfo name="Shape" level="5"/>
            </field>
            <field name="shaders"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DShaderNode"
                    description="Zero or more contained programmable shader nodes (ComposedShader, PackagedShader, ProgramShader) that specify, in order of preference, author-programmed rendering characteristics.">
               <componentInfo name="Shape" level="3"/>
            </field>
            <field name="texture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTextureNode"
                    description="Single contained texture node (ImageTexture, MovieTexture, PixelTexture, MultiTexture) that maps image(s) to surface geometry."/>
            <field name="textureTransform"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTextureTransformNode"
                    description="Single contained TextureTransform node that defines 2D transformation applied to texture coordinates.">
               <componentInfo name="Shape" level="2"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="appearance" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="AppearanceChildContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Arc2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry2D.html#Arc2D"
                               appinfo="Arc2D is a line-based geometry node that defines a linear circular arc with center (0,0) in X-Y plane, with angles measured starting at positive x-axis and sweeping towards positive y-axis.">
            <componentInfo name="Geometry2D" level="2"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="endAngle"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1.570796"
                    minExclusive="-6.2832"
                    maxExclusive="6.2832"
                    description="Arc extends from startAngle counterclockwise to endAngle, in radians."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="radius"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1"
                    minExclusive="0"
                    description="circle radius, of which the arc is a portion."/>
            <field name="startAngle"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="0"
                    minExclusive="-6.2832"
                    maxExclusive="6.2832"
                    description="Arc extends from startAngle counterclockwise to endAngle, in radians."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ArcClose2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry2D.html#ArcClose2D"
                               appinfo="ArcClose2D is a polygonal geometry node that defines a linear circular arc, closed by PIE or CHORD line segments, with center (0,0) in X-Y plane, with angles measured starting at positive x-axis and sweeping towards positive y-axis.">
            <componentInfo name="Geometry2D" level="2"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="closureType"
                    type="SFString"
                    accessType="initializeOnly"
                    default="PIE"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="closureTypeChoices"
                    baseType="xs:NMTOKEN"
                    description="Defines whether pair of line segments connect to center (PIE), or single line-segment chord connects arc endpoints (CHORD).">
               <enumeration value="PIE"
                             appinfo="Connects arc endpoints to center, forming a pie wedge."/>
               <enumeration value="CHORD"
                             appinfo="Connects arc endpoints directly to each other, as in chord on a circle."/>
            </field>
            <field name="endAngle"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1.570796"
                    minExclusive="-6.2832"
                    maxExclusive="6.2832"
                    description="Arc extends from startAngle counterclockwise to endAngle, in radians."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="radius"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1"
                    minExclusive="0"
                    description="circle radius, of which the arc is a portion."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="startAngle"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="0"
                    minExclusive="-6.2832"
                    maxExclusive="6.2832"
                    description="Arc extends from startAngle counterclockwise to endAngle, in radians."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="AudioClip">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#AudioClip"
                               appinfo="AudioClip provides audio data used by parent Sound nodes.">
            <componentInfo name="Sound" level="1"/>
            <Inheritance baseType="X3DSoundSourceNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="duration_changed"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="-1"
                    description="or -1."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundSourceNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundSourceNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="loop"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Repeat indefinitely when loop=true, repeat only once when loop=false."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="pitch"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1.0"
                    minExclusive="0"
                    description="Multiplier for the rate at which sampled sound is played."/>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Location and filename of sound file or stream.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="source" type="containerFieldChoicesAudioClip"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="AudioDestination">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#AudioDestination"
                               appinfo="AudioDestination node represents the final audio destination and is what user ultimately hears, typically from the speakers of user device.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundDestinationNode"/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundDestinationNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundDestinationNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundDestinationNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundDestinationNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundDestinationNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="maxChannelCount"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="2"
                    minInclusive="0"
                    description="[maxChannelCount."/>
            <field name="mediaDeviceID"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundDestinationNode"
                    description="mediaDeviceID field provides ID parameter functionality."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Background">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalEffects.html#Background"
                               appinfo="Background simulates ground and sky, using vertical arrays of wraparound color values.">
            <componentInfo name="EnvironmentalEffects" level="1"/>
            <Inheritance baseType="X3DBackgroundNode"/>
            <field name="backUrl"
                    type="MFString"
                    accessType="inputOutput"
                    description="Image background panorama between ground/sky backdrop and scene's geometry.">
               <componentInfo name="Networking" level="4"/>
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="bindTime"
                    type="SFTime"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="event sent when node becomes active/inactive."/>
            <field name="bottomUrl"
                    type="MFString"
                    accessType="inputOutput"
                    description="Image background panorama between ground/sky backdrop and scene's geometry.">
               <componentInfo name="Networking" level="4"/>
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="frontUrl"
                    type="MFString"
                    accessType="inputOutput"
                    description="Image background panorama between ground/sky backdrop and scene's geometry.">
               <componentInfo name="Networking" level="4"/>
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="groundAngle"
                    type="MFFloat"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="1.5708"
                    inheritedFrom="X3DBackgroundNode"
                    description="The angle array values increase from 0.">
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="groundColor"
                    type="MFColor"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DBackgroundNode"
                    description="Color of the ground at the various angles on the ground partial sphere."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isBound"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="event true sent when node becomes active, event false sent when unbound by another node."/>
            <field name="leftUrl"
                    type="MFString"
                    accessType="inputOutput"
                    description="Image background panorama between ground/sky backdrop and scene's geometry.">
               <componentInfo name="Networking" level="4"/>
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="rightUrl"
                    type="MFString"
                    accessType="inputOutput"
                    description="Image background panorama between ground/sky backdrop and scene's geometry.">
               <componentInfo name="Networking" level="4"/>
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="set_bind"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Input event set_bind=true makes this node active, input event set_bind=false makes this node inactive."/>
            <field name="skyAngle"
                    type="MFFloat"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="3.1416"
                    inheritedFrom="X3DBackgroundNode"
                    description="The angle array values increase from 0.">
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="skyColor"
                    type="MFColor"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DBackgroundNode"
                    description="Color of the sky at various angles on the sky sphere.">
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="topUrl"
                    type="MFString"
                    accessType="inputOutput"
                    description="Image background panorama between ground/sky backdrop and scene's geometry.">
               <componentInfo name="Networking" level="4"/>
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="transparency"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DBackgroundNode"
                    baseType="unitIntervalType"
                    description="how &#34;clear&#34; the background is, allows underlying page to show through: 1."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="BallJoint">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#BallJoint"
                               appinfo="BallJoint represents an unconstrained joint between two bodies that pivot about a common anchor point.">
            <componentInfo name="RigidBodyPhysics" level="2"/>
            <Inheritance baseType="X3DRigidJointNode"/>
            <field name="anchorPoint"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="anchorPoint is joint center, specified in world coordinates."/>
            <field name="body1"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="body1AnchorPoint"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="body1AnchorPoint describes anchorPoint position relative to local coordinate reference frame."/>
            <field name="body2"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="body2AnchorPoint"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="body2AnchorPoint describes anchorPoint position relative to local coordinate reference frame."/>
            <field name="forceOutput"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;NONE&#34;"
                    inheritedFrom="X3DRigidJointNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="forceOutputValues"
                    baseType="MFString"
                    description="forceOutput controls which output fields are generated for the next frame.">
               <enumeration value="&#34;ALL&#34;" appinfo="all forceOutput fields computed."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no forceOutput fields computed."/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="joints" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="RigidJointNodeContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Billboard">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html#Billboard"
                               appinfo="Billboard is a Grouping node that can contain most nodes.">
            <componentInfo name="Navigation" level="2"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="axisOfRotation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    description="axisOfRotation direction is relative to local coordinate system."/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="BiquadFilter">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#BiquadFilter"
                               appinfo="BiquadFilter node is an AudioNode processor implementing common low-order filters.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundProcessingNode"/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="detune"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="The detune field forms a compound field together with playbackRate that together determine a computedPlaybackRate value."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="Enables/disables node operation."/>
            <field name="frequency"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="350"
                    minInclusive="0"
                    description="frequency at which the BiquadFilterNode operates, in Hz."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="qualityFactor"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    description="qualityFactor is Quality Factor (Q) of the respective filter algorithm."/>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="tailTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent."/>
            <field name="type"
                    type="SFString"
                    accessType="inputOutput"
                    default="LOWPASS"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="biquadTypeFilterChoices"
                    baseType="SFString"
                    description="type selects which BiquadFilter algorithm is used.">
               <enumeration value="LOWPASS"
                             alias="lowpass"
                             appinfo="X3D version of &#34;lowpass&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
               <enumeration value="HIGHPASS"
                             alias="highpass"
                             appinfo="X3D version of &#34;highpass&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
               <enumeration value="BANDPASS"
                             alias="bandpass"
                             appinfo="X3D version of &#34;bandpass&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
               <enumeration value="LOWSHELF"
                             alias="lowshelf"
                             appinfo="X3D version of &#34;lowshelf&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
               <enumeration value="HIGHSHELF"
                             alias="highshelf"
                             appinfo="X3D version of &#34;highshelf&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
               <enumeration value="PEAKING"
                             alias="peaking"
                             appinfo="X3D version of &#34;peaking&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
               <enumeration value="NOTCH"
                             alias="notch"
                             appinfo="X3D version of &#34;notch&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
               <enumeration value="ALLPASS"
                             alias="allpass"
                             appinfo="X3D version of &#34;allpass&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="BlendedVolumeStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#BlendedVolumeStyle"
                               appinfo="BlendedVolumeStyle combines rendering of two voxel data sets into one by blending voxel values.">
            <componentInfo name="VolumeRendering" level="3"/>
            <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeRenderStyleNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="renderStyle"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DComposableVolumeRenderStyleNode"
                    description="Single contained X3DComposableVolumeRenderStyleNode node that defines specific rendering technique for data in the voxels field, and the result is blended with parent VolumeData or SegmentedVoliumeData node."/>
            <field name="voxels"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture3DNode"
                    description="Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides second set of raw voxel information utilized by corresponding rendering styles."/>
            <field name="weightConstant1"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.5"
                    minInclusive="0"
                    maxInclusive="1"
                    description="weightConstant1 is used when weightFunction1=CONSTANT."/>
            <field name="weightConstant2"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.5"
                    minInclusive="0"
                    maxInclusive="1"
                    description="weightConstant2 is used when weightFunction2=CONSTANT."/>
            <field name="weightFunction1"
                    type="SFString"
                    accessType="inputOutput"
                    default="CONSTANT"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="volumeRenderingWeightFunctionChoices"
                    baseType="xs:NMTOKEN"
                    description="specifies 2D textures used to determine weight values when weight function is set to TABLE.">
               <enumeration value="CONSTANT" appinfo="Use weightConstant1."/>
               <enumeration value="ALPHA1" appinfo="Use O_v."/>
               <enumeration value="ALPHA2" appinfo="Use O_blend."/>
               <enumeration value="ONE_MINUS_ALPHA1" appinfo="Use 1 - O_v."/>
               <enumeration value="ONE_MINUS_ALPHA2" appinfo="Use 1 - O_blend."/>
               <enumeration value="TABLE" appinfo="Use table lookup value."/>
            </field>
            <field name="weightFunction2"
                    type="SFString"
                    accessType="inputOutput"
                    default="CONSTANT"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="volumeRenderingWeightFunctionChoices"
                    baseType="xs:NMTOKEN"
                    description="specifies 2D textures used to determine weight values when weight function is set to TABLE.">
               <enumeration value="CONSTANT" appinfo="Use weightConstant1."/>
               <enumeration value="ALPHA1" appinfo="Use O_v."/>
               <enumeration value="ALPHA2" appinfo="Use O_blend."/>
               <enumeration value="ONE_MINUS_ALPHA1" appinfo="Use 1 - O_v."/>
               <enumeration value="ONE_MINUS_ALPHA2" appinfo="Use 1 - O_blend."/>
               <enumeration value="TABLE" appinfo="Use table lookup value."/>
            </field>
            <field name="weightTransferFunction1"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode"
                    description="The weightTransferFunction1 and weightTransferFunction2 fields specify two-dimensional textures that are used to determine the weight values when the weight function is set to &#34;TABLE&#34;."/>
            <field name="weightTransferFunction2"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode"
                    description="The weightTransferFunction1 and weightTransferFunction2 fields specify two-dimensional textures that are used to determine the weight values when the weight function is set to &#34;TABLE&#34;."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="renderStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="Texture2DContentModel"/>
               <GroupContentModel name="VolumeRenderStyleContentModel"/>
               <GroupContentModel name="Texture3DContentModel"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="BooleanFilter">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/eventUtilities.html#BooleanFilter"
                               appinfo="BooleanFilter selectively passes true, false or negated events.">
            <componentInfo name="EventUtilities" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="inputFalse"
                    type="SFBool"
                    accessType="outputOnly"
                    description="inputFalse only passes a false value, which occurs when set_boolean is false."/>
            <field name="inputNegate"
                    type="SFBool"
                    accessType="outputOnly"
                    description="inputNegate is an output event that provides an opposite value by negating set_boolean input."/>
            <field name="inputTrue"
                    type="SFBool"
                    accessType="outputOnly"
                    description="inputTrue only passes a true value, which occurs when set_boolean input is true."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_boolean"
                    type="SFBool"
                    accessType="inputOnly"
                    description="set_boolean is the input value to be filtered."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="BooleanSequencer">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/eventUtilities.html#BooleanSequencer"
                               appinfo="BooleanSequencer generates periodic discrete Boolean values.">
            <componentInfo name="EventUtilities" level="1"/>
            <Inheritance baseType="X3DSequencerNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DSequencerNode"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array."/>
            <field name="keyValue"
                    type="MFBool"
                    accessType="inputOutput"
                    description="Output values for linear sequencing, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="next"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DSequencerNode"
                    description="Send next output value in keyValue array, and reset internal fraction field to match corresponding value in key array."/>
            <field name="previous"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DSequencerNode"
                    description="Send previous output value in keyValue array, and reset internal fraction field to match corresponding value in key array."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DSequencerNode"
                    description="set_fraction selects input key for corresponding keyValue output."/>
            <field name="value_changed"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Single intermittent output value determined by current key time and corresponding keyValue entry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="BooleanToggle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/eventUtilities.html#BooleanToggle"
                               appinfo="BooleanToggle maintains state and negates output when a true input is provided.">
            <componentInfo name="EventUtilities" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_boolean"
                    type="SFBool"
                    accessType="inputOnly"
                    description="If input event set_boolean is true, flip state by negating current value of the toggle field Hint: for logical consistency, input event set_boolean false has no effect (under review as part of Mantis issue 519)."/>
            <field name="toggle"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Persistent state value that gets toggled or reset."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="BooleanTrigger">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/eventUtilities.html#BooleanTrigger"
                               appinfo="BooleanTrigger converts time events to boolean true events.">
            <componentInfo name="EventUtilities" level="1"/>
            <Inheritance baseType="X3DTriggerNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_triggerTime"
                    type="SFTime"
                    accessType="inputOnly"
                    description="set_triggerTime provides input time event, typical event sent is TouchSensor touchTime."/>
            <field name="triggerTrue"
                    type="SFBool"
                    accessType="outputOnly"
                    description="triggerTrue outputs a true value whenever a triggerTime event is received."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="BoundaryEnhancementVolumeStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#BoundaryEnhancementVolumeStyle"
                               appinfo="BoundaryEnhancementVolumeStyle provides boundary enhancement for the volume rendering style.">
            <componentInfo name="VolumeRendering" level="2"/>
            <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
            <field name="boundaryOpacity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.9"
                    minInclusive="0"
                    maxInclusive="1"
                    description="boundaryOpacity k_gs is the factored amount of the gradient enhancement to use."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeRenderStyleNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="opacityFactor"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="2"
                    minInclusive="0"
                    description="opacityFactor k_ge is the power function to control the slope of the opacity curve to highlight the set of data."/>
            <field name="retainedOpacity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.2"
                    minInclusive="0"
                    maxInclusive="1"
                    description="retainedOpacity k_gc is the amount of initial opacity to mix into the output."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="renderStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="BoundedPhysicsModel">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#BoundedPhysicsModel"
                               appinfo="BoundedPhysicsModel provides user-defined geometrical boundaries for particle motion.">
            <componentInfo name="ParticleSystems" level="2"/>
            <Inheritance baseType="X3DParticlePhysicsModelNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DParticlePhysicsModelNode"
                    description="Enables/disables node operation."/>
            <field name="geometry"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DGeometryNode"
                    description="Single contained geometry node provides the geometry used for each particle when the parent ParticleSystem node has geometryType=GEOMETRY."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="physics" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="GeometryContentModel"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Box">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry3D.html#Box"
                               appinfo="Box is a geometry node specifying a rectangular cuboid.">
            <componentInfo name="Geometry3D" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="size"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="2 2 2"
                    description="size x y z in meters."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="BufferAudioSource">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#BufferAudioSource"
                               appinfo="BufferAudioSource node represents a memory-resident audio asset that can contain one or more channels.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundSourceNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="buffer"
                    type="MFFloat"
                    accessType="inputOutput"
                    minInclusive="-1"
                    maxInclusive="1"
                    description="buffer is a memory-resident audio asset that can contain one or more channels."/>
            <field name="bufferDuration"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="bufferDuration is duration in seconds to use from buffer field."/>
            <field name="bufferlength" type="SFInt32" accessType="outputOnly"/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="detune"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="The detune field forms a compound field together with playbackRate that together determine a computedPlaybackRate value."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundSourceNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundSourceNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="length"
                    type="SFInt32"
                    accessType="outputOnly"
                    minInclusive="0"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="loop"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Repeat indefinitely when loop=true, repeat only once when loop=false."/>
            <field name="loopEnd"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="loopEnd field is optional playhead position where looping ends if loop=true."/>
            <field name="loopStart"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="loopStart field is optional playhead position where looping begins if loop=true."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="numberOfChannels"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="numberOfChannels is number of audio channels found in this buffer source."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="playbackRate"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    description="playbackRate field is speed at which to render the audio stream, and forms a compound field together with detune field Hint: negative values play in reverse."/>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="sampleRate"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="sampleRate field is sample-frames per second."/>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Location and filename of sound file.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesSoundSource"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CADAssembly">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/CADGeometry.html#CADAssembly"
                               appinfo="CADAssembly holds a set of Computer-Aided Design (CAD) assemblies or parts grouped together.">
            <componentInfo name="CADGeometry" level="2"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <AdditionalInheritance baseType="X3DProductStructureChildNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DProductStructureChildNode"
                    description="Optional name for this particular CAD node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CADFace">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/CADGeometry.html#CADFace"
                               appinfo="CADFace holds geometry representing one face in a Computer-Aided Design (CAD) CADPart.">
            <componentInfo name="CADGeometry" level="2"/>
            <Inheritance baseType="X3DProductStructureChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DProductStructureChildNode"
                    description="Optional name for this particular CAD node."/>
            <field name="shape"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Shape|LOD|Transform"
                    description="Contained Shape for this CADPart."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Shape"/>
               <NodeContentModel name="LOD"/>
               <NodeContentModel name="Transform"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CADLayer">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/CADGeometry.html#CADLayer"
                               appinfo="CADLayer nodes define a hierarchy that shows layer structure for a Computer-Aided Design (CAD) model.">
            <componentInfo name="CADGeometry" level="2"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    description="Optional name for this particular CAD node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CADPart">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/CADGeometry.html#CADPart"
                               appinfo="CADPart is an atomic part that defines both coordinate-system location and the faces that constitute a part in a Computer-Aided Design (CAD) model.">
            <componentInfo name="CADGeometry" level="2"/>
            <Inheritance baseType="X3DProductStructureChildNode"/>
            <AdditionalInheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="CADFace"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="center"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Translation offset from origin of local coordinate system, applied prior to rotation or scaling."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="CADFace"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DProductStructureChildNode"
                    description="Optional name for this particular CAD node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="CADFace"/>
            <field name="rotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Orientation (axis, angle in radians) of children relative to local coordinate system."/>
            <field name="scale"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation."/>
            <field name="scaleOrientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)."/>
            <field name="translation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position (x, y, z in meters) of children relative to local coordinate system."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="CADFace"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CartoonVolumeStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#CartoonVolumeStyle"
                               appinfo="CartoonVolumeStyle generates cartoon-style non-photorealistic rendering of associated volumetric data.">
            <componentInfo name="VolumeRendering" level="3"/>
            <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
            <field name="colorSteps"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="4"
                    minInclusive="1"
                    maxInclusive="64"
                    description="Number of distinct colors taken from interpolated colors and used to render the object."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeRenderStyleNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="orthogonalColor"
                    type="SFColorRGBA"
                    accessType="inputOutput"
                    default="1 1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    description="orthogonalColor is used for surface normals that are orthogonal (perpendicular) to viewer's current location."/>
            <field name="parallelColor"
                    type="SFColorRGBA"
                    accessType="inputOutput"
                    default="0 0 0 1"
                    minInclusive="0"
                    maxInclusive="1"
                    description="parallelColor is used for surface normals that are orthogonal to viewer's current location."/>
            <field name="surfaceNormals"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture3DNode"
                    description="The surfaceNormals field contains a 3D texture with at least three component values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="renderStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="Texture3DContentModel"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ChannelMerger">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#ChannelMerger"
                               appinfo="ChannelMerger unites different input channels into a single output channel.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundChannelNode"/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundChannelNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundChannelNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundChannelNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundChannelNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ChannelSelector">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#ChannelSelector"
                               appinfo="ChannelSelector selects a single channel output from all input channels.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundChannelNode"/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundChannelNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundChannelNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundChannelNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="channelSelection"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="channelSelection is single channel of interest from those provided by input nodes."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundChannelNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ChannelSplitter">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#ChannelSplitter"
                               appinfo="ChannelSplitter separates the different channels of a single audio source into a set of monophonic output channels.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundChannelNode"/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundChannelNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundChannelNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundChannelNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node, making up a section of the audio graph."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundChannelNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="outputs"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode"
                    description="The outputs field is a set of output nodes receiving the split channels, and making up a section of the audio graph."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Circle2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry2D.html#Circle2D"
                               appinfo="Circle2D is a geometry node that defines a linear X-Y circle with center (0,0) in X-Y plane.">
            <componentInfo name="Geometry2D" level="2"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="radius"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1"
                    minExclusive="0"
                    description="circle radius."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ClipPlane">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#ClipPlane"
                               appinfo="ClipPlane specifies a single plane equation used to clip (i.">
            <componentInfo name="Rendering" level="5"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="plane"
                    type="SFVec4f"
                    accessType="inputOutput"
                    default="0 1 0 0"
                    minInclusive="-1"
                    maxInclusive="1"
                    description="If (a,b,c,d) is the plane, with the first three components being a normalized vector describing the plane's normal direction (and thus the fourth component d being distance from the origin), a point (x,y,z) is visible to the user, with regards to the clipping plane, if a*x+b*y+c*z+d is greater than 0."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CollidableOffset">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#CollidableOffset"
                               appinfo="CollidableOffset repositions geometry relative to center of owning body.">
            <componentInfo name="RigidBodyPhysics" level="1"/>
            <Inheritance baseType="X3DNBodyCollidableNode"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DNBodyCollidableNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="collidable"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="X3DNBodyCollidableNode"
                    description="The collidable field holds a reference to a single nested item of a collidable scene graph."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="rotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Orientation (axis, angle in radians) of children relative to local coordinate system."/>
            <field name="translation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Position (x, y, z in meters) of children relative to local coordinate system."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="CollidableOffset"/>
               <NodeContentModel name="CollidableShape"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CollidableShape">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#CollidableShape"
                               appinfo="CollidableShape connects the collision detection system, the rigid body model, and the renderable scene graph.">
            <componentInfo name="RigidBodyPhysics" level="1"/>
            <Inheritance baseType="X3DNBodyCollidableNode"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DNBodyCollidableNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="rotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Orientation (axis, angle in radians) of children relative to local coordinate system."/>
            <field name="shape"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="Shape"
                    description="The shape field provides a geometry proxy for specifying which geometry best represents the collidable object."/>
            <field name="translation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Position (x, y, z in meters) of children relative to local coordinate system."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DNBodyCollidableNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Shape"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Collision">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html#Collision"
                               appinfo="Collision detects camera-to-object contact using current view and NavigationInfo avatarSize.">
            <componentInfo name="Navigation" level="2"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <AdditionalInheritance baseType="X3DSensorNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="collideTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="Time of collision between camera (avatar) and geometry."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables collision detection for children and all descendants."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="isActive true/false events are sent when triggering the sensor."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="proxy"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="X3DChildNode"
                    description="The proxy node is used as a substitute for Collision children during collision detection, simplifying collision-intersection computations."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CollisionCollection">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#CollisionCollection"
                               appinfo="CollisionCollection holds a collection of objects that can be managed as a single entity for resolution of inter-object collisions.">
            <componentInfo name="RigidBodyPhysics" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="appliedParameters"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;BOUNCE&#34;"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="appliedParametersChoices"
                    baseType="MFString"
                    description="Default global parameters for collision outputs of rigid body physics system.">
               <enumeration value="&#34;BOUNCE&#34;" appinfo="The bounce field value is used."/>
               <enumeration value="&#34;USER_FRICTION&#34;"
                             appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used."/>
               <enumeration value="&#34;FRICTION_COEFFICIENT-2&#34;"
                             appinfo="Apply frictionCoefficients values."/>
               <enumeration value="&#34;ERROR_REDUCTION&#34;"
                             appinfo="Apply softnessErrorCorrection value."/>
               <enumeration value="&#34;CONSTANT_FORCE&#34;"
                             appinfo="Apply softnessConstantForceMix value."/>
               <enumeration value="&#34;SPEED-1&#34;"
                             appinfo="Apply first component of surfaceSpeed array."/>
               <enumeration value="&#34;SPEED-2&#34;"
                             appinfo="Apply second component of surfaceSpeed array."/>
               <enumeration value="&#34;SLIP-1&#34;" appinfo="Apply first component of slipFactors array."/>
               <enumeration value="&#34;SLIP-2&#34;" appinfo="Apply second component of slipFactors array."/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="bounce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="bounce indicates bounciness (0 = no bounce at all, 1 = maximum bounce)."/>
            <field name="collidables"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DNBodyCollisionSpaceNode|X3DNBodyCollidableNode"
                    description="CollisionCollection node holds a collection of objects in the collidables field that can be managed as a single entity for resolution of inter-object collisions with other groups of collidable objects."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Enables/disables node operation."/>
            <field name="frictionCoefficients"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="0 0"
                    minInclusive="0"
                    description="frictionCoefficients used for computing surface drag."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="minBounceSpeed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.1"
                    minInclusive="0"
                    description="minBounceSpeed m/s needed to bounce."/>
            <field name="slipFactors"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="0 0"
                    description="slipFactors used for computing surface drag."/>
            <field name="softnessConstantForceMix"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.0001"
                    minInclusive="0"
                    maxInclusive="1"
                    description="softnessConstantForceMix value applies a constant force value to make colliding surfaces appear to be somewhat soft."/>
            <field name="softnessErrorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    minInclusive="0"
                    maxInclusive="1"
                    description="softnessErrorCorrection indicates fraction of collision error fixed in a set of evaluations (0 = no error correction, 1 = all errors corrected in single step)."/>
            <field name="surfaceSpeed"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="0 0"
                    description="surfaceSpeed defines speed vectors for computing surface drag, if contact surfaces move independently of bodies."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="collider" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="CollidableOffset"/>
               <NodeContentModel name="CollidableShape"/>
               <NodeContentModel name="CollisionSpace"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CollisionSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#CollisionSensor"
                               appinfo="CollisionSensor generates collision-detection events.">
            <componentInfo name="RigidBodyPhysics" level="1"/>
            <Inheritance baseType="X3DSensorNode"/>
            <field name="collider"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="CollisionCollection"
                    description="The collider field specifies a CollisionCollection node that holds a collidables field of nodes and spaces that are to be included in collision-detection computations."/>
            <field name="contacts"
                    type="MFNode"
                    accessType="outputOnly"
                    acceptableNodeTypes="Contact">
               <componentInfo name="RigidBodyPhysics" level="2"/>
            </field>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="intersections"
                    type="MFNode"
                    accessType="outputOnly"
                    acceptableNodeTypes="X3DNBodyCollidableNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="isActive true/false events are sent when sensing starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="CollisionCollection"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CollisionSpace">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#CollisionSpace"
                               appinfo="CollisionSpace holds collection of objects considered together for resolution of inter-object collisions.">
            <componentInfo name="RigidBodyPhysics" level="1"/>
            <Inheritance baseType="X3DNBodyCollisionSpaceNode"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DNBodyCollisionSpaceNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DNBodyCollisionSpaceNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DNBodyCollisionSpaceNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="collidables"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DNBodyCollisionSpaceNode|X3DNBodyCollidableNode"
                    description="Collection of collidable objects as well as nested CollisionSpace collections."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DNBodyCollisionSpaceNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="useGeometry"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="useGeometry indicates whether collision-detection code checks down to level of geometry, or only make approximations using geometry bounds."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DNBodyCollisionSpaceNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="CollidableOffset"/>
               <NodeContentModel name="CollidableShape"/>
               <NodeContentModel name="CollisionSpace"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Color">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#Color"
                               appinfo="Color node defines a set of RGB color values that apply either to a sibling Coordinate|CoordinateDouble node, or else to a parent ElevationGrid node.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DColorNode"/>
            <field name="color"
                    type="MFColor"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="1"
                    description="The color field defines an array of 3-tuple RGB colors."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="color" type="containerFieldChoicesColor"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ColorChaser">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#ColorChaser"
                               appinfo="ColorChaser generates a series of SFColor values that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DChaserNode"/>
            <field name="duration"
                    type="SFTime"
                    accessType="initializeOnly"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DChaserNode"
                    description="duration is the time interval for filter response in seconds."/>
            <field name="initialDestination"
                    type="SFColor"
                    accessType="initializeOnly"
                    default="0.8 0.8 0.8"
                    minInclusive="0"
                    maxInclusive="1"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="SFColor"
                    accessType="initializeOnly"
                    default="0.8 0.8 0.8"
                    minInclusive="0"
                    maxInclusive="1"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_destination"
                    type="SFColor"
                    accessType="inputOnly"
                    minInclusive="0"
                    maxInclusive="1"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="SFColor"
                    accessType="inputOnly"
                    minInclusive="0"
                    maxInclusive="1"
                    description="set_value resets current value of this node."/>
            <field name="value_changed"
                    type="SFColor"
                    accessType="outputOnly"
                    minInclusive="0"
                    maxInclusive="1"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ColorDamper">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#ColorDamper"
                               appinfo="ColorDamper generates a series of RGB color values that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DDamperNode"/>
            <field name="initialDestination"
                    type="SFColor"
                    accessType="initializeOnly"
                    default="0.8 0.8 0.8"
                    minInclusive="0"
                    maxInclusive="1"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="SFColor"
                    accessType="initializeOnly"
                    default="0.8 0.8 0.8"
                    minInclusive="0"
                    maxInclusive="1"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="0"
                    maxInclusive="5"
                    inheritedFrom="X3DDamperNode"
                    description="order defines the number of internal filters (larger means smoother response, longer delay)."/>
            <field name="set_destination"
                    type="SFColor"
                    accessType="inputOnly"
                    minInclusive="0"
                    maxInclusive="1"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="SFColor"
                    accessType="inputOnly"
                    minInclusive="0"
                    maxInclusive="1"
                    description="set_value resets current value of this node."/>
            <field name="tau"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.3"
                    minInclusive="0"
                    inheritedFrom="X3DDamperNode"
                    description="tau is the exponential-decay time constant for filter response in seconds."/>
            <field name="tolerance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DDamperNode"
                    description="or -1."/>
            <field name="value_changed"
                    type="SFColor"
                    accessType="outputOnly"
                    minInclusive="0"
                    maxInclusive="1"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ColorInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#ColorInterpolator"
                               appinfo="ColorInterpolator generates a range of color values.">
            <componentInfo name="Interpolation" level="2"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array."/>
            <field name="keyValue"
                    type="MFColor"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="1"
                    description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding keyValue output."/>
            <field name="value_changed"
                    type="SFColor"
                    accessType="outputOnly"
                    minInclusive="0"
                    maxInclusive="1"
                    description="Linearly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ColorRGBA">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#ColorRGBA"
                               appinfo="ColorRGBA node defines a set of RGBA color values that apply either to a sibling Coordinate|CoordinateDouble node, or else to a parent ElevationGrid node.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DColorNode"/>
            <field name="color"
                    type="MFColorRGBA"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="1"
                    description="The color field defines an array of 4-tuple RGBA colors.">
               <componentInfo name="Rendering" level="4"/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="color" type="containerFieldChoicesColor"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ComposedCubeMapTexture">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalTexturing#ComposedCubeMapTexture"
                               appinfo="ComposedCubeMapTexture is a texture node that defines a cubic environment map source as an explicit set of images drawn from individual 2D texture nodes.">
            <componentInfo name="CubeMapTexturing" level="1"/>
            <Inheritance baseType="X3DEnvironmentTextureNode"/>
            <field name="backTexture"
                    synonym="back"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode"
                    description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes)."/>
            <field name="bottomTexture"
                    synonym="bottom"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode"
                    description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture, other texture nodes)."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="frontTexture"
                    synonym="front"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode"
                    description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="leftTexture"
                    synonym="left"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode"
                    description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodese)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="rightTexture"
                    synonym="right"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode"
                    description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes)."/>
            <field name="topTexture"
                    synonym="top"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode"
                    description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texture" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ImageTexture"/>
               <NodeContentModel name="PixelTexture"/>
               <NodeContentModel name="MovieTexture"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ComposedShader">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#ComposedShader"
                               appinfo="ComposedShader can contain field declarations, but no CDATA section of plain-text source code, since programs are composed from child ShaderPart nodes.">
            <componentInfo name="Shaders" level="1"/>
            <Inheritance baseType="X3DShaderNode"/>
            <AdditionalInheritance baseType="X3DProgrammableShaderObject"/>
            <field name="activate"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DShaderNode"
                    description="activate forces the shader to activate the contained objects."/>
            <field name="field"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="field"
                    description="Include a field statement for each field declaration in the ComposedShader node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"/>
            <field name="isSelected"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DShaderNode"
                    description="isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events."/>
            <field name="isValid"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DShaderNode"
                    description="isValid indicates whether current shader objects can be run as a shader program."/>
            <field name="language"
                    type="SFString"
                    accessType="initializeOnly"
                    inheritedFrom="X3DShaderNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="shaderLanguageValues"
                    baseType="xs:NMTOKEN"
                    description="The language field indicates to the X3D player which shading language is used.">
               <enumeration value="Cg" appinfo="nVidia Cg shading language."/>
               <enumeration value="GLSL" appinfo="OpenGL shading language (GLSL)."/>
               <enumeration value="HLSL" appinfo="Microsoft High Level Shading Language (HLSL)."/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="parts"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="ShaderPart"
                    description="ComposedShader can contain multiple ShaderPart nodes in the parts field."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="shaders" type="xs:NMTOKEN"/>
            <ContentModel>
               <FieldDeclaration minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ShaderPart"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ComposedTexture3D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texture3D.html#ComposedTexture3D"
                               appinfo="ComposedTexture3D defines a 3D image-based texture map as a collection of 2D texture sources at various depths.">
            <componentInfo name="Texturing3D" level="1"/>
            <Inheritance baseType="X3DTexture3DNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="repeatR"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DTexture3DNode"
                    description="Whether to repeat texture along R axis from front to back."/>
            <field name="repeatS"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DTexture3DNode"
                    description="Whether to repeat texture along S axis horizontally from left to right."/>
            <field name="repeatT"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DTexture3DNode"
                    description="Whether to repeat texture along T axis vertically from top to bottom."/>
            <field name="texture"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DTexture2DNode"
                    description="collection of 2D texture sources."/>
            <field name="textureProperties"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="TextureProperties"
                    inheritedFrom="X3DTexture3DNode"
                    description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texture" type="containerFieldChoicesX3DTexture3DNode"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="TextureProperties"/>
               <NodeContentModel name="ProtoInstance"/>
               <NodeContentModel name="ImageTexture"/>
               <NodeContentModel name="PixelTexture"/>
               <NodeContentModel name="MovieTexture"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ComposedVolumeStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#ComposedVolumeStyle"
                               appinfo="ComposedVolumeStyle allows compositing multiple rendering styles into single rendering pass.">
            <componentInfo name="VolumeRendering" level="3"/>
            <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeRenderStyleNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="renderStyle"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DComposableVolumeRenderStyleNode"
                    description="List of contributing rendering style nodes or node references that can be applied to the object."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="renderStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="VolumeRenderStyleContentModel"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Cone">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry3D.html#Cone"
                               appinfo="Cone is a geometry node.">
            <componentInfo name="Geometry3D" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="bottom"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether to draw bottom (other inside faces are not drawn)."/>
            <field name="bottomRadius"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1"
                    minExclusive="0"
                    description="Size in meters."/>
            <field name="height"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="2"
                    minExclusive="0"
                    description="Size in meters."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="side"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether to draw sides (other inside faces are not drawn)."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ConeEmitter">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#ConeEmitter"
                               appinfo="ConeEmitter generates all available particles from a specific point in space.">
            <componentInfo name="ParticleSystems" level="1"/>
            <Inheritance baseType="X3DParticleEmitterNode"/>
            <field name="angle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.7854"
                    minInclusive="0"
                    maxInclusive="3.1416"
                    description="Cone boundary for random distribution of particles about initial direction."/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    minInclusive="-1"
                    maxInclusive="1"
                    description="Initial direction from which particles emanate."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mass"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Basic mass of each particle, defined in mass base units (default is kilograms)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Enables/disables production of particles from this emitter node."/>
            <field name="position"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Point from which particles emanate."/>
            <field name="speed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement."/>
            <field name="surfaceArea"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Particle surface area in area base units (default is meters squared)."/>
            <field name="variation"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.25"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Multiplier for the randomness used to control the range of possible output values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="emitter" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Contact">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#Contact"
                               appinfo="Contact nodes are produced as output events when two collidable objects or spaces make contact.">
            <componentInfo name="RigidBodyPhysics" level="2"/>
            <Inheritance baseType="X3DNode"/>
            <field name="appliedParameters"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;BOUNCE&#34;"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="appliedParametersChoices"
                    baseType="MFString"
                    description="Default global parameters for collision outputs of rigid body physics system.">
               <enumeration value="&#34;BOUNCE&#34;" appinfo="The bounce field value is used."/>
               <enumeration value="&#34;USER_FRICTION&#34;"
                             appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used."/>
               <enumeration value="&#34;FRICTION_COEFFICIENT-2&#34;"
                             appinfo="Apply frictionCoefficients values."/>
               <enumeration value="&#34;ERROR_REDUCTION&#34;"
                             appinfo="Apply softnessErrorCorrection value."/>
               <enumeration value="&#34;CONSTANT_FORCE&#34;"
                             appinfo="Apply softnessConstantForceMix value."/>
               <enumeration value="&#34;SPEED-1&#34;"
                             appinfo="Apply first component of surfaceSpeed array."/>
               <enumeration value="&#34;SPEED-2&#34;"
                             appinfo="Apply second component of surfaceSpeed array."/>
               <enumeration value="&#34;SLIP-1&#34;" appinfo="Apply first component of slipFactors array."/>
               <enumeration value="&#34;SLIP-2&#34;" appinfo="Apply second component of slipFactors array."/>
            </field>
            <field name="body1"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    description="The body1 and body2 fields specify two top-level nodes that should be evaluated in the physics model as a single set of interactions with respect to each other."/>
            <field name="body2"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    description="The body1 and body2 fields specify two top-level nodes that should be evaluated in the physics model as a single set of interactions with respect to each other."/>
            <field name="bounce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="bounce indicates bounciness (0 = no bounce at all, 1 = maximum bounce)."/>
            <field name="contactNormal"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    description="contactNormal is unit vector describing normal between two colliding bodies."/>
            <field name="depth"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="depth indicates how deep the current intersection is along normal vector."/>
            <field name="frictionCoefficients"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="0 0"
                    minInclusive="0"
                    description="frictionCoefficients used for computing surface drag."/>
            <field name="frictionDirection"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    description="frictionDirection controls friction vector."/>
            <field name="geometry1"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNBodyCollidableNode"
                    description="The geometry1 and geometry2 fields specify collision-related information about body1 and body2."/>
            <field name="geometry2"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNBodyCollidableNode"
                    description="The geometry1 and geometry2 fields specify collision-related information about body1 and body2."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="minBounceSpeed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="minBounceSpeed m/s needed to bounce."/>
            <field name="position"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="position (x, y, z in meters) of exact location of collision."/>
            <field name="slipCoefficients"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="0 0"
                    description="slipCoefficients used for computing surface drag."/>
            <field name="softnessConstantForceMix"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.0001"
                    minInclusive="0"
                    maxInclusive="1"
                    description="softnessConstantForceMix value applies a constant force value to make colliding surfaces appear to be somewhat soft."/>
            <field name="softnessErrorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    minInclusive="0"
                    maxInclusive="1"
                    description="softnessErrorCorrection indicates fraction of collision error fixed in a set of evaluations (0 = no error correction, 1 = all errors corrected in single step)."/>
            <field name="surfaceSpeed"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="0 0"
                    description="surfaceSpeed defines speed vectors for computing surface drag, if contact surfaces move independently of bodies."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="contacts" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="RigidBody"/>
               <NodeContentModel name="CollidableOffset"/>
               <NodeContentModel name="CollidableShape"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Contour2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#Contour2D"
                               appinfo="Contour2D groups a set of curve segments into a composite contour.">
            <componentInfo name="NURBS" level="4"/>
            <Inheritance baseType="X3DNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="NurbsCurve2D|ContourPolyline2D"/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="NurbsCurve2D|ContourPolyline2D"
                    description="The children form a closed loop with first point of first child repeated as last point of last child, and the last point of a segment repeated as first point of the consecutive one."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="NurbsCurve2D|ContourPolyline2D"/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="trimmingContour" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="NurbsCurve2D"/>
               <NodeContentModel name="ContourPolyline2D"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ContourPolyline2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#ContourPolyline2D"
                               appinfo="ContourPolyline2D defines a linear curve segment as part of a trimming contour in the u-v domain of a NURBS surface.">
            <componentInfo name="NURBS" level="3"/>
            <Inheritance baseType="X3DNurbsControlCurveNode"/>
            <field name="controlPoint"
                    type="MFVec2d"
                    accessType="inputOutput"
                    inheritedFrom="X3DNurbsControlCurveNode"
                    description="controlPoint specifies the end points of each segment of the piecewise linear curve."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Convolver">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Convolver"
                               appinfo="Convolver performs a linear convolution on a given AudioBuffer, often used to achieve a reverberation effect.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundProcessingNode"/>
            <field name="buffer"
                    type="MFFloat"
                    accessType="inputOutput"
                    minInclusive="-1"
                    maxInclusive="1"
                    description="buffer is a memory-resident audio asset that can contain one or more channels."/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normalize"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="normalize controls whether or not the impulse response from the buffer is scaled by an equal-power normalization when the buffer field is set."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="tailTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Coordinate">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#Coordinate"
                               appinfo="Coordinate builds geometry by defining a set of 3D coordinate (triplet) point values.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DCoordinateNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="point"
                    type="MFVec3f"
                    accessType="inputOutput"
                    description="point contains a set of 3D coordinate (triplet) point values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="coord" type="containerFieldChoicesX3DCoordinateNode"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CoordinateChaser">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#CoordinateChaser"
                               appinfo="CoordinateChaser generates a series of coordinate arrays that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DChaserNode"/>
            <field name="duration"
                    type="SFTime"
                    accessType="initializeOnly"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DChaserNode"
                    description="duration is the time interval for filter response in seconds."/>
            <field name="initialDestination"
                    type="MFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="MFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_destination"
                    type="MFVec3f"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="MFVec3f"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="value_changed"
                    type="MFVec3f"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CoordinateDamper">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#CoordinateDamper"
                               appinfo="CoordinateDamper generates a series of coordinate arrays that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DDamperNode"/>
            <field name="initialDestination"
                    type="MFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="MFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="0"
                    maxInclusive="5"
                    inheritedFrom="X3DDamperNode"
                    description="order defines the number of internal filters (larger means smoother response, longer delay)."/>
            <field name="set_destination"
                    type="MFVec3f"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="MFVec3f"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="tau"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.3"
                    minInclusive="0"
                    inheritedFrom="X3DDamperNode"
                    description="tau is the exponential-decay time constant for filter response in seconds."/>
            <field name="tolerance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DDamperNode"
                    description="or -1."/>
            <field name="value_changed"
                    type="MFVec3f"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CoordinateDouble">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#CoordinateDouble"
                               appinfo="CoordinateDouble builds geometry by defining a set of 3D coordinate (triplet) point values.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DCoordinateNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="point"
                    type="MFVec3d"
                    accessType="inputOutput"
                    description="point contains a set of 3D coordinate (triplet) point values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="coord" type="containerFieldChoicesX3DCoordinateNode"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CoordinateInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#CoordinateInterpolator"
                               appinfo="CoordinateInterpolator linearly interpolates among a list of 3-tuple MFVec3f arrays, producing a single MFVec3f array that is fractional average between two nearest arrays in the list.">
            <componentInfo name="Interpolation" level="1"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array."/>
            <field name="keyValue"
                    type="MFVec3f"
                    accessType="inputOutput"
                    description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding keyValue output."/>
            <field name="value_changed"
                    type="MFVec3f"
                    accessType="outputOnly"
                    description="Linearly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CoordinateInterpolator2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#CoordinateInterpolator2D"
                               appinfo="CoordinateInterpolator2D generates a series of SFVec2f or MFVec2f 2-tuple float values.">
            <componentInfo name="Interpolation" level="3"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array."/>
            <field name="keyValue"
                    type="MFVec2f"
                    accessType="inputOutput"
                    description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding keyValue output."/>
            <field name="value_changed"
                    type="MFVec2f"
                    accessType="outputOnly"
                    description="Linearly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Cylinder">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry3D.html#Cylinder"
                               appinfo="Cylinder is a geometry node.">
            <componentInfo name="Geometry3D" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="bottom"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether to draw bottom (inside faces are never drawn)."/>
            <field name="height"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="2"
                    minExclusive="0"
                    description="Size in meters."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="radius"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1"
                    minExclusive="0"
                    description="Size in meters."/>
            <field name="side"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether to draw sides (inside faces are never drawn)."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="top"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether to draw top (inside faces are never drawn)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="CylinderSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/pointingDeviceSensor.html#CylinderSensor"
                               appinfo="CylinderSensor converts pointer motion (for example, a mouse or wand) into rotation values using an invisible cylinder aligned with local Y-axis.">
            <componentInfo name="PointingDeviceSensor" level="1"/>
            <Inheritance baseType="X3DDragSensorNode"/>
            <field name="autoOffset"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DDragSensorNode"
                    description="determines whether previous offset values are remembered/accumulated."/>
            <field name="axisRotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 1 0 0"
                    description="axisRotation determines local sensor coordinate system by rotating the local coordinate system."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="diskAngle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.26179167"
                    minInclusive="0"
                    maxInclusive="1.5708"
                    description="Help decide rotation behavior from initial relative bearing of pointer drag: acute angle whether cylinder sides or end-cap disks of virtual-geometry sensor are used for manipulation."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events."/>
            <field name="isOver"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DPointingDeviceSensorNode"
                    description="Hover over geometry by aiming the mouse (or pointing device) to generate isOver events."/>
            <field name="maxAngle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    minExclusive="-6.2832"
                    maxExclusive="6.2832"
                    description="clamps rotation_changed events within range of min/max values Hint: if minAngle &gt; maxAngle, rotation is not clamped."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="minAngle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minExclusive="-6.2832"
                    maxExclusive="6.2832"
                    description="clamps rotation_changed events within range of min/max values Hint: if minAngle &gt; maxAngle, rotation is not clamped."/>
            <field name="offset"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="Sends event and remembers last value sensed."/>
            <field name="rotation_changed"
                    type="SFRotation"
                    accessType="outputOnly"
                    description="rotation_changed events equal sum of relative bearing changes plus offset value about Y-axis in local coordinate system."/>
            <field name="trackPoint_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    inheritedFrom="X3DDragSensorNode"
                    description="trackPoint_changed events give intersection point of bearing with sensor's virtual geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Delay">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Delay"
                               appinfo="Delay causes a time delay between the arrival of input data and subsequent propagation to the output.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundProcessingNode"/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="delayTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="delayTime is duration of delay (in seconds) to apply."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="maxDelayTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    description="maxDelayTime is duration of maximum amount of delay (in seconds) that can be applied."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="tailTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="DirectionalLight">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/lighting.html#DirectionalLight"
                               appinfo="DirectionalLight might not be scoped by parent Group or Transform at levels 1 or 2.">
            <componentInfo name="Lighting" level="1"/>
            <Inheritance baseType="X3DLightNode"/>
            <field name="ambientIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"
                    description="Brightness of ambient (nondirectional background) emission from the light."/>
            <field name="color"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    description="color of light, applied to colors of objects."/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 -1"
                    description="Orientation vector of light relative to local coordinate system."/>
            <field name="global"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Global lights illuminate all objects within their volume of lighting influence."/>
            <field name="intensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DLightNode"
                    description="Brightness of direct emission from the light."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DLightNode"
                    description="Enables/disables this light source."/>
            <field name="shadowIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"
                    description="shadowIntensity field defines how much light is obscured by shapes that cast shadows, ranging from 0 (light not obscured, no visible shadows) to 1 (light completely obscured, full-intensity shadows)."/>
            <field name="shadows"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DLightNode"
                    description="shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="DISEntityManager">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/dis.html#DISEntityManager"
                               appinfo="DISEntityManager notifies a scene when new DIS ESPDU entities arrive or current entities leave.">
            <componentInfo name="DIS" level="2"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="addedEntities"
                    type="MFNode"
                    accessType="outputOnly"
                    acceptableNodeTypes="EspduTransform"
                    description="addedEntities array contains any new entities added during the last frame."/>
            <field name="address"
                    type="SFString"
                    accessType="inputOutput"
                    default="localhost"
                    description="Multicast network address, or else 'localhost'."/>
            <field name="applicationID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID."/>
            <field name="children"
                    synonym="mapping"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="DISEntityTypeMapping"
                    description="mapping field provides a mechanism for automatically creating an X3D model when a new entity arrives over the network."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="port"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Multicast network port, for example: 3000."/>
            <field name="removedEntities"
                    type="MFNode"
                    accessType="outputOnly"
                    acceptableNodeTypes="EspduTransform"
                    description="removedEntities output array provides EspduTransform references to any entities removed during last frame, either due to a timeout or from an explicit RemoveEntityPDU action."/>
            <field name="siteID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise siteID of the participating LAN or organization."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesDISEntityTypeMapping"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="DISEntityTypeMapping"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="DISEntityTypeMapping">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/dis.html#DISEntityTypeMapping"
                               appinfo="DISEntityTypeMapping provides a best-match mapping from DIS ESPDU entity type information to a specific X3D model, thus providing a visual and behavioral representation that best matches the entity type.">
            <componentInfo name="DIS" level="2"/>
            <Inheritance baseType="X3DInfoNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="category"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    maxInclusive="255"
                    description="Integer enumerations value for main category that describes the entity, semantics of each code varies according to domain."/>
            <field name="country"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    maxInclusive="65535"
                    description="Integer enumerations value for country to which the design of the entity or its design specification is attributed."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="domain"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    maxInclusive="255"
                    description="Integer enumerations value for domain in which the entity operates: LAND, AIR, SURFACE, SUBSURFACE, SPACE or OTHER."/>
            <field name="extra"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    maxInclusive="255"
                    description="Any extra information required to describe a particular entity."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="kind"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    maxInclusive="255"
                    description="Integer enumerations value for whether entity is a PLATFORM, MUNITION, LIFE_FORM, ENVIRONMENTAL, CULTURAL_FEATURE, SUPPLY, RADIO, EXPENDABLE, SENSOR_EMITTER or OTHER."/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="specific"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    maxInclusive="255"
                    description="Specific information about an entity based on the subcategory field."/>
            <field name="subcategory"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    maxInclusive="255"
                    description="Integer enumerations value for particular subcategory to which an entity belongs based on the category field."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Local and/or online addresses of X3D model of interest, for example: &#34;ExtrusionExampleShip.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesDISEntityTypeMapping"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Disk2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry2D.html#Disk2D"
                               appinfo="Disk2D is a geometry node that defines a filled (or partially filled) planar circle with center (0,0).">
            <componentInfo name="Geometry2D" level="2"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="innerRadius"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    description="Inner circle radius, greater than or equal to 0."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="outerRadius"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1"
                    minExclusive="0"
                    description="Outer radius of circle, greater than or equal to inner radius."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="DoubleAxisHingeJoint">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#DoubleAxisHingeJoint"
                               appinfo="DoubleAxisHingeJoint has two independent axes located around a common anchor point.">
            <componentInfo name="RigidBodyPhysics" level="2"/>
            <Inheritance baseType="X3DRigidJointNode"/>
            <field name="anchorPoint"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="anchorPoint is joint center, specified in world coordinates."/>
            <field name="axis1"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 0 0"
                    description="axis1 defines axis vector of joint connection to body1."/>
            <field name="axis2"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    description="axis2 defines axis vector of joint connection to body2."/>
            <field name="body1"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="body1AnchorPoint" type="SFVec3f" accessType="outputOnly"/>
            <field name="body1Axis" type="SFVec3f" accessType="outputOnly"/>
            <field name="body2"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="body2AnchorPoint" type="SFVec3f" accessType="outputOnly"/>
            <field name="body2Axis" type="SFVec3f" accessType="outputOnly"/>
            <field name="desiredAngularVelocity1"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="desiredAngularVelocity1 is goal rotation rate for hinge connection to body1."/>
            <field name="desiredAngularVelocity2"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="desiredAngularVelocity2 is goal rotation rate for hinge connection to body2."/>
            <field name="forceOutput"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;NONE&#34;"
                    inheritedFrom="X3DRigidJointNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="forceOutputValues"
                    baseType="MFString"
                    description="forceOutput controls which output fields are generated for the next frame.">
               <enumeration value="&#34;ALL&#34;" appinfo="all forceOutput fields computed."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no forceOutput fields computed."/>
            </field>
            <field name="hinge1Angle" type="SFFloat" accessType="outputOnly"/>
            <field name="hinge1AngleRate" type="SFFloat" accessType="outputOnly"/>
            <field name="hinge2Angle" type="SFFloat" accessType="outputOnly"/>
            <field name="hinge2AngleRate" type="SFFloat" accessType="outputOnly"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="maxAngle1"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="3.141592653"
                    description="maxAngle1 is maximum rotation angle for hinge."/>
            <field name="maxTorque1"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="maxTorque1 is maximum rotational torque applied by corresponding motor axis to achieve desiredAngularVelocity1."/>
            <field name="maxTorque2"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="maxTorque2 is maximum rotational torque applied by corresponding motor axis to achieve desiredAngularVelocity2."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="minAngle1"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-3.141592653"
                    description="minAngle1 is minimum rotation angle for hinge."/>
            <field name="stop1Bounce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="stop1Bounce is velocity factor for bounce back once stop point is reached."/>
            <field name="stop1ConstantForceMix"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.001"
                    description="stop1ConstantForceMix value applies a constant force value to make colliding surfaces appear to be somewhat soft."/>
            <field name="stop1ErrorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    description="stop1ErrorCorrection is fraction of error correction performed during time step once stop point is reached."/>
            <field name="suspensionErrorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    description="suspensionErrorCorrection describes how quickly the system resolves intersection errors due to floating-point inaccuracies."/>
            <field name="suspensionForce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="suspensionForce describes how quickly the system resolves intersection errors due to floating-point inaccuracies."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="joints" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="RigidJointNodeContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="DynamicsCompressor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#DynamicsCompressor"
                               appinfo="DynamicsCompressor node implements a dynamics compression effect, lowering volume of loudest parts of signal and raising volume of softest parts.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundProcessingNode"/>
            <field name="attack"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.003"
                    minInclusive="0"
                    description="The attack field is the amount of time (in seconds) to reduce the gain by 10dB."/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="knee"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="30"
                    minInclusive="0"
                    description="knee field contains a decibel value representing range above threshold where the curve smoothly transitions to compressed portion."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="ratio"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="12"
                    minInclusive="1"
                    maxInclusive="20"
                    description="ratio field represents amount of input change, in dB, needed for 1 dB change in output."/>
            <field name="reduction"
                    type="SFFloat"
                    accessType="outputOnly"
                    maxInclusive="0"
                    description="reduction field provides amount of gain reduction in dB currently applied by compressor to signal."/>
            <field name="release"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.25"
                    minInclusive="0"
                    description="release field represents amount of time (in seconds) to increase gain by 10dB."/>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="tailTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent."/>
            <field name="threshold"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-24"
                    minInclusive="-100"
                    maxInclusive="0"
                    description="threshold field represents decibel value above which compression starts taking effect."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="EaseInEaseOut">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#EaseInEaseOut"
                               appinfo="EaseInEaseOut enables gradual animation transitions by modifying TimeSensor fraction outputs.">
            <componentInfo name="Interpolation" level="4"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="easeInEaseOut"
                    type="MFVec2f"
                    accessType="inputOutput"
                    description="Array of paired values for easeOut fraction and easeIn fraction within each key interval."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to easeInEaseOut array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="modifiedFraction_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Interpolated output value determined by current key time, corresponding easeInEaseOut smoothing intervals, and corresponding key pair."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="set_fraction selects input fraction for computation of corresponding easeInEaseOut output value, modifiedFraction_changed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="EdgeEnhancementVolumeStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#EdgeEnhancementVolumeStyle"
                               appinfo="EdgeEnhancementVolumeStyle specifies edge enhancement for the volume rendering style.">
            <componentInfo name="VolumeRendering" level="2"/>
            <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
            <field name="edgeColor"
                    type="SFColorRGBA"
                    accessType="inputOutput"
                    default="0 0 0 1"
                    minInclusive="0"
                    maxInclusive="1"
                    description="color used to highlight edges."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeRenderStyleNode"
                    description="Enables/disables node operation."/>
            <field name="gradientThreshold"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.4"
                    minInclusive="0"
                    maxInclusive="3.1416"
                    description="minimum angle (in radians) away from view-direction vector for surface normal before applying enhancement."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="surfaceNormals"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture3DNode"
                    description="The surfaceNormals field contains a 3D texture with at least three component values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="renderStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="Texture3DContentModel"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ElevationGrid">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry3D.html#ElevationGrid"
                               appinfo="ElevationGrid is a geometry node defining a rectangular height field, with default values for a 1m by 1m square at height 0.">
            <componentInfo name="Geometry3D" level="3"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).">
               <componentInfo name="Geometry3D" level="4"/>
            </field>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorPerVertex field."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="Whether Color node color values are applied to each point vertex (true) or per quadrilateral (false)."/>
            <field name="creaseAngle"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    description="creaseAngle defines angle (in radians) for determining whether adjacent polygons are drawn with sharp edges or smooth shading."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="height"
                    type="MFFloat"
                    accessType="initializeOnly"
                    default="0 0 0 0"
                    description="Grid array of height vertices with upward direction along +Y axis, with xDimension rows and zDimension columns."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="Whether Normal node vector values are applied to each point vertex (true) or per quadrilateral (false)."/>
            <field name="set_height"
                    type="MFFloat"
                    accessType="inputOnly"
                    description="Grid array of height vertices with upward direction along +Y axis, with xDimension rows and zDimension columns."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode"
                    description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="xDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="2"
                    minInclusive="0"
                    description="Number of elements in the height array along X direction."/>
            <field name="xSpacing"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1.0"
                    minExclusive="0"
                    description="Meters distance between grid-array vertices along X direction."/>
            <field name="zDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="2"
                    minInclusive="0"
                    description="Number of elements in the height array along Z direction."/>
            <field name="zSpacing"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1.0"
                    minExclusive="0"
                    description="Meters distance between grid-array vertices along Z direction."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="FloatVertexAttribute"/>
               <NodeContentModel name="Matrix3VertexAttribute"/>
               <NodeContentModel name="Matrix4VertexAttribute"/>
               <NodeContentModel name="Color"/>
               <NodeContentModel name="ColorRGBA"/>
               <NodeContentModel name="FogCoordinate"/>
               <NodeContentModel name="Normal"/>
               <NodeContentModel name="TextureCoordinate"/>
               <NodeContentModel name="TextureCoordinate3D"/>
               <NodeContentModel name="TextureCoordinate4D"/>
               <NodeContentModel name="TextureCoordinateGenerator"/>
               <NodeContentModel name="MultiTextureCoordinate"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="EspduTransform">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/dis.html#EspduTransform"
                               appinfo="EspduTransform is a networked Transform node that can contain most nodes.">
            <componentInfo name="DIS" level="1"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <AdditionalInheritance baseType="X3DNetworkSensorNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="address"
                    type="SFString"
                    accessType="inputOutput"
                    default="localhost"
                    description="Multicast network address, or else 'localhost'; Example: 224."/>
            <field name="applicationID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise applicationID is unique for application at that site."/>
            <field name="articulationParameterArray"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="Information required for representation of the entity's visual appearance and position of its articulated parts."/>
            <field name="articulationParameterChangeIndicatorArray"
                    type="MFInt32"
                    accessType="inputOutput"
                    description="Array of change counters, each incremented when an articulated parameter is updated."/>
            <field name="articulationParameterCount"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Number of articulated parameters attached to this entity state PDU."/>
            <field name="articulationParameterDesignatorArray"
                    type="MFInt32"
                    accessType="inputOutput"
                    description="Array of designators for each articulated parameter."/>
            <field name="articulationParameterIdPartAttachedToArray"
                    type="MFInt32"
                    accessType="inputOutput"
                    description="Array of ID parts that each articulated parameter is attached to."/>
            <field name="articulationParameterTypeArray"
                    type="MFInt32"
                    accessType="inputOutput"
                    description="Array of type enumerations for each articulated parameter element."/>
            <field name="articulationParameterValue0_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Get element of user-defined payload array."/>
            <field name="articulationParameterValue1_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Get element of user-defined payload array."/>
            <field name="articulationParameterValue2_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Get element of user-defined payload array."/>
            <field name="articulationParameterValue3_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Get element of user-defined payload array."/>
            <field name="articulationParameterValue4_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Get element of user-defined payload array."/>
            <field name="articulationParameterValue5_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Get element of user-defined payload array."/>
            <field name="articulationParameterValue6_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Get element of user-defined payload array."/>
            <field name="articulationParameterValue7_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Get element of user-defined payload array."/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="center"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Translation offset from origin of local coordinate system."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="collideTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="When were we collided with? Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events."/>
            <field name="collisionType"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumeration for type of collision: ELASTIC or INELASTIC."/>
            <field name="deadReckoning"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Dead reckoning algorithm being used to project position/orientation with velocities/accelerations."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="detonateTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="When were we detonated?."/>
            <field name="detonationLocation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="World coordinates for detonationLocation."/>
            <field name="detonationRelativeLocation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Relative coordinates for detonation location."/>
            <field name="detonationResult"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumeration for type of detonation and result that occurred."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Enables/disables the sensor node."/>
            <field name="entityCategory"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumerations value for main category that describes the entity, semantics of each code varies according to domain."/>
            <field name="entityCountry"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumerations value for country to which the design of the entity or its design specification is attributed."/>
            <field name="entityDomain"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumerations value for domain in which the entity operates: LAND, AIR, SURFACE, SUBSURFACE, SPACE or OTHER."/>
            <field name="entityExtra"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Any extra information required to describe a particular entity."/>
            <field name="entityID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise entityID is a unique ID for a single entity within that application."/>
            <field name="entityKind"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumerations value for whether entity is a PLATFORM, MUNITION, LIFE_FORM, ENVIRONMENTAL, CULTURAL_FEATURE, SUPPLY, RADIO, EXPENDABLE, SENSOR_EMITTER or OTHER."/>
            <field name="entitySpecific"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Specific information about an entity based on the Subcategory field."/>
            <field name="entitySubcategory"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumerations value for particular subcategory to which an entity belongs based on the category field."/>
            <field name="eventApplicationID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise eventApplicationID is unique for events generated from application at that site."/>
            <field name="eventEntityID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="For a given event, simulation/exercise entityID is a unique ID for a single entity within that application."/>
            <field name="eventNumber"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Sequential number of each event issued by an application."/>
            <field name="eventSiteID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise siteID of the participating LAN or organization."/>
            <field name="fired1"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Has the primary weapon (Fire PDU) been fired?."/>
            <field name="fired2"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Has the secondary weapon (Fire PDU) been fired?."/>
            <field name="firedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="When did we shoot a weapon (Fire PDU)? Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events."/>
            <field name="fireMissionIndex"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="."/>
            <field name="firingRange"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="Range (three dimension, straight-line distance) that the firing entity's fire control system has assumed for computing the fire control solution if a weapon and if the value is known."/>
            <field name="firingRate"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Rate at which munitions are fired."/>
            <field name="forceID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="forceID determines the team membership of the issuing entity, and whether FRIENDLY OPPOSING or NEUTRAL or OTHER."/>
            <field name="fuse"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumerations value for type of fuse on the munition."/>
            <field name="geoCoords"
                    type="SFVec3d"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Geographic location (specified in current geoSystem coordinates) for children geometry (specified in relative coordinate system, in meters)."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Have we received a network update recently? Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events."/>
            <field name="isCollided"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Has a matching CollisionPDU reported a collision? Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events."/>
            <field name="isDetonated"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Has a matching DetonationPDU reported a detonation? Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events."/>
            <field name="isNetworkReader"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='remote' (listen to network as copy of remote entity)."/>
            <field name="isNetworkWriter"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='master' (output to network as master entity at writeInterval)."/>
            <field name="isRtpHeaderHeard"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether incoming DIS packets have an RTP header prepended."/>
            <field name="isStandAlone"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='local' (ignore network but still respond to local events)."/>
            <field name="linearAcceleration"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Acceleration of the entity relative to the rotating Earth in either world or entity coordinates, depending on the dead reckoning algorithm used."/>
            <field name="linearVelocity"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Velocity of the entity relative to the rotating Earth in either world or entity coordinates, depending on the dead reckoning algorithm used."/>
            <field name="marking"
                    type="SFString"
                    accessType="inputOutput"
                    description="Maximum of 11 characters for simple entity label."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="multicastRelayHost"
                    type="SFString"
                    accessType="inputOutput"
                    description="Fallback server address if multicast not available locally."/>
            <field name="multicastRelayPort"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Fallback server port if multicast not available locally."/>
            <field name="munitionApplicationID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="munitionApplicationID, unique for application at that site."/>
            <field name="munitionEndPoint"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Final point of the munition path from firing weapon to detonation or impact, in exercise coordinates."/>
            <field name="munitionEntityID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="munitionEntityID is unique ID for entity firing munition within that application."/>
            <field name="munitionQuantity"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Quantity of munitions fired."/>
            <field name="munitionSiteID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Munition siteID of the participating LAN or organization."/>
            <field name="munitionStartPoint"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Initial point of the munition path from firing weapon to detonation or impact, in exercise coordinates."/>
            <field name="networkMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="standAlone"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="networkModeChoices"
                    baseType="xs:NMTOKEN"
                    description="Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network.">
               <enumeration value="standAlone"
                             appinfo="ignore network but still respond to events in local scene."/>
               <enumeration value="networkReader"
                             appinfo="listen to network and read PDU packets at readInterval, act as remotely linked copy of entity."/>
               <enumeration value="networkWriter"
                             appinfo="send PDU packets to network at writeInterval, act as master entity."/>
            </field>
            <field name="port"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Network connection port number (EXAMPLE 3000) for sending or receiving DIS messages."/>
            <field name="readInterval"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.1"
                    minInclusive="0"
                    description="Seconds between read updates, 0 means no reading."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="rotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Orientation of children relative to local coordinate system, usually read from (or written to) remote, networked EspduTransform nodes."/>
            <field name="rtpHeaderExpected"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Whether RTP headers are prepended to DIS PDUs."/>
            <field name="scale"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation."/>
            <field name="scaleOrientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)."/>
            <field name="set_articulationParameterValue0"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="Set element of user-defined payload array."/>
            <field name="set_articulationParameterValue1"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="Set element of user-defined payload array."/>
            <field name="set_articulationParameterValue2"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="Set element of user-defined payload array."/>
            <field name="set_articulationParameterValue3"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="Set element of user-defined payload array."/>
            <field name="set_articulationParameterValue4"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="Set element of user-defined payload array."/>
            <field name="set_articulationParameterValue5"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="Set element of user-defined payload array."/>
            <field name="set_articulationParameterValue6"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="Set element of user-defined payload array."/>
            <field name="set_articulationParameterValue7"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="Set element of user-defined payload array."/>
            <field name="siteID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise siteID of the participating LAN or organization."/>
            <field name="timestamp"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    description="DIS timestamp received from latest PDU update, converted to X3D SFTime units."/>
            <field name="translation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position of children relative to local coordinate system, usually read from (or written to) remote, networked EspduTransform nodes."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="warhead"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumerations value for type of warhead on the munition."/>
            <field name="writeInterval"
                    type="SFTime"
                    accessType="inputOutput"
                    default="1.0"
                    minInclusive="0"
                    description="Seconds between write updates, 0 means no writing (sending)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ExplosionEmitter">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#ExplosionEmitter"
                               appinfo="ExplosionEmitter generates all particles from a specific point in space at the initial time enabled.">
            <componentInfo name="ParticleSystems" level="1"/>
            <Inheritance baseType="X3DParticleEmitterNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mass"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Basic mass of each particle, defined in mass base units (default is kilograms)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Enables/disables production of particles from this emitter node."/>
            <field name="position"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Point from which particles emanate."/>
            <field name="speed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement."/>
            <field name="surfaceArea"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Particle surface area in area base units (default is meters squared)."/>
            <field name="variation"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.25"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Multiplier for the randomness used to control the range of possible output values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="emitter" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Extrusion">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry3D.html#Extrusion"
                               appinfo="Extrusion is a geometry node that sequentially stretches a 2D cross section along a 3D-spine path in the local coordinate system, creating an outer hull.">
            <componentInfo name="Geometry3D" level="4"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="beginCap"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="Whether beginning cap is drawn (similar to Cylinder top cap)."/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="The ccw field indicates counterclockwise ordering of vertex-coordinates orientation."/>
            <field name="convex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="The convex field is a hint to renderers whether all polygons in a shape are convex (true), or possibly concave (false)."/>
            <field name="creaseAngle"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    description="creaseAngle defines angle (in radians) where adjacent polygons are drawn with sharp edges or smooth shading."/>
            <field name="crossSection"
                    type="MFVec2f"
                    accessType="initializeOnly"
                    default="1 1 1 -1 -1 -1 -1 1 1 1"
                    description="The crossSection array defines a silhouette outline of the outer Extrusion surface."/>
            <field name="endCap"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="Whether end cap is drawn (similar to Cylinder bottom cap)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="orientation"
                    type="MFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="The orientation array is a list of axis-angle 4-tuple values applied at each spine-aligned cross-section plane."/>
            <field name="scale"
                    type="MFVec2f"
                    accessType="inputOutput"
                    default="1 1"
                    description="scale is a list of 2D-scale parameters applied at each spine-aligned cross-section plane."/>
            <field name="set_crossSection"
                    type="MFVec2f"
                    accessType="inputOnly"
                    description="The crossSection array defines a silhouette outline of the outer Extrusion surface."/>
            <field name="set_orientation"
                    type="MFRotation"
                    accessType="inputOnly"
                    description="The orientation array is a list of axis-angle 4-tuple values applied at each spine-aligned cross-section plane."/>
            <field name="set_scale"
                    type="MFVec2f"
                    accessType="inputOnly"
                    description="scale is a list of 2D-scale parameters applied at each spine-aligned cross-section plane."/>
            <field name="set_spine"
                    type="MFVec3f"
                    accessType="inputOnly"
                    description="The spine array defines a center-line sequence of 3D points that define a piecewise-linear curve forming a series of connected vertices."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="spine"
                    type="MFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0 0 1 0"
                    description="The spine array defines a center-line sequence of 3D points that define a piecewise-linear curve forming a series of connected vertices."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="FillProperties">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#FillProperties"
                               appinfo="FillProperties indicates whether appearance is filled or hatched for associated geometry nodes inside the same Shape.">
            <componentInfo name="Shape" level="3"/>
            <Inheritance baseType="X3DAppearanceChildNode"/>
            <field name="filled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether or not associated geometry is filled."/>
            <field name="hatchColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    description="Color of the hatch pattern."/>
            <field name="hatched"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether or not associated geometry is hatched."/>
            <field name="hatchStyle"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    simpleType="hatchStyleValues"
                    baseType="SFInt32"
                    description="hatchStyle selects a hatch pattern from ISO/IEC 9973 International Register of Graphical Items.">
               <enumeration value="1"
                             alias="HORIZONTAL"
                             appinfo="Horizontal equally spaced parallel lines."/>
               <enumeration value="2"
                             alias="VERTICAL"
                             appinfo="Vertical equally spaced parallel lines."/>
               <enumeration value="3"
                             alias="POSITIVE_SLOPE"
                             appinfo="Positive slope equally spaced parallel lines."/>
               <enumeration value="4"
                             alias="NEGATIVE_SLOPE"
                             appinfo="Negative slope equally spaced parallel lines."/>
               <enumeration value="5"
                             alias="HORIZONTAL_VERTICAL_CROSSHATCH"
                             appinfo="Horizontal/vertical crosshatch."/>
               <enumeration value="6"
                             alias="POSITIVE_NEGATIVE_SLOPE_CROSSHATCH"
                             appinfo="Positive slope/negative slope crosshatch."/>
               <enumeration value="7"
                             alias="CAST_IRON"
                             appinfo="(cast iron or malleable iron and general use for all materials)."/>
               <enumeration value="8" alias="STEEL" appinfo="(steel)."/>
               <enumeration value="9"
                             alias="BRONZE_BRASS_COPPER_COMPOSITIONS"
                             appinfo="(bronze, brass, copper, and compositions)."/>
               <enumeration value="10"
                             alias="WHITE_METAL_ZINC_LEAD_BABBIT_ALLOYS"
                             appinfo="(white metal, zinc, lead, babbit, and alloys)."/>
               <enumeration value="11"
                             alias="MAGNESIUM_ALUMINUM_ALLOYS"
                             appinfo="(magnesium, aluminum, and aluminum alloys)."/>
               <enumeration value="12"
                             alias="RUBBER_PLASTIC_ELECTRICAL_INSULATION"
                             appinfo="(rubber, plastic, and electrical insulation)."/>
               <enumeration value="13"
                             alias="CORK_FELT_FABRIC_LEATHER_FIBRE"
                             appinfo="(cork, felt, fabric, leather, and fibre/fiber)."/>
               <enumeration value="14"
                             alias="THERMAL_INSULATION"
                             appinfo="(thermal insulation)."/>
               <enumeration value="15"
                             alias="TITANIUM"
                             appinfo="(titanium and refi-actory material)."/>
               <enumeration value="16"
                             alias="MARBLE_SLATE_PORCELAIN_GLASS"
                             appinfo="(marble, slate, porcelain, glass, etc.)."/>
               <enumeration value="17" alias="EARTH" appinfo="(earth)."/>
               <enumeration value="18" alias="SAND" appinfo="(sand)."/>
               <enumeration value="19" alias="REPEATING_DOT" appinfo="(repeating dot)."/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="fillProperties" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="FloatVertexAttribute">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#FloatVertexAttribute"
                               appinfo="FloatVertexAttribute defines a set of per-vertex single-precision floating-point attributes.">
            <componentInfo name="Shaders" level="1"/>
            <Inheritance baseType="X3DVertexAttributeNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DVertexAttributeNode"
                    baseType="xs:NMTOKEN"
                    description="Required name for this particular VertexAttribute instance."/>
            <field name="numComponents"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="4"
                    minInclusive="1"
                    maxInclusive="4"
                    description="numComponents pecifies how many consecutive floating-point values should be grouped together per vertex."/>
            <field name="value"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="value specifies an arbitrary collection of floating-point values that will be passed to the shader as per-vertex information."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="attrib" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Fog">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalEffects.html#Fog"
                               appinfo="Fog simulates atmospheric effects by blending distant objects with fog color.">
            <componentInfo name="EnvironmentalEffects" level="2"/>
            <Inheritance baseType="X3DBindableNode"/>
            <AdditionalInheritance baseType="X3DFogObject"/>
            <field name="bindTime"
                    type="SFTime"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Event sent reporting timestamp when node becomes active/inactive."/>
            <field name="color"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DFogObject"
                    description="Fog color."/>
            <field name="fogType"
                    type="SFString"
                    accessType="inputOutput"
                    default="LINEAR"
                    inheritedFrom="X3DFogObject"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="fogTypeChoices"
                    baseType="xs:NMTOKEN"
                    description="Specifies algorithm for rate of increasing Fog, either LINEAR or EXPONENTIAL.">
               <enumeration value="LINEAR" appinfo="linear blending as a function of distance."/>
               <enumeration value="EXPONENTIAL"
                             appinfo="exponential blending as a function of distance."/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isBound"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_bind"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Receiving event set_bind=true activates and binds this node at the top of the binding stack."/>
            <field name="visibilityRange"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DFogObject"
                    description="Distance in meters where objects are totally obscured by the fog, using local coordinate system."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="FogCoordinate">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalEffects.html#FogCoordinate"
                               appinfo="FogCoordinate defines a set of explicit fog depths on a per-vertex basis, overriding Fog visibilityRange.">
            <componentInfo name="EnvironmentalEffects" level="4"/>
            <Inheritance baseType="X3DGeometricPropertyNode"/>
            <field name="depth"
                    type="MFFloat"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="1"
                    description="depth contains a set of 3D coordinate (triplet) point values."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="fogCoord" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="FontStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/text.html#FontStyle"
                               appinfo="FontStyle is an X3DFontStyleNode that defines the size, family, justification, and other styles used by Text nodes.">
            <componentInfo name="Text" level="1"/>
            <Inheritance baseType="X3DFontStyleNode"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="family"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;SERIF&#34;"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="fontFamilyValues"
                    baseType="MFString"
                    description="Array of quoted font family names in preference order, browsers use the first supported family.">
               <enumeration value="&#34;SANS&#34;"
                             appinfo="default font family for sans-serif font such as Helvetica."/>
               <enumeration value="&#34;SERIF&#34;"
                             appinfo="default font family for serif font such as Times-Roman."/>
               <enumeration value="&#34;TYPEWRITER&#34;"
                             appinfo="default font family for a fixed-pitch font such as Courier."/>
            </field>
            <field name="horizontal"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether text direction is horizontal (true) or vertical (false)."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="justify"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;BEGIN&#34;"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="justifyChoices"
                    baseType="MFString"
                    description="The justify field determines horizontal and vertical alignment of text layout, relative to the origin of the object coordinate system.">
               <enumeration value="&#34;MIDDLE&#34;"/>
               <enumeration value="&#34;MIDDLE&#34; &#34;BEGIN&#34;"/>
               <enumeration value="&#34;MIDDLE&#34; &#34;END&#34;"/>
               <enumeration value="&#34;MIDDLE&#34; &#34;FIRST&#34;"/>
               <enumeration value="&#34;MIDDLE&#34; &#34;MIDDLE&#34;"/>
               <enumeration value="&#34;BEGIN&#34;"/>
               <enumeration value="&#34;BEGIN&#34; &#34;BEGIN&#34;"/>
               <enumeration value="&#34;BEGIN&#34; &#34;END&#34;"/>
               <enumeration value="&#34;BEGIN&#34; &#34;FIRST&#34;"/>
               <enumeration value="&#34;BEGIN&#34; &#34;MIDDLE&#34;"/>
               <enumeration value="&#34;END&#34;"/>
               <enumeration value="&#34;END&#34; &#34;BEGIN&#34;"/>
               <enumeration value="&#34;END&#34; &#34;END&#34;"/>
               <enumeration value="&#34;END&#34; &#34;FIRST&#34;"/>
               <enumeration value="&#34;END&#34; &#34;MIDDLE&#34;"/>
               <enumeration value="&#34;FIRST&#34;"/>
               <enumeration value="&#34;FIRST&#34; &#34;BEGIN&#34;"/>
               <enumeration value="&#34;FIRST&#34; &#34;END&#34;"/>
               <enumeration value="&#34;FIRST&#34; &#34;FIRST&#34;"/>
               <enumeration value="&#34;FIRST&#34; &#34;MIDDLE&#34;"/>
            </field>
            <field name="language"
                    type="SFString"
                    accessType="inputOutput"
                    description="Language codes consist of a primary code and a (possibly empty) series of subcodes."/>
            <field name="leftToRight"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether text direction is left-to-right (true) or right-to-left (false)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="size"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1.0"
                    minExclusive="0"
                    description="Nominal height (in local coordinate system) of text glyphs, also sets default spacing between adjacent lines of text."/>
            <field name="spacing"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1.0"
                    minInclusive="0"
                    description="Adjustment factor for line spacing between adjacent lines of text."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    default="PLAIN"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="fontStyleChoices"
                    baseType="xs:NMTOKEN"
                    description="Pick one of four values for text style (PLAIN|BOLD|ITALIC|BOLDITALIC).">
               <enumeration value="PLAIN" appinfo="default plain type."/>
               <enumeration value="BOLD" appinfo="boldface type."/>
               <enumeration value="ITALIC" appinfo="italic type."/>
               <enumeration value="BOLDITALIC" appinfo="bold and italic type."/>
            </field>
            <field name="topToBottom"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether text direction is top-to-bottom (true) or bottom-to-top (false)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <containerField default="fontStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ForcePhysicsModel">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#ForcePhysicsModel"
                               appinfo="ForcePhysicsModel applies a constant force value to the particles.">
            <componentInfo name="ParticleSystems" level="1"/>
            <Inheritance baseType="X3DParticlePhysicsModelNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DParticlePhysicsModelNode"
                    description="Enables/disables node operation."/>
            <field name="force"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 -9.8 0"
                    description="force field indicates strength and direction of the propelling force on the particles (for example, default is Earth's gravity)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="physics" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Gain">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Gain"
                               appinfo="The Gain node amplifies or deamplifies the input signal.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundProcessingNode"/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="tailTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeneratedCubeMapTexture">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalTexturing#GeneratedCubeMapTexture"
                               appinfo="GeneratedCubeMapTexture is a texture node that defines a cubic environment map that sources its data from internally generated images.">
            <componentInfo name="CubeMapTexturing" level="3"/>
            <Inheritance baseType="X3DEnvironmentTextureNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="size"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="128"
                    minExclusive="0"
                    description="size indicates the resolution of the generated images in number of pixels per side."/>
            <field name="textureProperties"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="TextureProperties"
                    description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images."/>
            <field name="update"
                    type="SFString"
                    accessType="inputOutput"
                    default="NONE"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="generatedCubeMapTextureUpdateChoices"
                    baseType="xs:NMTOKEN"
                    description="update controls regeneration of the texture.">
               <enumeration value="NONE" appinfo="no further texture updates are rendered."/>
               <enumeration value="NEXT_FRAME_ONLY" appinfo="render texture once at end of frame."/>
               <enumeration value="ALWAYS" appinfo="texture to be rendered every frame."/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texture" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="TextureProperties"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeoCoordinate">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#GeoCoordinate"
                               appinfo="GeoCoordinate builds geometry as a set of geographic 3D coordinates.">
            <componentInfo name="Geospatial" level="1"/>
            <Inheritance baseType="X3DCoordinateNode"/>
            <field name="geoOrigin"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="GeoOrigin"
                    description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="point"
                    type="MFVec3d"
                    accessType="inputOutput"
                    description="point contains a set of actual 3D geographic coordinates, provided in geoSystem format can split strings if desired: &#34;x1 y1 z1 x2 y2 z2&#34; or &#34;x1 y1 z1&#34;, &#34;x2 y2 z2&#34;."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="coord" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="GeoOrigin"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeoElevationGrid">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#GeoElevationGrid"
                               appinfo="GeoElevationGrid is a geometry node defining a rectangular height field, with default values for a 1m by 1m square at height 0.">
            <componentInfo name="Geospatial" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorPerVertex field."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="Whether Color node color values are applied to each point vertex (true) or per quadrilateral (false)."/>
            <field name="creaseAngle"
                    type="SFDouble"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    description="creaseAngle defines angle (in radians) for determining whether adjacent polygons are drawn with sharp edges or smooth shading."/>
            <field name="geoGridOrigin"
                    type="SFVec3d"
                    accessType="initializeOnly"
                    default="0 0 0"
                    description="Geographic coordinate for southwest (lower-left) corner of height dataset."/>
            <field name="geoOrigin"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="GeoOrigin"
                    description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="height"
                    type="MFDouble"
                    accessType="initializeOnly"
                    default="0 0 0 0"
                    description="Contains xDimension rows * zDimension columns floating-point values for elevation above ellipsoid."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="Whether Normal node vector values are applied to each point vertex (true) or per quadrilateral (false)."/>
            <field name="set_height"
                    type="MFFloat"
                    accessType="inputOnly"
                    description="Contains xDimension rows * zDimension columns floating-point values for elevation above ellipsoid."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode"
                    description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="xDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="2"
                    minInclusive="0"
                    description="Number of elements in the height array along east-west X direction."/>
            <field name="xSpacing"
                    type="SFDouble"
                    accessType="initializeOnly"
                    default="1.0"
                    minExclusive="0"
                    description="Distance between grid-array vertices along east-west X direction."/>
            <field name="yScale"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    description="Vertical exaggeration of displayed data produced from the height array."/>
            <field name="zDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="2"
                    minInclusive="0"
                    description="Number of elements in the height array along north-south Z direction."/>
            <field name="zSpacing"
                    type="SFDouble"
                    accessType="initializeOnly"
                    default="1.0"
                    minExclusive="0"
                    description="Distance between grid-array vertices along north-south Z direction."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="ColorNormalTexCoordContentModel" minOccurs="0"/>
               <NodeContentModel name="GeoOrigin"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeoLocation">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#GeoLocation"
                               appinfo="GeoLocation positions a regular X3D model onto earth's surface.">
            <componentInfo name="Geospatial" level="1"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="geoCoords"
                    type="SFVec3d"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Geographic location (specified in current geoSystem coordinates) for children geometry (specified in relative coordinate system, in meters)."/>
            <field name="geoOrigin"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="GeoOrigin"
                    description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="GroupingNodeChildContentModel"/>
               <NodeContentModel name="GeoOrigin"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeoLOD">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#GeoLOD"
                               appinfo="Note that MFNode rootNode field can contain multiple nodes and has accessType inputOutput. Meanwhile MFNode children field is outputOnly, unlike other X3DGroupingNode exemplars.">
            <componentInfo name="Geospatial" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="center"
                    type="SFVec3d"
                    accessType="initializeOnly"
                    default="0 0 0"
                    description="Viewer range from geographic-coordinates center triggers quadtree loading/unloading."/>
            <field name="child1Url"
                    type="MFString"
                    accessType="initializeOnly"
                    description="quadtree geometry loaded when viewer is within range.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="child2Url"
                    type="MFString"
                    accessType="initializeOnly"
                    description="quadtree geometry loaded when viewer is within range.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="child3Url"
                    type="MFString"
                    accessType="initializeOnly"
                    description="quadtree geometry loaded when viewer is within range.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="child4Url"
                    type="MFString"
                    accessType="initializeOnly"
                    description="quadtree geometry loaded when viewer is within range.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="outputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    description="The outputOnly children field exposes a portion of the scene graph for the currently loaded set of nodes."/>
            <field name="geoOrigin"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="GeoOrigin"
                    description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="level_changed"
                    type="SFInt32"
                    accessType="outputOnly"
                    minInclusive="0"
                    maxInclusive="1"
                    description="Output event that reports when the new children outputOnly event is generated, with value 0 or 1, where 0 indicates the rootNode field and 1 indicates the nodes specified by the child1Url, child2Url, child3Url, and child4Url fields."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="range"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="10"
                    minInclusive="0"
                    description="Viewer range from geographic-coordinates center triggers quadtree loading/unloading."/>
            <field name="rootNode"
                    type="MFNode"
                    accessType="initializeOnly"
                    acceptableNodeTypes="X3DChildNode"
                    description="Geometry for the root tile."/>
            <field name="rootUrl"
                    type="MFString"
                    accessType="initializeOnly"
                    description="url for scene providing geometry for the root tile.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="GroupingNodeChildContentModel"/>
               <NodeContentModel name="GeoOrigin"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeoMetadata">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#GeoMetadata"
                               appinfo="GeoMetadata includes a generic subset of metadata about the geographic data.">
            <componentInfo name="Geospatial" level="1"/>
            <Inheritance baseType="X3DInfoNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="data"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DNode"
                    description="DEF list of all nodes that implement this data."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="summary"
                    type="MFString"
                    accessType="inputOutput"
                    description="The summary string array contains a set of keyword/value pairs, with each keyword and its subsequent value contained in separate strings."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Hypertext link to an external, complete metadata description.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesX3DUrlObject"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="GeoCoordinate"/>
               <NodeContentModel name="GeoElevationGrid"/>
               <NodeContentModel name="GeoLocation"/>
               <NodeContentModel name="GeoLOD"/>
               <NodeContentModel name="GeoPositionInterpolator"/>
               <NodeContentModel name="GeoProximitySensor"/>
               <NodeContentModel name="GeoTouchSensor"/>
               <NodeContentModel name="GeoTransform"/>
               <NodeContentModel name="GeoViewpoint"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeoOrigin">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#GeoOrigin"
                               appinfo="GeoOrigin is deprecated and discouraged (but nevertheless allowed) in X3D version 3.3. GeoOrigin is restored in X3D version 4.0 for special use on devices with limited floating-point resolution.">
            <componentInfo name="Geospatial" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="geoCoords"
                    type="SFVec3d"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Defines absolute geographic location (and implicit local coordinate frame)."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="rotateYUp"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    description="Whether to rotate coordinates of nodes using this GeoOrigin so that local-up direction aligns with VRML Y axis rotateYUp false means local up-direction is relative to planet surface rotateYUp true allows proper operation of NavigationInfo modes FLY, WALK."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geoOrigin" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeoPositionInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#GeoPositionInterpolator"
                               appinfo="GeoPositionInterpolator animates objects within a geographic coordinate system.">
            <componentInfo name="Geospatial" level="1"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="geoOrigin"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="GeoOrigin"
                    description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="geovalue_changed"
                    type="SFVec3d"
                    accessType="outputOnly"
                    description="interpolated coordinate in the geographic coordinate system specified by geoSystem Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array."/>
            <field name="keyValue"
                    type="MFVec3d"
                    accessType="inputOutput"
                    description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding keyValue output."/>
            <field name="value_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Linearly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="GeoOrigin"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeoProximitySensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#GeoProximitySensor"
                               appinfo="GeoProximitySensor generates events when the viewer enters, exits and moves within a region of space (defined by a box).">
            <componentInfo name="Geospatial" level="2"/>
            <Inheritance baseType="X3DEnvironmentalSensorNode"/>
            <field name="center"
                    type="SFVec3d"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position offset from origin of local coordinate system."/>
            <field name="centerOfRotation_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Sends changed centerOfRotation values, likely caused by user interaction."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="enterTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="Time event generated when user's camera enters the box."/>
            <field name="exitTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="Time event generated when user's camera exits the box."/>
            <field name="geoCenter"
                    type="SFVec3d"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position offset from origin of local coordinate system."/>
            <field name="geoCoord_changed"
                    type="SFVec3d"
                    accessType="outputOnly"
                    description="Sends geospatial coordinates of viewer's position corresponding to world position returned by position_changed."/>
            <field name="geoOrigin"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="GeoOrigin"
                    description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="isActive true/false events are sent as viewer enters/exits Proximity box."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="orientation_changed"
                    type="SFRotation"
                    accessType="outputOnly"
                    description="Sends rotation event relative to center."/>
            <field name="position_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Sends translation event relative to center."/>
            <field name="size"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    inheritedFrom="X3DEnvironmentalSensorNode"
                    description="size of Proximity box."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="GeoOrigin"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeoTouchSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#GeoTouchSensor"
                               appinfo="GeoTouchSensor returns geographic coordinates for the object being selected.">
            <componentInfo name="Geospatial" level="1"/>
            <Inheritance baseType="X3DTouchSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="geoOrigin"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="GeoOrigin"
                    description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (G D), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="hitGeoCoord_changed"
                    type="SFVec3d"
                    accessType="outputOnly"
                    description="Output event containing 3D point on surface of underlying geometry, given in GeoTouchSensor's local coordinate system."/>
            <field name="hitNormal_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Output event containing surface normal vector at the hitGeoCoordinate."/>
            <field name="hitPoint_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Output event containing 3D point on surface of underlying geometry, given in geometry coordinates (not geographic coordinates)."/>
            <field name="hitTexCoord_changed"
                    type="SFVec2f"
                    accessType="outputOnly"
                    description="Output event containing texture coordinates of surface at the hitGeoCoordinate."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events."/>
            <field name="isOver"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DPointingDeviceSensorNode"
                    description="Is pointing device over sensor's geometry?."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="touchTime"
                    type="SFTime"
                    accessType="outputOnly"
                    inheritedFrom="X3DTouchSensorNode"
                    description="Time event generated when touched."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="GeoOrigin"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeoTransform">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#GeoTransform"
                               appinfo="GeoTransform is a Grouping node that can contain most nodes.">
            <componentInfo name="Geospatial" level="2"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="geoCenter"
                    type="SFVec3d"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Translation offset from origin of local coordinate system, applied prior to rotation or scaling."/>
            <field name="geoOrigin"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="GeoOrigin"
                    description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="rotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Orientation (axis, angle in radians) of children relative to local coordinate system."/>
            <field name="scale"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation."/>
            <field name="scaleOrientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Preliminary rotation of coordinate sys tem before scaling (to allow scaling around arbitrary orientations)."/>
            <field name="translation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position (x, y, z in meters) of children relative to local coordinate system."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="GroupingNodeChildContentModel"/>
               <NodeContentModel name="GeoOrigin"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="GeoViewpoint">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html#GeoViewpoint"
                               appinfo="GeoViewpoint specifies viewpoints using geographic coordinates.">
            <componentInfo name="Geospatial" level="1"/>
            <Inheritance baseType="X3DViewpointNode"/>
            <field name="bindTime"
                    type="SFTime"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Event sent reporting timestamp when node becomes active/inactive."/>
            <field name="centerOfRotation"
                    type="SFVec3d"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DViewpointNode"
                    description="Author-provided prose that describes intended purpose of this node.">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="farDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DViewpointNode"
                    description="farDistance defines maximum clipping plane distance allowed for object display."/>
            <field name="fieldOfView"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.7854"
                    minExclusive="0"
                    maxExclusive="3.1416"
                    description="Preferred minimum viewing angle from this viewpoint in radians, providing minimum height or minimum width (whichever is smaller)."/>
            <field name="geoOrigin"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="GeoOrigin"
                    description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isBound"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated."/>
            <field name="jump"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DViewpointNode"
                    description="Whether to transition instantly by jumping, or else smoothly animate to this Viewpoint."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="navigationInfo"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="NavigationInfo"
                    inheritedFrom="X3DViewpointNode"
                    description="The navigationInfo field defines a dedicated NavigationInfo node for this X3DViewpointNode."/>
            <field name="nearDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DViewpointNode"
                    description="nearDistance defines minimum clipping plane distance necessary for object display."/>
            <field name="orientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    inheritedFrom="X3DViewpointNode"
                    description="Rotation of Viewpoint, relative to default -Z axis direction in local coordinate system."/>
            <field name="position"
                    type="SFVec3d"
                    accessType="inputOutput"
                    default="0 0 100000"
                    description="position relative to local georeferenced coordinate system, in proper format."/>
            <field name="retainUserOffsets"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DViewpointNode"
                    description="Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation.">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="set_bind"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="set_bind true makes this node active, set_bind false makes this node inactive."/>
            <field name="speedFactor"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1.0"
                    minInclusive="0"
                    description="speedFactor is a multiplier to modify the original elevation-based speed that is set automatically by the browser."/>
            <field name="viewAll"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DViewpointNode"
                    description="Viewpoint is automatically adjusted to view all visible geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="GeoOrigin"/>
               <NodeContentModel name="NavigationInfo"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Group">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/grouping.html#Group"
                               appinfo="Group is a Grouping node that can contain most nodes.">
            <componentInfo name="Grouping" level="1"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children"
                             type="containerFieldChoicesGroupLODShapeTransformSwitch"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="HAnimDisplacer">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimDisplacer"
                               appinfo="HAnimDisplacer nodes alter the shape of coordinate-based geometry within parent HAnimJoint or HAnimSegment nodes.">
            <componentInfo name="HAnim" level="1"/>
            <Inheritance baseType="X3DGeometricPropertyNode"/>
            <field name="coordIndex"
                    type="MFInt32"
                    accessType="initializeOnly"
                    minInclusive="0"
                    description="Defines index values into the parent HAnimSegment or HAnimBody/HAnimHumanoid coordinate array for the mesh of vertices affected by this HAnimDisplacer."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="displacements"
                    type="MFVec3f"
                    accessType="inputOutput"
                    description="displacements are a set of SFVec3f values added to neutral/resting position of each of the corresponding HAnimSegment vertices (or HAnimJoint/HAnimHumanoid vertices) referenced by coordIndex field."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="hanimFeaturePointNameValues"
                    baseType="xs:NMTOKEN"
                    description="Unique name attribute must be defined so that HAnimDisplacer node can be identified at run time for animation purposes.">
               <enumeration value="skull_vertex"
                             index="0"
                             alias="skull_tip,vertex"
                             loa="1"
                             default="0.0050 1.7504 0.0055"
                             parent="skull"
                             appinfo="CAESAR 2003 skull_vertex matches ISO 7250-1 part 5.22 Vertex (top of head). No corresponding landmark provided in CAESAR 2018."
                             documentation="https://en.wikipedia.org/wiki/Vertex_(anatomy)"/>
               <enumeration value="glabella"
                             index="1"
                             loa="1"
                             parent="skull"
                             appinfo="glabella is between the eyebrows and above the nose."
                             documentation="https://en.wikipedia.org/wiki/Glabella"/>
               <enumeration value="sellion"
                             index="2"
                             loa="1"
                             default="0.0058 1.6316 0.0852"
                             parent="skull"
                             appinfo="osseocartilaginous junction of the nasal dorsum."
                             documentation="https://en.wikipedia.org/wiki/Human_head"/>
               <enumeration value="l_infraorbitale"
                             index="3"
                             loa="1"
                             default="0.0341 1.6171 0.0752"
                             parent="skull"
                             appinfo="Left Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit."
                             documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen"/>
               <enumeration value="l_tragion"
                             index="4"
                             loa="1"
                             default="0.0739 1.6348 0.0282"
                             parent="skull"
                             appinfo="notch just above the tragus of the ear."
                             documentation="https://en.wiktionary.org/wiki/tragion"/>
               <enumeration value="l_gonion"
                             index="5"
                             loa="1"
                             default="0.0631 1.5530 0.0330"
                             parent="skull"
                             appinfo="Left Gonion is midpoint of mandibular angle of the jaw."
                             documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible"/>
               <enumeration value="r_infraorbitale"
                             index="6"
                             loa="1"
                             default="-0.0237 1.6171 0.0752"
                             parent="skull"
                             appinfo="Right Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit."
                             documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen"/>
               <enumeration value="r_tragion"
                             index="7"
                             loa="1"
                             default="-0.0646 1.6347 0.0302"
                             parent="skull"
                             appinfo="notch just above the tragus of the ear."
                             documentation="https://en.wiktionary.org/wiki/tragion"/>
               <enumeration value="r_gonion"
                             index="8"
                             loa="1"
                             default="-0.0520 1.5529 0.0347"
                             parent="skull"
                             appinfo="Right Gonion is midpoint of the mandibular angle of the jaw."
                             documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible"/>
               <enumeration value="supramenton"
                             index="9"
                             loa="3"
                             default="0.0061 1.5410 0.0805"
                             parent="jaw"
                             appinfo="center point above tip of chin."
                             documentation="http://www.cs.uu.nl/groups/MG/multimedia/publications/art/rsfp05.pdf"/>
               <enumeration value="cervicale"
                             index="10"
                             loa="2"
                             default="0.0064 1.520 -0.0815"
                             parent="t1"
                             documentation="https://www.merriam-webster.com/dictionary/cervicale"/>
               <enumeration value="adams_apple"
                             index="11"
                             loa="2"
                             parent="c2"
                             documentation="https://en.wikipedia.org/wiki/Adam_s_apple"/>
               <enumeration value="suprasternale"
                             index="12"
                             loa="2"
                             default="0.0084 1.4714 0.0551"
                             parent="t1"
                             appinfo="Suprasternale."
                             documentation="https://medical-dictionary.thefreedictionary.com/spatium+suprasternale"/>
               <enumeration value="substernale"
                             index="13"
                             loa="2"
                             default="0.0085 1.2995 0.1147"
                             parent="t10"
                             documentation="https://medical-dictionary.thefreedictionary.com/spatium+substernale"/>
               <enumeration value="l_clavicle"
                             index="14"
                             alias="l_clavicale"
                             loa="2"
                             default="0.0271 1.4943 0.0394"
                             parent="l_clavicle"
                             documentation="https://en.wikipedia.org/wiki/Clavicle"/>
               <enumeration value="l_acromion"
                             index="15"
                             loa="2"
                             default="0.2032 1.4760 -0.0490"
                             parent="l_clavicle"
                             documentation="https://en.wikipedia.org/wiki/Acromion"/>
               <enumeration value="l_axilla_proximal"
                             index="16"
                             alias="l_axilla_ant"
                             loa="2"
                             default="0.1777 1.4065 -0.0075"
                             parent="l_clavicle"
                             appinfo="Left Axilla Proximal (Anterior)."
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="l_axilla_distal"
                             index="17"
                             alias="l_axilla_post"
                             loa="2"
                             default="0.1706 1.4072 -0.0875"
                             parent="l_clavicle"
                             appinfo="Left Axilla Distal (Posterior)."
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="l_axilla_posterior_folds"
                             index="18"
                             loa="2"
                             parent="l_clavicle"
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="r_clavicle"
                             index="19"
                             alias="r_clavicale"
                             loa="2"
                             default="-0.0115 1.4943 0.0400"
                             parent="r_clavicle"
                             documentation="https://en.wikipedia.org/wiki/Clavicle"/>
               <enumeration value="r_acromion"
                             index="20"
                             loa="2"
                             default="-0.1905 1.4791 -0.0431"
                             parent="r_clavicle"
                             documentation="https://en.wikipedia.org/wiki/Acromion"/>
               <enumeration value="r_axilla_proximal"
                             index="21"
                             alias="r_axilla_ant"
                             loa="2"
                             default="-0.1626 1.4072 -0.0031"
                             parent="r_clavicle"
                             appinfo="Right Axilla Proximal (Anterior)."
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="r_axilla_distal"
                             index="22"
                             alias="r_axilla_post"
                             loa="2"
                             default="-0.1603 1.4098 -0.0826"
                             parent="r_clavicle"
                             appinfo="Right Axilla Distal (Posterior)."
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="r_axilla_posterior_folds"
                             index="23"
                             loa="2"
                             parent="r_clavicle"
                             appinfo="Right Posterior Axillary Folds."
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="spine_1_middle_back"
                             index="24"
                             alias="middle back"
                             loa="3"
                             parent="t5"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="spine_2_lower_back"
                             index="25"
                             alias="lower back"
                             loa="3"
                             default="0.0049 1.1908 -0.1113"
                             parent="l2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="waist_preferred_anterior"
                             index="26"
                             alias="waist_preferred_ant"
                             loa="3"
                             parent="l2"
                             documentation="https://en.wikipedia.org/wiki/Waist"/>
               <enumeration value="waist_preferred_posterior"
                             index="27"
                             alias="waist_preferred_post"
                             loa="3"
                             default="0.2900 1.0915 -0.1091"
                             parent="l2"
                             documentation="https://en.wikipedia.org/wiki/Waist"/>
               <enumeration value="l_rib10"
                             index="28"
                             alias="l_rib10_midspine"
                             loa="3"
                             default="0.0871 1.1925 0.0992"
                             parent="l2"
                             documentation="https://en.wikipedia.org/wiki/Rib"/>
               <enumeration value="l_thelion"
                             index="29"
                             alias="Left Bustpoint"
                             loa="3"
                             default="0.0918 1.3382 0.1192"
                             parent="t9"
                             documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf"/>
               <enumeration value="r_rib10"
                             index="30"
                             alias="r_rib10_midspine"
                             loa="3"
                             default="-0.0711 1.1941 0.1016"
                             parent="l2"
                             documentation="https://en.wikipedia.org/wiki/Rib"/>
               <enumeration value="r_thelion"
                             index="31"
                             alias="Right Bustpoint"
                             loa="3"
                             default="-0.0736 1.3385 0.1217"
                             parent="t9"
                             documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf"/>
               <enumeration value="l_asis"
                             index="32"
                             alias="Left Anterior Superior Iliac Spine"
                             loa="1"
                             default="0.0925 0.9983 0.1052"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine"/>
               <enumeration value="l_iliocristale"
                             index="33"
                             loa="1"
                             default="0.1612 1.0537 0.0008"
                             parent="pelvis"
                             documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm"/>
               <enumeration value="l_psis"
                             index="34"
                             alias="Left Posterior Superior Iliac Spine"
                             loa="1"
                             default="0.0774 1.0190 -0.1151"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine"/>
               <enumeration value="r_asis"
                             index="35"
                             alias="Right Anterior Superior Iliac Spine"
                             loa="1"
                             default="-0.0887 1.0021 0.1112"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine"/>
               <enumeration value="r_iliocristale"
                             index="36"
                             loa="1"
                             default="-0.1525 1.0628 0.0035"
                             parent="pelvis"
                             documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm"/>
               <enumeration value="r_psis"
                             index="37"
                             alias="Right Posterior Superior Iliac Spine"
                             loa="1"
                             default="-0.0716 1.0190 -0.1138"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine"/>
               <enumeration value="crotch"
                             index="38"
                             loa="1"
                             default="0.0034 0.8266 0.0257"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Crotch"/>
               <enumeration value="l_femoral_lateral_epicondyle"
                             index="39"
                             alias="l_femoral_lateral_epicn,l_femoral_lateral_epicondyles"
                             loa="1"
                             default="0.1598 0.4967 0.0297"
                             parent="l_thigh"
                             documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur"/>
               <enumeration value="l_femoral_medial_epicondyle"
                             index="40"
                             alias="l_femoral_medial_epicn,l_femoral_medial_epicondyles"
                             loa="1"
                             default="0.1598 0.4967 0.0297"
                             parent="l_thigh"
                             documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur"/>
               <enumeration value="l_suprapatella"
                             index="41"
                             alias="l_kneecap"
                             loa="1"
                             parent="l_thigh"
                             documentation="https://en.wikipedia.org/wiki/Patella"/>
               <enumeration value="l_trochanterion"
                             index="42"
                             alias="l_trochanter"
                             loa="1"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Trochanter"/>
               <enumeration value="r_femoral_lateral_epicondyle"
                             index="43"
                             alias="r_femoral_lateral_epicn,r_femoral_lateral_epicondyles"
                             loa="1"
                             default="-0.1421 0.4992 0.0310"
                             parent="r_thigh"
                             documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur"/>
               <enumeration value="r_femoral_medial_epicondyle"
                             index="44"
                             alias="r_femoral_medial_epicn,r_femoral_medial_epicondyles"
                             loa="1"
                             default="-0.0221 0.5014 0.0289"
                             parent="r_thigh"
                             documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur"/>
               <enumeration value="r_suprapatella"
                             index="45"
                             alias="r_kneecap"
                             loa="1"
                             parent="r_thigh"
                             documentation="https://en.wikipedia.org/wiki/Patella"/>
               <enumeration value="r_trochanterion"
                             index="46"
                             alias="r_trochanter"
                             loa="1"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Trochanter"/>
               <enumeration value="l_tibiale"
                             index="47"
                             loa="1"
                             parent="l_calf"
                             documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone"/>
               <enumeration value="l_medial_malleolus"
                             index="48"
                             loa="1"
                             parent="l_calf"
                             documentation="https://en.wikipedia.org/wiki/Malleolus"/>
               <enumeration value="l_lateral_malleolus"
                             index="49"
                             loa="1"
                             parent="l_calf"
                             documentation="https://en.wikipedia.org/wiki/Malleolus"/>
               <enumeration value="l_sphyrion"
                             index="50"
                             loa="1"
                             parent="l_talus"
                             documentation="http://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385"/>
               <enumeration value="r_tibiale"
                             index="51"
                             loa="1"
                             parent="r_calf"
                             documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone"/>
               <enumeration value="r_medial_malleolus"
                             index="52"
                             loa="1"
                             parent="r_calf"
                             documentation="https://en.wikipedia.org/wiki/Malleolus"/>
               <enumeration value="r_lateral_malleolus"
                             index="53"
                             loa="1"
                             parent="r_calf"
                             documentation="https://en.wikipedia.org/wiki/Malleolus"/>
               <enumeration value="r_sphyrion"
                             index="54"
                             loa="1"
                             parent="r_talus"
                             documentation="http://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385"/>
               <enumeration value="l_metatarsal_phalanx_1"
                             index="55"
                             alias="l_metatarsal_pha1"
                             loa="4"
                             parent="l_tarsal_proximal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="l_metatarsal_phalanx_5"
                             index="56"
                             alias="l_metatarsal_pha5"
                             loa="4"
                             parent="l_tarsal_proximal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="l_dactylion"
                             index="57"
                             loa="2"
                             default="0.2056 0.6743 -0.0482"
                             parent="l_carpal_distal_phalanx_2"
                             documentation="https://en.wiktionary.org/wiki/dactylion"/>
               <enumeration value="l_calcaneus_posterior"
                             index="58"
                             alias="l_calcaneous_post"
                             loa="1"
                             parent="l_talus"
                             documentation="https://en.wikipedia.org/wiki/Calcaneus"/>
               <enumeration value="r_metatarsal_phalanx_1"
                             index="59"
                             alias="r_metatarsal_pha1"
                             loa="4"
                             parent="r_tarsal_proximal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="r_metatarsal_phalanx_5"
                             index="60"
                             alias="r_metatarsal_pha5"
                             loa="4"
                             parent="r_tarsal_proximal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="r_dactylion"
                             index="61"
                             loa="2"
                             default="-0.1941 0.6772 -0.0423"
                             parent="r_carpal_distal_phalanx_2"
                             documentation="https://en.wiktionary.org/wiki/dactylion"/>
               <enumeration value="r_calcaneus_posterior"
                             index="62"
                             alias="r_calcaneous_post"
                             loa="1"
                             parent="r_talus"
                             documentation="https://en.wikipedia.org/wiki/Calcaneus"/>
               <enumeration value="l_humeral_lateral_epicondyle"
                             index="63"
                             alias="l_humeral_lateral_epicn,l_humeral_lateral_epicondyles"
                             loa="1"
                             default="0.2280 1.1482 -0.1100"
                             parent="l_upperarm"
                             documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus"/>
               <enumeration value="l_humeral_medial_epicondyle"
                             index="64"
                             alias="l_humeral_medial_epicn,l_humeral_medial_epicondyles"
                             loa="1"
                             default="0.1735 1.1272 -0.1113"
                             parent="l_forearm"
                             documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus"/>
               <enumeration value="l_olecranon"
                             index="65"
                             loa="1"
                             default="0.1962 1.1375 -0.1123"
                             parent="l_forearm"
                             documentation="https://en.wikipedia.org/wiki/Olecranon"/>
               <enumeration value="r_humeral_lateral_epicondyle"
                             index="66"
                             alias="r_humeral_lateral_epicn,r_humeral_lateral_epicondyles"
                             loa="1"
                             default="-0.2224 1.1517 -0.1033"
                             parent="r_upperarm"
                             documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus"/>
               <enumeration value="r_humeral_medial_epicondyle"
                             index="67"
                             alias="r_humeral_medial_epicn,r_humeral_medial_epicondyles"
                             loa="1"
                             default="-0.1680 1.1298 -0.1062"
                             parent="r_forearm"
                             documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus"/>
               <enumeration value="r_olecranon"
                             index="68"
                             loa="1"
                             default="-0.1907 1.1405 -0.1065"
                             parent="r_forearm"
                             documentation="https://en.wikipedia.org/wiki/Olecranon"/>
               <enumeration value="l_radiale"
                             index="69"
                             loa="1"
                             default="0.2182 1.1212 -0.1167"
                             parent="l_forearm"
                             documentation="https://en.wikipedia.org/wiki/Carpal_bones"/>
               <enumeration value="l_ulnar_styloid"
                             index="70"
                             loa="1"
                             default="0.2142 0.8529 -0.0648"
                             parent="l_carpal"
                             documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process"/>
               <enumeration value="l_radial_styloid"
                             index="71"
                             loa="1"
                             default="0.1901 0.8645 -0.0415"
                             parent="l_forearm"
                             documentation="https://en.wikipedia.org/wiki/Radial_styloid_process"/>
               <enumeration value="r_radiale"
                             index="72"
                             loa="1"
                             default="-0.2130 1.1305 -0.1091"
                             parent="r_forearm"
                             documentation="https://en.wikipedia.org/wiki/Carpal_bones"/>
               <enumeration value="r_ulnar_styloid"
                             index="73"
                             loa="1"
                             default="-0.2117 0.8562 -0.0584"
                             parent="r_carpal"
                             documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process"/>
               <enumeration value="r_radial_styloid"
                             index="74"
                             loa="1"
                             default="-0.1884 0.8676 -0.0360"
                             parent="r_forearm"
                             documentation="https://en.wikipedia.org/wiki/Radial_styloid_process"/>
               <enumeration value="l_metacarpal_phalanx_2"
                             index="75"
                             alias="l_metacarpal_pha2,l_metacarpal_phalanx"
                             loa="2"
                             parent="l_metacarpal_2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="l_metacarpal_phalanx_3"
                             index="76"
                             loa="2"
                             parent="l_metacarpal_3"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="l_metacarpal_phalanx_5"
                             index="77"
                             alias="l_metacarpal_pha5"
                             loa="2"
                             parent="l_metacarpal_5"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="r_metacarpal_phalanx_2"
                             index="78"
                             alias="r_metacarpal_pha2,r_metacarpal_phalanx"
                             loa="2"
                             parent="r_metacarpal_2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="r_metacarpal_phalanx_3"
                             index="79"
                             loa="2"
                             parent="r_metacarpal_3"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="r_metacarpal_phalanx_5"
                             index="80"
                             alias="r_metacarpal_pha5"
                             loa="2"
                             parent="r_metacarpal_5"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="nuchale"
                             index="81"
                             alias="nuchal"
                             loa="1"
                             default="0.0039 1.5972 -0.0796"
                             parent="skull"
                             documentation="https://en.wikipedia.org/wiki/Squamous_part_of_occipital_bone"/>
               <enumeration value="l_neck_base"
                             index="82"
                             loa="3"
                             default="0.0646 1.5141 -0.0380"
                             parent="c7"
                             documentation="https://en.wikipedia.org/wiki/Neck"/>
               <enumeration value="r_neck_base"
                             index="83"
                             loa="3"
                             default="-0.0419 1.5149 -0.0220"
                             parent="c7"
                             documentation="https://en.wikipedia.org/wiki/Neck"/>
               <enumeration value="navel"
                             index="84"
                             alias="belly button"
                             loa="1"
                             default="0.0069 1.0966 0.1017"
                             parent="l5"
                             documentation="https://en.wikipedia.org/wiki/Navel"/>
               <enumeration value="l_ectocanthus"
                             index="85"
                             alias="l_canthus"
                             loa="1"
                             parent="skull"
                             documentation="https://en.wikipedia.org/wiki/Canthus"/>
               <enumeration value="r_ectocanthus"
                             index="86"
                             alias="r_canthus"
                             loa="1"
                             parent="skull"
                             documentation="https://en.wikipedia.org/wiki/Canthus"/>
               <enumeration value="menton"
                             index="87"
                             alias="chin"
                             loa="3"
                             parent="jaw"
                             documentation="https://en.wikipedia.org/wiki/Human_head"/>
               <enumeration value="mesosternale"
                             index="88"
                             alias="mesosternum"
                             loa="2"
                             parent="t6"
                             documentation="https://en.wiktionary.org/wiki/mesosternum"/>
               <enumeration value="opisthocranion"
                             index="89"
                             loa="1"
                             parent="skull"
                             documentation="http://www.columbia.edu/itc/hs/medical/humanAnatomy/yuan/craniologyISlides.pdf"/>
               <enumeration value="l_knee_crease"
                             index="90"
                             loa="1"
                             default="0.0993 0.4881 -0.0309"
                             parent="l_thigh"
                             documentation="https://en.wikipedia.org/wiki/Popliteal_fossa"/>
               <enumeration value="r_knee_crease"
                             index="91"
                             loa="1"
                             default="-0.0825 0.4932 -0.0326"
                             parent="r_thigh"
                             documentation="https://en.wikipedia.org/wiki/Popliteal_fossa"/>
               <enumeration value="rear_center_midsagittal_plane"
                             index="92"
                             alias="median plane"
                             loa="2"
                             parent="t6"
                             documentation="https://en.wikipedia.org/wiki/Median_plane"/>
               <enumeration value="buttocks_standing_wall_contact_point"
                             index="93"
                             loa="1"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Buttocks"/>
               <enumeration value="l_chest_midsagittal_plane"
                             index="94"
                             loa="2"
                             parent="t6"
                             documentation="https://en.wikipedia.org/wiki/Sagittal_plane"/>
               <enumeration value="r_chest_midsagittal_plane"
                             index="95"
                             loa="2"
                             parent="t6"
                             documentation="https://en.wikipedia.org/wiki/Sagittal_plane"/>
               <enumeration value="l_bideltoid"
                             index="96"
                             loa="1"
                             parent="l_upperarm"
                             documentation="https://en.wiktionary.org/wiki/bideltoid"/>
               <enumeration value="r_bideltoid"
                             index="97"
                             loa="1"
                             parent="r_upperarm"
                             documentation="https://en.wiktionary.org/wiki/bideltoid"/>
               <enumeration value="l_carpal_distal_phalanx_1"
                             index="101"
                             alias="l_thumb_distal"
                             loa="2"
                             default="0.1982 0.8061 0.0759"
                             parent="l_carpal_distal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_2"
                             index="102"
                             alias="l_index_distal"
                             loa="2"
                             default="0.2089 0.6858 -0.0245"
                             parent="l_carpal_distal_phalanx_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_3"
                             index="103"
                             alias="l_middle_distal"
                             loa="2"
                             default="0.2080 0.6731 -0.0491"
                             parent="l_carpal_distal_phalanx_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_4"
                             index="104"
                             alias="l_ring_distal"
                             loa="2"
                             default="0.2035 0.6750 -0.0756"
                             parent="l_carpal_distal_phalanx_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_5"
                             index="105"
                             alias="l_pinky_distal"
                             loa="2"
                             default="0.2014 0.7009 -0.1012"
                             parent="l_carpal_distal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_1"
                             index="106"
                             alias="r_thumb_distal"
                             loa="2"
                             default="-0.1869 0.8090 0.0820"
                             parent="r_carpal_distal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_2"
                             index="107"
                             alias="r_index_distal"
                             loa="2"
                             default="-0.1980 0.6883 -0.0180"
                             parent="r_carpal_distal_phalanx_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_3"
                             index="108"
                             alias="r_middle_distal"
                             loa="2"
                             default="-0.1969 0.6758 -0.0427"
                             parent="r_carpal_distal_phalanx_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_4"
                             index="109"
                             alias="r_ring_distal"
                             loa="2"
                             default="-0.1934 0.6778 -0.0693"
                             parent="r_carpal_distal_phalanx_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_5"
                             index="110"
                             alias="r_pinky_distal"
                             loa="2"
                             default="-0.1938 0.7035 -0.0949"
                             parent="r_carpal_distal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_1"
                             index="111"
                             loa="4"
                             default="0.090 0.012 0.188"
                             parent="l_tarsal_distal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_2"
                             index="112"
                             alias="l_digit2"
                             loa="2"
                             default="0.110 0.011 0.19"
                             parent="l_tarsal_distal_phalanx_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_3"
                             index="113"
                             loa="4"
                             default="0.128 0.011 0.185"
                             parent="l_tarsal_distal_phalanx_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_4"
                             index="114"
                             loa="4"
                             default="0.142 0.011 0.178"
                             parent="l_tarsal_distal_phalanx_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_5"
                             index="115"
                             alias="l_tarsal_distal_pha5"
                             loa="4"
                             default="0.154 0.010 0.168"
                             parent="l_tarsal_distal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_1"
                             index="116"
                             loa="4"
                             default="-0.090 0.012 0.188"
                             parent="r_tarsal_distal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_2"
                             index="117"
                             alias="r_digit2"
                             loa="2"
                             default="-0.110 0.011 0.19"
                             parent="r_tarsal_distal_phalanx_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_3"
                             index="118"
                             loa="4"
                             default="-0.128 0.011 0.185"
                             parent="r_tarsal_distal_phalanx_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_4"
                             index="119"
                             loa="4"
                             default="-0.142 0.011 0.178"
                             parent="r_tarsal_distal_phalanx_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_5"
                             index="120"
                             alias="r_tarsal_distal_pha5"
                             loa="4"
                             default="-0.154 0.010 0.168"
                             parent="r_tarsal_distal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
            </field>
            <field name="weight"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.0"
                    description="The weigh factor has typical range [0,1] and defines the scale factor applied to displacement values before adding them to neutral vertex positions."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="displacers" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="HAnimHumanoid">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimHumanoid"
                               appinfo="The HAnimHumanoid node is used to: (a) store references to the joints, segments, sites, skeleton, optional skin, and fixed viewpoints, (b) serve as a container for the entire humanoid, (c) provide a convenient way of moving the humanoid through its environment, and (d) store human-readable metadata such as name, version, author, copyright, age, gender and other information.">
            <componentInfo name="HAnim" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="center"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Translation offset from origin of local coordinate system."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="info"
                    type="MFString"
                    accessType="inputOutput"
                    description="Contains metadata keyword=value pairs, where approved keyword terms are humanoidVersion authorName authorEmail copyright creationDate usageRestrictions age gender height and weight."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="jointBindingPositions"
                    type="MFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Specifies an array of position values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose."/>
            <field name="jointBindingRotations"
                    type="MFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Specifies an array of rotation values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose."/>
            <field name="jointBindingScales"
                    type="MFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Specifies an array of scale values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose."/>
            <field name="joints"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="HAnimJoint"
                    description="The joints field contains a list of USE references for all HAnimJoint node instances found within the preceding skeleton hierarchy."/>
            <field name="loa"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="-1"
                    minInclusive="-1"
                    maxInclusive="4"
                    baseType="loaType"
                    description="Level Of Articulation 0."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="motions"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="HAnimMotion"
                    description="Contains any HAnimMotion nodes that can animate the HAnimHumanoid."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="Unique name attribute must be defined so that each HAnimHumanoid node in a scene can be identified at run time for animation purposes."/>
            <field name="rotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Orientation of children relative to local coordinate system."/>
            <field name="scale"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    minExclusive="0"
                    description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation."/>
            <field name="scaleOrientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)."/>
            <field name="segments"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="HAnimSegment"
                    description="The segments field contains a list of USE references for all HAnimSegment node instances found within the preceding skeleton hierarchy."/>
            <field name="sites"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="HAnimSite"
                    description="sites field contains a list of USE references for all HAnimSite node instances found within the preceding skeleton hierarchy."/>
            <field name="skeletalConfiguration"
                    type="SFString"
                    accessType="inputOutput"
                    default="BASIC"
                    description="Models sharing a common skeletal configuration can share animations and binding poses."/>
            <field name="skeleton"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="HAnimJoint|HAnimSite"
                    description="List of top-level HAnimJoint and HAnimSite nodes that create the skeleton model."/>
            <field name="skin"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Group|Transform|Shape|IndexedFaceSet"
                    description="List of one or more indexed mesh definitions (such as IndexedFaceSet) that utilize skinCoord point and skinNormal normal data."/>
            <field name="skinBindingCoords"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Coordinate|CoordinateDouble"
                    description="Array of Coordinate nodes to handle non-default source pose so that both skin and skeleton can be in same binding pose."/>
            <field name="skinBindingNormals"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    description="Array of Normal nodes to handle non-default source pose so that both skin and skeleton can be in same binding pose."/>
            <field name="skinCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Coordinate|CoordinateDouble"
                    description="Coordinate node utilized by indexed mesh definitions for skin."/>
            <field name="skinNormal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    description="Single Normal node utilized by indexed mesh definitions for skin."/>
            <field name="translation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position of children relative to local coordinate system."/>
            <field name="version"
                    type="SFString"
                    accessType="inputOutput"
                    default="2.0"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="hanimVersionChoices"
                    baseType="xs:NMTOKEN"
                    description="HAnimHumanoid version, where allowed value is 2.">
               <enumeration value="2.0"
                             appinfo="Revised standard HAnim 19774 version 2 (parts 1 and 2) were approved by ISO in November 2019, published by Web3D Consortium May 2020."
                             documentation="https://www.web3d.org/documents/specifications/19774/V2.0"/>
            </field>
            <field name="viewpoints"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="HAnimSite"
                    description="List of HAnimSite nodes containing Viewpoint nodes that appear in the skeleton model, usually as USE node references."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="HAnimJoint" minOccurs="0" maxOccurs="unbounded"/>
               <NodeContentModel name="HAnimSegment" minOccurs="0" maxOccurs="unbounded"/>
               <NodeContentModel name="HAnimSite" minOccurs="0" maxOccurs="unbounded"/>
               <NodeContentModel name="HAnimMotion" minOccurs="0" maxOccurs="unbounded"/>
               <NodeContentModel name="Shape"/>
               <NodeContentModel name="Group"/>
               <NodeContentModel name="LOD"/>
               <NodeContentModel name="Switch"/>
               <NodeContentModel name="Transform"/>
               <NodeContentModel name="IndexedFaceSet"/>
               <NodeContentModel name="IndexedQuadSet"/>
               <NodeContentModel name="IndexedTriangleFanSet"/>
               <NodeContentModel name="IndexedTriangleSet"/>
               <NodeContentModel name="IndexedTriangleStripSet"/>
               <NodeContentModel name="Coordinate"/>
               <NodeContentModel name="CoordinateDouble"/>
               <NodeContentModel name="Normal" minOccurs="0" maxOccurs="2"/>
               <NodeContentModel name="ProtoInstance" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="HAnimJoint">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimJoint"
                               appinfo="HAnimJoint node can represent each joint in a body.">
            <componentInfo name="HAnim" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="HAnimJoint|HAnimSegment"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="center"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Translation offset from origin of local coordinate system."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="HAnimJoint|HAnimSegment"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="displacers"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="HAnimDisplacer"
                    description="the displacers field stores HAnimDisplacer objects for a particular HAnimJoint object."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="limitOrientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Orientation of upper/lower rotation limits, relative to HAnimJoint center."/>
            <field name="llimit"
                    type="MFFloat"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Lower limit for minimum joint rotation in radians."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="hanimJointNameValues"
                    baseType="xs:NMTOKEN"
                    description="Unique name attribute must be defined so that HAnimJoint node can be identified at run time for animation purposes.">
               <enumeration value="humanoid_root"
                             index="1"
                             loa="0"
                             default="0 0.8240 0.0277"
                             documentation="https://en.wikipedia.org/wiki/Outline_of_human_anatomy#Joints"/>
               <enumeration value="sacroiliac"
                             index="2"
                             alias="SIJ,SI joint"
                             default="0 0.9149 0.0016"
                             parent="humanoid_root"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Sacroiliac_joint"/>
               <enumeration value="l_hip"
                             index="3"
                             default="0.0961 0.9124 -0.0001"
                             parent="sacroiliac"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Hip"/>
               <enumeration value="l_knee"
                             index="4"
                             default="0.1040 0.4867 0.0308"
                             parent="l_hip"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Knee"/>
               <enumeration value="l_talocrural"
                             index="5"
                             alias="l_ankle"
                             default="0.1101 0.0656 -0.0736"
                             parent="l_knee"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Ankle"/>
               <enumeration value="l_talocalcaneonavicular"
                             index="6"
                             alias="l_talocalcaneal"
                             parent="l_talocrural"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Subtalar_joint"/>
               <enumeration value="l_cuneonavicular_1"
                             index="7"
                             parent="l_talocalcaneonavicular"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
               <enumeration value="l_tarsometatarsal_1"
                             index="8"
                             parent="l_cuneonavicular_1"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
               <enumeration value="l_metatarsophalangeal_1"
                             index="9"
                             parent="l_tarsometatarsal_1"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
               <enumeration value="l_tarsal_interphalangeal_1"
                             index="10"
                             parent="l_metatarsophalangeal_1"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="l_cuneonavicular_2"
                             index="11"
                             alias="l_cuneonavicular"
                             parent="l_talocalcaneonavicular"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
               <enumeration value="l_tarsometatarsal_2"
                             index="12"
                             alias="l_subtalar,l_tarsometatarsal"
                             default="0.1086 0.0001 -0.0368"
                             parent="l_cuneonavicular_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
               <enumeration value="l_metatarsophalangeal_2"
                             index="13"
                             alias="l_midtarsal,l_metatarsophalangeal"
                             default="0.1086 0.0001 0.0368"
                             parent="l_tarsometatarsal_2"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
               <enumeration value="l_tarsal_proximal_interphalangeal_2"
                             index="14"
                             alias="l_tarsal_proximal_interphalangeal"
                             parent="l_metatarsophalangeal_2"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="l_tarsal_distal_interphalangeal_2"
                             index="15"
                             alias="l_tarsal_distal_interphalangeal"
                             default="0.1086 0.0000 0.0762"
                             parent="l_tarsal_proximal_interphalangeal_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="l_cuneonavicular_3"
                             index="16"
                             parent="l_talocalcaneonavicular"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
               <enumeration value="l_tarsometatarsal_3"
                             index="17"
                             parent="l_cuneonavicular_3"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
               <enumeration value="l_metatarsophalangeal_3"
                             index="18"
                             parent="l_tarsometatarsal_3"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
               <enumeration value="l_tarsal_proximal_interphalangeal_3"
                             index="19"
                             parent="l_metatarsophalangeal_3"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="l_tarsal_distal_interphalangeal_3"
                             index="20"
                             parent="l_tarsal_proximal_interphalangeal_3"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="l_calcaneocuboid"
                             index="21"
                             alias="l_calcaneuscuboid"
                             parent="l_talocrural"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Calcaneocuboid_joint"/>
               <enumeration value="l_transversetarsal"
                             index="22"
                             parent="l_calcaneocuboid"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Transverse_tarsal_joint"/>
               <enumeration value="l_tarsometatarsal_4"
                             index="23"
                             parent="l_transversetarsal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
               <enumeration value="l_metatarsophalangeal_4"
                             index="24"
                             parent="l_tarsometatarsal_4"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
               <enumeration value="l_tarsal_proximal_interphalangeal_4"
                             index="25"
                             parent="l_metatarsophalangeal_4"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="l_tarsal_distal_interphalangeal_4"
                             index="26"
                             parent="l_tarsal_proximal_interphalangeal_4"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="l_tarsometatarsal_5"
                             index="27"
                             parent="l_transversetarsal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
               <enumeration value="l_metatarsophalangeal_5"
                             index="28"
                             parent="l_tarsometatarsal_5"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
               <enumeration value="l_tarsal_proximal_interphalangeal_5"
                             index="29"
                             parent="l_metatarsophalangeal_5"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="l_tarsal_distal_interphalangeal_5"
                             index="30"
                             parent="l_tarsal_proximal_interphalangeal_5"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="r_hip"
                             index="31"
                             default="-0.0950 0.9171 0.0029"
                             parent="sacroiliac"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Hip"/>
               <enumeration value="r_knee"
                             index="32"
                             default="-0.0867 0.4913 0.0318"
                             parent="r_hip"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Knee"/>
               <enumeration value="r_talocrural"
                             index="33"
                             alias="r_ankle"
                             default="-0.0801 0.0712 -0.0766"
                             parent="r_knee"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Ankle"/>
               <enumeration value="r_talocalcaneonavicular"
                             index="34"
                             alias="r_talocalcaneal"
                             parent="r_talocrural"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Subtalar_joint"/>
               <enumeration value="r_cuneonavicular_1"
                             index="35"
                             parent="r_talocalcaneonavicular"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
               <enumeration value="r_tarsometatarsal_1"
                             index="36"
                             parent="r_cuneonavicular_1"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
               <enumeration value="r_metatarsophalangeal_1"
                             index="37"
                             parent="r_tarsometatarsal_1"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
               <enumeration value="r_tarsal_interphalangeal_1"
                             index="38"
                             parent="r_metatarsophalangeal_1"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="r_cuneonavicular_2"
                             index="39"
                             alias="r_cuneonavicular"
                             parent="r_talocalcaneonavicular"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
               <enumeration value="r_tarsometatarsal_2"
                             index="40"
                             alias="r_subtalar,r_tarsometatarsal"
                             default="-0.0801 0.0000 -0.0368"
                             parent="r_cuneonavicular_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
               <enumeration value="r_metatarsophalangeal_2"
                             index="41"
                             alias="r_midtarsal,r_metatarsophalangeal"
                             default="-0.0801 0.0000 0.0368"
                             parent="r_tarsometatarsal_2"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
               <enumeration value="r_tarsal_proximal_interphalangeal_2"
                             index="42"
                             alias="r_tarsal_proximal_interphalangeal"
                             parent="r_metatarsophalangeal_2"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="r_tarsal_distal_interphalangeal_2"
                             index="43"
                             alias="r_metatarsal,r_tarsal_distal_interphalangeal"
                             default="-0.0801 0.0039 0.0732"
                             parent="r_tarsal_proximal_interphalangeal_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="r_cuneonavicular_3"
                             index="44"
                             parent="r_talocalcaneonavicular"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint"/>
               <enumeration value="r_tarsometatarsal_3"
                             index="45"
                             parent="r_cuneonavicular_3"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
               <enumeration value="r_metatarsophalangeal_3"
                             index="46"
                             parent="r_tarsometatarsal_3"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
               <enumeration value="r_tarsal_proximal_interphalangeal_3"
                             index="47"
                             parent="r_metatarsophalangeal_3"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="r_tarsal_distal_interphalangeal_3"
                             index="48"
                             parent="r_tarsal_proximal_interphalangeal_3"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="r_calcaneocuboid"
                             index="49"
                             alias="r_calcaneuscuboid"
                             parent="r_talocrural"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Calcaneocuboid_joint"/>
               <enumeration value="r_transversetarsal"
                             index="50"
                             parent="r_calcaneocuboid"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Transverse_tarsal_joint"/>
               <enumeration value="r_tarsometatarsal_4"
                             index="51"
                             parent="r_transversetarsal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
               <enumeration value="r_metatarsophalangeal_4"
                             index="52"
                             parent="r_tarsometatarsal_4"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
               <enumeration value="r_tarsal_proximal_interphalangeal_4"
                             index="53"
                             parent="r_metatarsophalangeal_4"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="r_tarsal_distal_interphalangeal_4"
                             index="54"
                             parent="r_tarsal_proximal_interphalangeal_4"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="r_tarsometatarsal_5"
                             index="55"
                             parent="r_transversetarsal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints"/>
               <enumeration value="r_metatarsophalangeal_5"
                             index="56"
                             parent="r_tarsometatarsal_5"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints"/>
               <enumeration value="r_tarsal_proximal_interphalangeal_5"
                             index="57"
                             parent="r_metatarsophalangeal_5"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="r_tarsal_distal_interphalangeal_5"
                             index="58"
                             parent="r_tarsal_proximal_interphalangeal_5"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot"/>
               <enumeration value="vl5"
                             index="59"
                             default="0.0028 1.0568 -0.0776"
                             parent="humanoid_root"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vl4"
                             index="60"
                             default="0.0035 1.0925 -0.0787"
                             parent="vl5"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vl3"
                             index="61"
                             default="0.0041 1.1276 -0.0796"
                             parent="vl4"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vl2"
                             index="62"
                             default="0.0045 1.1546 -0.0800"
                             parent="vl3"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vl1"
                             index="63"
                             default="0.0048 1.1912 -0.0805"
                             parent="vl2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt12"
                             index="64"
                             default="0.0051 1.2278 -0.0808"
                             parent="vl1"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt11"
                             index="65"
                             default="0.0053 1.2679 -0.0810"
                             parent="vt12"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt10"
                             index="66"
                             default="0.0056 1.2848 -0.0822"
                             parent="vt11"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt9"
                             index="67"
                             default="0.0057 1.3126 -0.0838"
                             parent="vt10"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt8"
                             index="68"
                             default="0.0057 1.3382 -0.0845"
                             parent="vt9"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt7"
                             index="69"
                             default="0.0058 1.3625 -0.0833"
                             parent="vt8"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt6"
                             index="70"
                             default="0.0059 1.3866 -0.0800"
                             parent="vt7"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt5"
                             index="71"
                             default="0.0060 1.4102 -0.0745"
                             parent="vt6"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt4"
                             index="72"
                             default="0.0061 1.4320 -0.0675"
                             parent="vt5"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt3"
                             index="73"
                             default="0.0062 1.4583 -0.0570"
                             parent="vt4"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt2"
                             index="74"
                             default="0.0063 1.4761 -0.0484"
                             parent="vt3"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vt1"
                             index="75"
                             default="0.0065 1.4951 -0.0387"
                             parent="vt2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vc7"
                             index="76"
                             default="0.0066 1.5132 -0.0301"
                             parent="vt1"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vc6"
                             index="77"
                             default="0.0066 1.5357 -0.0143"
                             parent="vc7"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vc5"
                             index="78"
                             default="0.0066 1.5520 -0.0082"
                             parent="vc6"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vc4"
                             index="79"
                             default="0.0066 1.5662 -0.0084"
                             parent="vc5"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vc3"
                             index="80"
                             default="0.0066 1.5800 -0.0103"
                             parent="vc4"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vc2"
                             index="81"
                             default="0.0066 1.5928 -0.0103"
                             parent="vc3"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="vc1"
                             index="82"
                             default="0.0066 1.6144 -0.0034"
                             parent="vc2"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="skullbase"
                             index="83"
                             default="0.0044 1.6209 0.0236"
                             parent="vc1"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Skull"/>
               <enumeration value="l_eyelid_joint"
                             index="84"
                             parent="skullbase"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Eyelid"/>
               <enumeration value="r_eyelid_joint"
                             index="85"
                             parent="skullbase"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Eyelid"/>
               <enumeration value="l_eyeball_joint"
                             index="86"
                             default="0.0336 1.6332 0.0502"
                             parent="skullbase"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Eye"/>
               <enumeration value="r_eyeball_joint"
                             index="87"
                             default="-0.0236 1.6331 0.0510"
                             parent="skullbase"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Eye"/>
               <enumeration value="l_eyebrow_joint"
                             index="88"
                             parent="skullbase"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Eyebrow"/>
               <enumeration value="r_eyebrow_joint"
                             index="89"
                             parent="skullbase"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Eyebrow"/>
               <enumeration value="temporomandibular"
                             index="90"
                             parent="skullbase"
                             loa="3"
                             documentation="https://en.wikipedia.org/wiki/Temporomandibular_joint"/>
               <enumeration value="l_sternoclavicular"
                             index="91"
                             default="0.0820 1.4488 -0.0353"
                             parent="vt1"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Sternoclavicular_joint"/>
               <enumeration value="l_acromioclavicular"
                             index="92"
                             default="0.0962 1.4269 -0.0424"
                             parent="l_sternoclavicular"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Acromioclavicular_joint"/>
               <enumeration value="l_shoulder"
                             index="93"
                             default="0.2029 1.4376 -0.0387"
                             parent="l_acromioclavicular"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Shoulder"/>
               <enumeration value="l_elbow"
                             index="94"
                             default="0.2014 1.1357 -0.0682"
                             parent="l_shoulder"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Elbow"/>
               <enumeration value="l_radiocarpal"
                             index="95"
                             alias="l_wrist"
                             default="0.1984 0.8663 -0.0583"
                             parent="l_elbow"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Wrist"/>
               <enumeration value="l_midcarpal_1"
                             index="96"
                             parent="l_radiocarpal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
               <enumeration value="l_carpometacarpal_1"
                             index="97"
                             alias="l_thumb1"
                             default="0.1924 0.8472 -0.0534"
                             parent="l_midcarpal_1"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
               <enumeration value="l_metacarpophalangeal_1"
                             index="98"
                             alias="l_thumb2"
                             default="0.1951 0.8226 0.0246"
                             parent="l_carpometacarpal_1"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
               <enumeration value="l_carpal_interphalangeal_1"
                             index="99"
                             alias="l_thumb3"
                             default="0.1955 0.8159 0.0464"
                             parent="l_metacarpophalangeal_1"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="l_midcarpal_2"
                             index="100"
                             parent="l_radiocarpal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
               <enumeration value="l_carpometacarpal_2"
                             index="101"
                             alias="l_index0,l_carpometacarpal"
                             default="0.1983 0.8024 -0.0280"
                             parent="l_midcarpal_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
               <enumeration value="l_metacarpophalangeal_2"
                             index="102"
                             alias="l_index1,l_metacarpophalangeal"
                             default="0.1983 0.7815 -0.0280"
                             parent="l_carpometacarpal_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
               <enumeration value="l_carpal_proximal_interphalangeal_2"
                             index="103"
                             alias="l_index2,l_carpal_proximal_interphalangeal"
                             default="0.2017 0.7363 -0.0248"
                             parent="l_metacarpophalangeal_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="l_carpal_distal_interphalangeal_2"
                             index="104"
                             alias="l_index3,l_carpal_distal_interphalangeal"
                             default="0.2028 0.7139 -0.0236"
                             parent="l_carpal_proximal_interphalangeal_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="l_midcarpal_3"
                             index="105"
                             parent="l_radiocarpal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
               <enumeration value="l_carpometacarpal_3"
                             index="106"
                             alias="l_middle0"
                             default="0.1987 0.8029 -0.0530"
                             parent="l_midcarpal_3"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
               <enumeration value="l_metacarpophalangeal_3"
                             index="107"
                             alias="l_middle1"
                             default="0.1987 0.7818 -0.0530"
                             parent="l_carpometacarpal_3"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
               <enumeration value="l_carpal_proximal_interphalangeal_3"
                             index="108"
                             alias="l_middle2"
                             default="0.2013 0.7273 -0.0503"
                             parent="l_metacarpophalangeal_3"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="l_carpal_distal_interphalangeal_3"
                             index="109"
                             alias="l_middle3"
                             default="0.2026 0.7011 -0.0494"
                             parent="l_carpal_proximal_interphalangeal_3"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="l_midcarpal_4_5"
                             index="110"
                             parent="l_radiocarpal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
               <enumeration value="l_carpometacarpal_4"
                             index="111"
                             alias="l_ring0"
                             default="0.1956 0.8019 -0.0794"
                             parent="l_midcarpal_4_5"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
               <enumeration value="l_metacarpophalangeal_4"
                             index="112"
                             alias="l_ring1"
                             default="0.1956 0.7815 -0.0794"
                             parent="l_carpometacarpal_4"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
               <enumeration value="l_carpal_proximal_interphalangeal_4"
                             index="113"
                             alias="l_ring2"
                             default="0.1973 0.7287 -0.0777"
                             parent="l_metacarpophalangeal_4"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="l_carpal_distal_interphalangeal_4"
                             index="114"
                             alias="l_ring3"
                             parent="l_carpal_proximal_interphalangeal_4"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="l_carpometacarpal_5"
                             index="115"
                             alias="l_pinky0"
                             default="0.1925 0.8066 -0.1036"
                             parent="l_midcarpal_4_5"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
               <enumeration value="l_metacarpophalangeal_5"
                             index="116"
                             alias="l_pinky1"
                             default="0.1925 0.7866 -0.1036"
                             parent="l_carpometacarpal_5"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
               <enumeration value="l_carpal_proximal_interphalangeal_5"
                             index="117"
                             alias="l_pinky2"
                             default="0.1938 0.7452 -0.1024"
                             parent="l_metacarpophalangeal_5"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="l_carpal_distal_interphalangeal_5"
                             index="118"
                             alias="l_pinky3"
                             default="0.1948 0.7277 -0.1017"
                             parent="l_carpal_proximal_interphalangeal_5"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="r_sternoclavicular"
                             index="119"
                             default="-0.0694 1.4600 -0.0330"
                             parent="vt1"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Sternoclavicular_joint"/>
               <enumeration value="r_acromioclavicular"
                             index="120"
                             default="-0.0836 1.4281 -0.0401"
                             parent="r_sternoclavicular"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Acromioclavicular_joint"/>
               <enumeration value="r_shoulder"
                             index="121"
                             default="-0.1907 1.4407 -0.0325"
                             parent="r_acromioclavicular"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Shoulder"/>
               <enumeration value="r_elbow"
                             index="122"
                             default="-0.1949 1.1388 -0.0620"
                             parent="r_shoulder"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Elbow"/>
               <enumeration value="r_radiocarpal"
                             index="123"
                             alias="r_wrist"
                             default="-0.1959 0.8694 -0.0521"
                             parent="r_elbow"
                             loa="1"
                             documentation="https://en.wikipedia.org/wiki/Wrist"/>
               <enumeration value="r_midcarpal_1"
                             index="124"
                             parent="r_radiocarpal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
               <enumeration value="r_carpometacarpal_1"
                             index="125"
                             alias="r_thumb1"
                             default="-0.1899 0.8502 -0.0473"
                             parent="r_midcarpal_1"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
               <enumeration value="r_metacarpophalangeal_1"
                             index="126"
                             alias="r_thumb2"
                             default="-0.1874 0.8256 0.0306"
                             parent="r_carpometacarpal_1"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
               <enumeration value="r_carpal_interphalangeal_1"
                             index="127"
                             alias="r_thumb3"
                             default="-0.1864 0.8190 0.0506"
                             parent="r_metacarpophalangeal_1"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="r_midcarpal_2"
                             index="128"
                             parent="r_radiocarpal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
               <enumeration value="r_carpometacarpal_2"
                             index="129"
                             alias="r_index0,r_carpometacarpal"
                             parent="r_midcarpal_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
               <enumeration value="r_metacarpophalangeal_2"
                             index="130"
                             alias="r_index1,r_metacarpophalangeal"
                             default="-0.1961 0.8055 -0.0218"
                             parent="r_carpometacarpal_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
               <enumeration value="r_carpal_proximal_interphalangeal_2"
                             index="131"
                             alias="r_index2,r_carpal_proximal_interphalangeal"
                             default="-0.1954 0.7393 -0.0185"
                             parent="r_metacarpophalangeal_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="r_carpal_distal_interphalangeal_2"
                             index="132"
                             alias="r_index3,r_carpal_distal_interphalangeal"
                             default="-0.1945 0.7169 -0.0173"
                             parent="r_carpal_proximal_interphalangeal_2"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="r_midcarpal_3"
                             index="133"
                             parent="r_radiocarpal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
               <enumeration value="r_carpometacarpal_3"
                             index="134"
                             alias="r_middle0"
                             default="-0.1972 0.8060 -0.0468"
                             parent="r_midcarpal_3"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
               <enumeration value="r_metacarpophalangeal_3"
                             index="135"
                             alias="r_middle1"
                             default="-0.1972 0.7849 -0.0468"
                             parent="r_carpometacarpal_3"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
               <enumeration value="r_carpal_proximal_interphalangeal_3"
                             index="136"
                             alias="r_middle2"
                             default="-0.1950 0.7304 -0.0441"
                             parent="r_metacarpophalangeal_3"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="r_carpal_distal_interphalangeal_3"
                             index="137"
                             alias="r_middle3"
                             default="-0.1939 0.7042 -0.0432"
                             parent="r_carpal_proximal_interphalangeal_3"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="r_midcarpal_4_5"
                             index="138"
                             parent="r_radiocarpal"
                             loa="4"
                             documentation="https://en.wikipedia.org/wiki/Midcarpal_joint"/>
               <enumeration value="r_carpometacarpal_4"
                             index="139"
                             alias="r_ring0"
                             default="-0.1951 0.8049 -0.0732"
                             parent="r_midcarpal_4_5"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
               <enumeration value="r_metacarpophalangeal_4"
                             index="140"
                             alias="r_ring1"
                             default="-0.1951 0.7845 -0.0732"
                             parent="r_carpometacarpal_4"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
               <enumeration value="r_carpal_proximal_interphalangeal_4"
                             index="141"
                             alias="r_ring2"
                             default="-0.1920 0.7318 -0.0716"
                             parent="r_metacarpophalangeal_4"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="r_carpal_distal_interphalangeal_4"
                             index="142"
                             alias="r_ring3"
                             default="-0.1908 0.7077 -0.0706"
                             parent="r_carpal_proximal_interphalangeal_4"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="r_carpometacarpal_5"
                             index="143"
                             alias="r_pinky0"
                             default="-0.1926 0.8096 -0.0975"
                             parent="r_midcarpal_4_5"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint"/>
               <enumeration value="r_metacarpophalangeal_5"
                             index="144"
                             alias="r_pinky1"
                             default="-0.1926 0.7896 -0.0975"
                             parent="r_carpometacarpal_5"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint"/>
               <enumeration value="r_carpal_proximal_interphalangeal_5"
                             index="145"
                             alias="r_pinky2"
                             default="-0.1902 0.7483 -0.0963"
                             parent="r_metacarpophalangeal_5"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
               <enumeration value="r_carpal_distal_interphalangeal_5"
                             index="146"
                             alias="r_pinky3"
                             default="-0.1908 0.7540 -0.0960"
                             parent="r_carpal_proximal_interphalangeal_5"
                             loa="2"
                             documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand"/>
            </field>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="HAnimJoint|HAnimSegment"/>
            <field name="rotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Orientation of children relative to local coordinate system."/>
            <field name="scale"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    minExclusive="0"
                    description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation."/>
            <field name="scaleOrientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)."/>
            <field name="skinCoordIndex"
                    type="MFInt32"
                    accessType="inputOutput"
                    minInclusive="0"
                    description="Coordinate index values referencing which vertices are influenced by the HAnimJoint."/>
            <field name="skinCoordWeight"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="Weight deformation values for the corresponding values in the skinCoordIndex field."/>
            <field name="stiffness"
                    type="MFFloat"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="A scale factor of (1 - stiffness) is applied around the corresponding axis (X, Y, or Z for entries 0, 1 and 2 of the stiffness field)."/>
            <field name="translation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position of children relative to local coordinate system."/>
            <field name="ulimit"
                    type="MFFloat"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Upper limit for maximum joint rotation in radians."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesHAnimJoint"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="HAnimDisplacer"/>
               <NodeContentModel name="HAnimJoint"/>
               <NodeContentModel name="HAnimSegment"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="HAnimMotion">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimMotion"
                               appinfo="An HAnimMotion node supports discrete frame-by-frame playback for H-Anim motion data animation.">
            <componentInfo name="HAnim" level="2"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="channels"
                    type="MFString"
                    accessType="inputOutput"
                    description="list of number of channels for transformation, followed by transformation type of each channel of data."/>
            <field name="channelsEnabled"
                    type="MFBool"
                    accessType="inputOutput"
                    description="boolean values for each channel indicating whether enabled."/>
            <field name="cycleTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    description="cycleTime sends a time event at initial starting time and at beginning of each new cycle."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    description="elapsedTime is computed elapsed time since the Motion object was activated and running, counting all traversed frames (as if frameIndex equaled 1) and multiplied by frameDuration, cumulative in seconds."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Enables/disables node operation."/>
            <field name="endFrame"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="endFrame indicates final index of animated frame."/>
            <field name="frameDuration"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.1"
                    minExclusive="0"
                    description="frameDuration specifies the duration of each frame in seconds."/>
            <field name="frameIncrement"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="1"
                    description="frameIncrement field controls whether playback direction is forwards or backwards, and also whether frames are skipped (for example, subsampled replay)."/>
            <field name="frameIndex"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="frameIndex indicates index of current frame."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="joints"
                    type="MFString"
                    accessType="inputOutput"
                    description="joints field lists names of joints that raw motion data is to be applied to."/>
            <field name="loa"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="-1"
                    minInclusive="-1"
                    maxInclusive="4"
                    baseType="loaType"
                    description="Level Of Articulation 0."/>
            <field name="loop"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Repeat indefinitely when loop=true, repeat only once when loop=false."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="Unique name attribute must be defined so that HAnimMotion node can be identified at run time for animation purposes."/>
            <field name="skeletalConfiguration"
                    type="SFString"
                    accessType="inputOutput"
                    default="BASIC"
                    description="Models sharing a common skeletal configuration can share animations and binding poses."/>
            <field name="startFrame"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="startFrame indicates initial index of animated frame."/>
            <field name="totalFrameCount"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="totalFrameCount indicates the total number of frames present in the animation, equaling the number of sets of channel data rows present in the values array."/>
            <field name="values"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="values field contains all transformation values, ordered first by frame, then by joint, and then by transformation Sets of floats in the values array matching the order listed in joints and channels fields."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesHAnimMotion"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="HAnimSegment">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimSegment"
                               appinfo="HAnimSegment node contains Shape geometry for each body segment, providing a visual representation of the skeleton segment.">
            <componentInfo name="HAnim" level="1"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="centerOfMass"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Location within segment of center of mass."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Coordinate|CoordinateDouble"
                    description="the coord field is used for HAnimSegment objects that have deformable meshes and shall contain coordinates referenced from the IndexedFaceSet for the paarent HAnimSegment object."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="displacers"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="HAnimDisplacer"
                    description="the displacers field stores HAnimDisplacer objects for a particular HAnimSegment object."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mass"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="Total mass of the segment, 0 if not available, defined in mass base units (default is kilograms)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="momentsOfInertia"
                    type="MFFloat"
                    accessType="inputOutput"
                    default="0 0 0 0 0 0 0 0 0"
                    minInclusive="0"
                    description="3x3 moments of inertia matrix."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="hanimSegmentNameValues"
                    baseType="xs:NMTOKEN"
                    description="Unique name attribute must be defined so that HAnimSegment node can be identified at run time for animation purposes.">
               <enumeration value="sacrum"
                             index="1"
                             loa="1"
                             parent="humanoid_root"
                             documentation="https://en.wikipedia.org/wiki/Sacrum"/>
               <enumeration value="pelvis"
                             index="2"
                             loa="1"
                             parent="sacroiliac"
                             documentation="https://en.wikipedia.org/wiki/Pelvis"/>
               <enumeration value="l_thigh"
                             index="3"
                             loa="1"
                             parent="l_hip"
                             documentation="https://en.wikipedia.org/wiki/Thigh"/>
               <enumeration value="l_calf"
                             index="4"
                             loa="1"
                             parent="l_knee"
                             documentation="https://en.wikipedia.org/wiki/Calf_(leg)"/>
               <enumeration value="l_talus"
                             index="5"
                             alias="l_hindfoot"
                             loa="1"
                             parent="l_talocrural"
                             documentation="https://en.wikipedia.org/wiki/Talus_bone"/>
               <enumeration value="l_navicular"
                             index="6"
                             loa="4"
                             parent="l_talocalcaneonavicular"
                             documentation="https://en.wikipedia.org/wiki/Navicular_bone"/>
               <enumeration value="l_cuneiform_1"
                             index="7"
                             loa="4"
                             parent="l_cuneonavicular_1"
                             documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
               <enumeration value="l_metatarsal_1"
                             index="8"
                             loa="4"
                             parent="l_tarsometatarsal_1"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="l_tarsal_proximal_phalanx_1"
                             index="9"
                             loa="4"
                             parent="l_metatarsophalangeal_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_1"
                             index="10"
                             loa="4"
                             parent="l_tarsal_interphalangeal_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_cuneiform_2"
                             index="11"
                             alias="l_cuneiform"
                             loa="4"
                             parent="l_cuneonavicular_2"
                             documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
               <enumeration value="l_metatarsal_2"
                             index="12"
                             alias="l_midproximal,l_metatarsal"
                             loa="2"
                             parent="l_tarsometatarsal_2"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="l_tarsal_proximal_phalanx_2"
                             index="13"
                             alias="l_middistal,l_tarsal_proximal_phalanx"
                             loa="1"
                             parent="l_metatarsophalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_middle_phalanx_2"
                             index="14"
                             alias="l_tarsal_middle_phalanx"
                             loa="4"
                             parent="l_tarsal_proximal_interphalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_2"
                             index="15"
                             alias="l_forefoot,l_tarsal_distal_phalanx"
                             loa="2"
                             parent="l_tarsal_distal_interphalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_cuneiform_3"
                             index="16"
                             loa="4"
                             parent="l_cuneonavicular_3"
                             documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
               <enumeration value="l_metatarsal_3"
                             index="17"
                             loa="4"
                             parent="l_tarsometatarsal_3"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="l_tarsal_proximal_phalanx_3"
                             index="18"
                             loa="4"
                             parent="l_metatarsophalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_middle_phalanx_3"
                             index="19"
                             loa="4"
                             parent="l_tarsal_proximal_interphalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_3"
                             index="20"
                             loa="4"
                             parent="l_tarsal_distal_interphalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_calcaneus"
                             index="21"
                             alias="l_calcaneum"
                             loa="4"
                             parent="l_calcaneocuboid"
                             documentation="https://en.wikipedia.org/wiki/Calcaneus"/>
               <enumeration value="l_cuboid"
                             index="22"
                             loa="4"
                             parent="l_transversetarsal"
                             documentation="https://en.wikipedia.org/wiki/Cuboid"/>
               <enumeration value="l_metatarsal_4"
                             index="23"
                             loa="4"
                             parent="l_tarsometatarsal_4"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="l_tarsal_proximal_phalanx_4"
                             index="24"
                             loa="4"
                             parent="l_metatarsophalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_middle_phalanx_4"
                             index="25"
                             loa="4"
                             parent="l_tarsal_proximal_interphalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_4"
                             index="26"
                             loa="4"
                             parent="l_tarsal_distal_interphalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_metatarsal_5"
                             index="27"
                             loa="4"
                             parent="l_tarsometatarsal_5"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="l_tarsal_proximal_phalanx_5"
                             index="28"
                             loa="4"
                             parent="l_metatarsophalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_middle_phalanx_5"
                             index="29"
                             loa="4"
                             parent="l_tarsal_proximal_interphalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_5"
                             index="30"
                             loa="4"
                             parent="l_tarsal_distal_interphalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_thigh"
                             index="31"
                             loa="1"
                             parent="r_hip"
                             documentation="https://en.wikipedia.org/wiki/Thigh"/>
               <enumeration value="r_calf"
                             index="32"
                             loa="1"
                             parent="r_knee"
                             documentation="https://en.wikipedia.org/wiki/Calf_(leg)"/>
               <enumeration value="r_talus"
                             index="33"
                             alias="r_hindfoot"
                             loa="1"
                             parent="r_talocrural"
                             documentation="https://en.wikipedia.org/wiki/Talus_bone"/>
               <enumeration value="r_navicular"
                             index="34"
                             loa="4"
                             parent="r_talocalcaneonavicular"
                             documentation="https://en.wikipedia.org/wiki/Navicular_bone"/>
               <enumeration value="r_cuneiform_1"
                             index="35"
                             loa="4"
                             parent="r_cuneonavicular_1"
                             documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
               <enumeration value="r_metatarsal_1"
                             index="36"
                             loa="4"
                             parent="r_tarsometatarsal_1"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="r_tarsal_proximal_phalanx_1"
                             index="37"
                             loa="4"
                             parent="r_metatarsophalangeal_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_1"
                             index="38"
                             loa="4"
                             parent="r_tarsal_interphalangeal_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_cuneiform_2"
                             index="39"
                             alias="r_cuneiform"
                             loa="4"
                             parent="r_cuneonavicular_2"
                             documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
               <enumeration value="r_metatarsal_2"
                             index="40"
                             alias="r_midproximal"
                             loa="2"
                             parent="r_tarsometatarsal_2"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="r_tarsal_proximal_phalanx_2"
                             index="41"
                             alias="r_middistal,r_tarsal_proximal_phalanx"
                             loa="1"
                             parent="r_metatarsophalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_middle_phalanx_2"
                             index="42"
                             alias="r_tarsal_middle_phalanx"
                             loa="4"
                             parent="r_tarsal_proximal_interphalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_2"
                             index="43"
                             alias="r_forefoot,r_tarsal_distal_phalanx"
                             loa="2"
                             parent="r_tarsal_distal_interphalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_cuneiform_3"
                             index="44"
                             loa="4"
                             parent="r_cuneonavicular_3"
                             documentation="https://en.wikipedia.org/wiki/Cuneiform_bones"/>
               <enumeration value="r_metatarsal_3"
                             index="45"
                             loa="4"
                             parent="r_tarsometatarsal_3"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="r_tarsal_proximal_phalanx_3"
                             index="46"
                             loa="4"
                             parent="r_metatarsophalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_middle_phalanx_3"
                             index="47"
                             loa="4"
                             parent="r_tarsal_proximal_interphalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_3"
                             index="48"
                             loa="4"
                             parent="r_tarsal_distal_interphalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_calcaneus"
                             index="49"
                             alias="r_calcaneum"
                             loa="4"
                             parent="r_calcaneocuboid"
                             documentation="https://en.wikipedia.org/wiki/Calcaneus"/>
               <enumeration value="r_cuboid"
                             index="50"
                             loa="4"
                             parent="r_transversetarsal"
                             documentation="https://en.wikipedia.org/wiki/Cuboid"/>
               <enumeration value="r_metatarsal_4"
                             index="51"
                             loa="4"
                             parent="r_tarsometatarsal_4"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="r_tarsal_proximal_phalanx_4"
                             index="52"
                             loa="4"
                             parent="r_metatarsophalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_middle_phalanx_4"
                             index="53"
                             loa="4"
                             parent="r_tarsal_proximal_interphalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_4"
                             index="54"
                             loa="4"
                             parent="r_tarsal_distal_interphalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_metatarsal_5"
                             index="55"
                             loa="4"
                             parent="r_tarsometatarsal_5"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="r_tarsal_proximal_phalanx_5"
                             index="56"
                             loa="4"
                             parent="r_metatarsophalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_middle_phalanx_5"
                             index="57"
                             loa="4"
                             parent="r_tarsal_proximal_interphalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_5"
                             index="58"
                             loa="4"
                             parent="r_tarsal_distal_interphalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l5"
                             index="59"
                             loa="1"
                             parent="vl5"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="l4"
                             index="60"
                             loa="3"
                             parent="vl4"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="l3"
                             index="61"
                             loa="2"
                             parent="vl3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="l2"
                             index="62"
                             loa="3"
                             parent="vl2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="l1"
                             index="63"
                             loa="2"
                             parent="vl1"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t12"
                             index="64"
                             loa="3"
                             parent="vt12"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t11"
                             index="65"
                             loa="3"
                             parent="vt11"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t10"
                             index="66"
                             loa="2"
                             parent="vt10"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t9"
                             index="67"
                             loa="3"
                             parent="vt9"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t8"
                             index="68"
                             loa="3"
                             parent="vt8"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t7"
                             index="69"
                             loa="3"
                             parent="vt7"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t6"
                             index="70"
                             loa="2"
                             parent="vt6"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t5"
                             index="71"
                             loa="3"
                             parent="vt5"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t4"
                             index="72"
                             loa="3"
                             parent="vt4"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t3"
                             index="73"
                             loa="3"
                             parent="vt3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t2"
                             index="74"
                             loa="3"
                             parent="vt2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="t1"
                             index="75"
                             loa="2"
                             parent="vt1"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="c7"
                             index="76"
                             loa="3"
                             parent="vc7"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="c6"
                             index="77"
                             loa="3"
                             parent="vc6"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="c5"
                             index="78"
                             loa="3"
                             parent="vc5"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="c4"
                             index="79"
                             loa="2"
                             parent="vc4"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="c3"
                             index="80"
                             loa="3"
                             parent="vc3"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="c2"
                             index="81"
                             loa="2"
                             parent="vc2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="c1"
                             index="82"
                             loa="3"
                             parent="vc1"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="skull"
                             index="83"
                             alias="head"
                             loa="1"
                             parent="skullbase"
                             documentation="https://en.wikipedia.org/wiki/Skull"/>
               <enumeration value="l_eyelid"
                             index="84"
                             loa="3"
                             parent="l_eyelid_joint"
                             documentation="https://en.wikipedia.org/wiki/Eyelid"/>
               <enumeration value="r_eyelid"
                             index="85"
                             loa="3"
                             parent="r_eyelid_joint"
                             documentation="https://en.wikipedia.org/wiki/Eyelid"/>
               <enumeration value="l_eyeball"
                             index="86"
                             loa="3"
                             parent="l_eyeball_joint"
                             documentation="https://en.wikipedia.org/wiki/Eye"/>
               <enumeration value="r_eyeball"
                             index="87"
                             loa="3"
                             parent="r_eyeball_joint"
                             documentation="https://en.wikipedia.org/wiki/Eye"/>
               <enumeration value="l_eyebrow"
                             index="88"
                             loa="3"
                             parent="l_eyebrow_joint"
                             documentation="https://en.wikipedia.org/wiki/Eyebrow"/>
               <enumeration value="r_eyebrow"
                             index="89"
                             loa="3"
                             parent="r_eyebrow_joint"
                             documentation="https://en.wikipedia.org/wiki/Eyebrow"/>
               <enumeration value="jaw"
                             index="90"
                             loa="3"
                             parent="temporomandibular"
                             documentation="https://en.wikipedia.org/wiki/Jaw"/>
               <enumeration value="l_clavicle"
                             index="91"
                             loa="2"
                             parent="l_sternoclavicular"
                             documentation="https://en.wikipedia.org/wiki/Clavicle"/>
               <enumeration value="l_scapula"
                             index="92"
                             loa="2"
                             parent="l_acromioclavicular"
                             documentation="https://en.wikipedia.org/wiki/Scapula"/>
               <enumeration value="l_upperarm"
                             index="93"
                             loa="1"
                             parent="l_shoulder"
                             documentation="https://en.wikipedia.org/wiki/Arm"/>
               <enumeration value="l_forearm"
                             index="94"
                             loa="1"
                             parent="l_elbow"
                             documentation="https://en.wikipedia.org/wiki/Forearm"/>
               <enumeration value="l_carpal"
                             index="95"
                             alias="l_hand"
                             loa="1"
                             parent="l_radiocarpal"
                             documentation="https://en.wikipedia.org/wiki/Carpal_bones"/>
               <enumeration value="l_trapezium"
                             index="96"
                             loa="4"
                             parent="l_midcarpal_1"
                             documentation="https://en.wikipedia.org/wiki/Trapezium_(bone)"/>
               <enumeration value="l_metacarpal_1"
                             index="97"
                             alias="l_thumb_metacarpal"
                             loa="2"
                             parent="l_carpometacarpal_1"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="l_carpal_proximal_phalanx_1"
                             index="98"
                             alias="l_thumb_proximal"
                             loa="2"
                             parent="l_metacarpophalangeal_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_1"
                             index="99"
                             alias="l_thumb_distal"
                             loa="2"
                             parent="l_carpal_interphalangeal_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_trapezoid"
                             index="100"
                             loa="4"
                             parent="l_midcarpal_2"
                             documentation="https://en.wikipedia.org/wiki/Trapezoid_bone"/>
               <enumeration value="l_metacarpal_2"
                             index="101"
                             alias="l_index_metacarpal"
                             loa="2"
                             parent="l_carpometacarpal_2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="l_carpal_proximal_phalanx_2"
                             index="102"
                             alias="l_index_proximal,l_carpal_proximal_phalanx"
                             loa="2"
                             parent="l_metacarpophalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_middle_phalanx_2"
                             index="103"
                             alias="l_index_middle,l_carpal_middle_phalanx"
                             loa="2"
                             parent="l_carpal_proximal_interphalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_2"
                             index="104"
                             alias="l_index_distal,l_carpal_distal_phalanx"
                             loa="2"
                             parent="l_carpal_distal_interphalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_capitate"
                             index="105"
                             loa="4"
                             parent="l_midcarpal_3"
                             documentation="https://en.wikipedia.org/wiki/Capitate_bone"/>
               <enumeration value="l_metacarpal_3"
                             index="106"
                             alias="l_middle_metacarpal"
                             loa="2"
                             parent="l_carpometacarpal_3"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="l_carpal_proximal_phalanx_3"
                             index="107"
                             alias="l_middle_proximal"
                             loa="2"
                             parent="l_metacarpophalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_middle_phalanx_3"
                             index="108"
                             alias="l_middle_middle"
                             loa="2"
                             parent="l_carpal_proximal_interphalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_3"
                             index="109"
                             alias="l_middle_distal"
                             loa="2"
                             parent="l_carpal_distal_interphalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_hamate"
                             index="110"
                             loa="4"
                             parent="l_midcarpal_4_5"
                             documentation="https://en.wikipedia.org/wiki/Hamate_bone"/>
               <enumeration value="l_metacarpal_4"
                             index="111"
                             alias="l_ring_metacarpal"
                             loa="2"
                             parent="l_carpometacarpal_4"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="l_carpal_proximal_phalanx_4"
                             index="112"
                             alias="l_ring_proximal"
                             loa="2"
                             parent="l_metacarpophalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_middle_phalanx_4"
                             index="113"
                             alias="l_ring_middle"
                             loa="2"
                             parent="l_carpal_proximal_interphalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_4"
                             index="114"
                             alias="l_ring_distal"
                             loa="2"
                             parent="l_carpal_distal_interphalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_metacarpal_5"
                             index="115"
                             alias="l_pinky_metacarpal"
                             loa="2"
                             parent="l_carpometacarpal_5"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="l_carpal_proximal_phalanx_5"
                             index="116"
                             alias="l_pinky_proximal"
                             loa="2"
                             parent="l_metacarpophalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_middle_phalanx_5"
                             index="117"
                             alias="l_pinky_middle"
                             loa="2"
                             parent="l_carpal_proximal_interphalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_5"
                             index="118"
                             alias="l_pinky_distal"
                             loa="2"
                             parent="l_carpal_distal_interphalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_clavicle"
                             index="119"
                             loa="2"
                             parent="r_sternoclavicular"
                             documentation="https://en.wikipedia.org/wiki/Clavicle"/>
               <enumeration value="r_scapula"
                             index="120"
                             loa="2"
                             parent="r_acromioclavicular"
                             documentation="https://en.wikipedia.org/wiki/Scapula"/>
               <enumeration value="r_upperarm"
                             index="121"
                             loa="1"
                             parent="r_shoulder"
                             documentation="https://en.wikipedia.org/wiki/Arm"/>
               <enumeration value="r_forearm"
                             index="122"
                             loa="1"
                             parent="r_elbow"
                             documentation="https://en.wikipedia.org/wiki/Forearm"/>
               <enumeration value="r_carpal"
                             index="123"
                             alias="r_hand"
                             loa="1"
                             parent="r_radiocarpal"
                             documentation="https://en.wikipedia.org/wiki/Carpal_bones"/>
               <enumeration value="r_trapezium"
                             index="124"
                             loa="4"
                             parent="r_midcarpal_1"
                             documentation="https://en.wikipedia.org/wiki/Trapezium_(bone)"/>
               <enumeration value="r_metacarpal_1"
                             index="125"
                             alias="r_thumb_metacarpal"
                             loa="2"
                             parent="r_carpometacarpal_1"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="r_carpal_proximal_phalanx_1"
                             index="126"
                             alias="r_thumb_proximal"
                             loa="2"
                             parent="r_metacarpophalangeal_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_1"
                             index="127"
                             alias="r_thumb_distal"
                             loa="2"
                             parent="r_carpal_interphalangeal_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_trapezoid"
                             index="128"
                             loa="4"
                             parent="r_midcarpal_2"
                             documentation="https://en.wikipedia.org/wiki/Trapezoid_bone"/>
               <enumeration value="r_metacarpal_2"
                             index="129"
                             alias="r_index_metacarpal"
                             loa="2"
                             parent="r_carpometacarpal_2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="r_carpal_proximal_phalanx_2"
                             index="130"
                             alias="r_index_proximal,r_carpal_proximal_phalanx"
                             loa="2"
                             parent="r_metacarpophalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_middle_phalanx_2"
                             index="131"
                             alias="r_index_middle,r_carpal_middle_phalanx"
                             loa="2"
                             parent="r_carpal_proximal_interphalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_2"
                             index="132"
                             alias="r_index_distal,r_carpal_distal_phalanx"
                             loa="2"
                             parent="r_carpal_distal_interphalangeal_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_capitate"
                             index="133"
                             loa="4"
                             parent="r_midcarpal_3"
                             documentation="https://en.wikipedia.org/wiki/Capitate_bone"/>
               <enumeration value="r_metacarpal_3"
                             index="134"
                             alias="r_middle_metacarpal"
                             loa="2"
                             parent="r_carpometacarpal_3"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="r_carpal_proximal_phalanx_3"
                             index="135"
                             alias="r_middle_proximal"
                             loa="2"
                             parent="r_metacarpophalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_middle_phalanx_3"
                             index="136"
                             alias="r_middle_middle"
                             loa="2"
                             parent="r_carpal_proximal_interphalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_3"
                             index="137"
                             alias="r_middle_distal"
                             loa="2"
                             parent="r_carpal_distal_interphalangeal_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_hamate"
                             index="138"
                             loa="4"
                             parent="r_midcarpal_4_5"
                             documentation="https://en.wikipedia.org/wiki/Hamate_bone"/>
               <enumeration value="r_metacarpal_4"
                             index="139"
                             alias="r_ring_metacarpal"
                             loa="2"
                             parent="r_carpometacarpal_4"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="r_carpal_proximal_phalanx_4"
                             index="140"
                             alias="r_ring_proximal"
                             loa="2"
                             parent="r_metacarpophalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_middle_phalanx_4"
                             index="141"
                             alias="r_ring_middle"
                             loa="2"
                             parent="r_carpal_proximal_interphalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_4"
                             index="142"
                             alias="r_ring_distal"
                             loa="2"
                             parent="r_carpal_distal_interphalangeal_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_metacarpal_5"
                             index="143"
                             alias="r_pinky_metacarpal"
                             loa="2"
                             parent="r_carpometacarpal_5"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="r_carpal_proximal_phalanx_5"
                             index="144"
                             alias="r_pinky_proximal"
                             loa="2"
                             parent="r_metacarpophalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_middle_phalanx_5"
                             index="145"
                             alias="r_pinky_middle"
                             loa="2"
                             parent="r_carpal_proximal_interphalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_5"
                             index="146"
                             alias="r_pinky_distal"
                             loa="2"
                             parent="r_carpal_distal_interphalangeal_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
            </field>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesHAnimSegment"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="HAnimDisplacer"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="HAnimSite">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimSite"
                               appinfo="An HAnimSite node serves three purposes: (a) define an &#34;end effector&#34; location which can be used by an inverse kinematics system, (b) define an attachment point for accessories such as jewelry and clothing, and (c) define a location for a Viewpoint virtual camera in the reference frame of an HAnimSegment (such as a view &#34;through the eyes&#34; of the humanoid for use in multi-user worlds).">
            <componentInfo name="HAnim" level="1"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="center"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Default location of this HAnimSite, i."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="hanimFeaturePointNameValues"
                    baseType="xs:NMTOKEN"
                    description="Unique name attribute must be defined so that HAnimSite node can be identified at run time for animation purposes.">
               <enumeration value="skull_vertex"
                             index="0"
                             alias="skull_tip,vertex"
                             loa="1"
                             default="0.0050 1.7504 0.0055"
                             parent="skull"
                             appinfo="CAESAR 2003 skull_vertex matches ISO 7250-1 part 5.22 Vertex (top of head). No corresponding landmark provided in CAESAR 2018."
                             documentation="https://en.wikipedia.org/wiki/Vertex_(anatomy)"/>
               <enumeration value="glabella"
                             index="1"
                             loa="1"
                             parent="skull"
                             appinfo="glabella is between the eyebrows and above the nose."
                             documentation="https://en.wikipedia.org/wiki/Glabella"/>
               <enumeration value="sellion"
                             index="2"
                             loa="1"
                             default="0.0058 1.6316 0.0852"
                             parent="skull"
                             appinfo="osseocartilaginous junction of the nasal dorsum."
                             documentation="https://en.wikipedia.org/wiki/Human_head"/>
               <enumeration value="l_infraorbitale"
                             index="3"
                             loa="1"
                             default="0.0341 1.6171 0.0752"
                             parent="skull"
                             appinfo="Left Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit."
                             documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen"/>
               <enumeration value="l_tragion"
                             index="4"
                             loa="1"
                             default="0.0739 1.6348 0.0282"
                             parent="skull"
                             appinfo="notch just above the tragus of the ear."
                             documentation="https://en.wiktionary.org/wiki/tragion"/>
               <enumeration value="l_gonion"
                             index="5"
                             loa="1"
                             default="0.0631 1.5530 0.0330"
                             parent="skull"
                             appinfo="Left Gonion is midpoint of mandibular angle of the jaw."
                             documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible"/>
               <enumeration value="r_infraorbitale"
                             index="6"
                             loa="1"
                             default="-0.0237 1.6171 0.0752"
                             parent="skull"
                             appinfo="Right Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit."
                             documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen"/>
               <enumeration value="r_tragion"
                             index="7"
                             loa="1"
                             default="-0.0646 1.6347 0.0302"
                             parent="skull"
                             appinfo="notch just above the tragus of the ear."
                             documentation="https://en.wiktionary.org/wiki/tragion"/>
               <enumeration value="r_gonion"
                             index="8"
                             loa="1"
                             default="-0.0520 1.5529 0.0347"
                             parent="skull"
                             appinfo="Right Gonion is midpoint of the mandibular angle of the jaw."
                             documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible"/>
               <enumeration value="supramenton"
                             index="9"
                             loa="3"
                             default="0.0061 1.5410 0.0805"
                             parent="jaw"
                             appinfo="center point above tip of chin."
                             documentation="http://www.cs.uu.nl/groups/MG/multimedia/publications/art/rsfp05.pdf"/>
               <enumeration value="cervicale"
                             index="10"
                             loa="2"
                             default="0.0064 1.520 -0.0815"
                             parent="t1"
                             documentation="https://www.merriam-webster.com/dictionary/cervicale"/>
               <enumeration value="adams_apple"
                             index="11"
                             loa="2"
                             parent="c2"
                             documentation="https://en.wikipedia.org/wiki/Adam_s_apple"/>
               <enumeration value="suprasternale"
                             index="12"
                             loa="2"
                             default="0.0084 1.4714 0.0551"
                             parent="t1"
                             appinfo="Suprasternale."
                             documentation="https://medical-dictionary.thefreedictionary.com/spatium+suprasternale"/>
               <enumeration value="substernale"
                             index="13"
                             loa="2"
                             default="0.0085 1.2995 0.1147"
                             parent="t10"
                             documentation="https://medical-dictionary.thefreedictionary.com/spatium+substernale"/>
               <enumeration value="l_clavicle"
                             index="14"
                             alias="l_clavicale"
                             loa="2"
                             default="0.0271 1.4943 0.0394"
                             parent="l_clavicle"
                             documentation="https://en.wikipedia.org/wiki/Clavicle"/>
               <enumeration value="l_acromion"
                             index="15"
                             loa="2"
                             default="0.2032 1.4760 -0.0490"
                             parent="l_clavicle"
                             documentation="https://en.wikipedia.org/wiki/Acromion"/>
               <enumeration value="l_axilla_proximal"
                             index="16"
                             alias="l_axilla_ant"
                             loa="2"
                             default="0.1777 1.4065 -0.0075"
                             parent="l_clavicle"
                             appinfo="Left Axilla Proximal (Anterior)."
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="l_axilla_distal"
                             index="17"
                             alias="l_axilla_post"
                             loa="2"
                             default="0.1706 1.4072 -0.0875"
                             parent="l_clavicle"
                             appinfo="Left Axilla Distal (Posterior)."
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="l_axilla_posterior_folds"
                             index="18"
                             loa="2"
                             parent="l_clavicle"
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="r_clavicle"
                             index="19"
                             alias="r_clavicale"
                             loa="2"
                             default="-0.0115 1.4943 0.0400"
                             parent="r_clavicle"
                             documentation="https://en.wikipedia.org/wiki/Clavicle"/>
               <enumeration value="r_acromion"
                             index="20"
                             loa="2"
                             default="-0.1905 1.4791 -0.0431"
                             parent="r_clavicle"
                             documentation="https://en.wikipedia.org/wiki/Acromion"/>
               <enumeration value="r_axilla_proximal"
                             index="21"
                             alias="r_axilla_ant"
                             loa="2"
                             default="-0.1626 1.4072 -0.0031"
                             parent="r_clavicle"
                             appinfo="Right Axilla Proximal (Anterior)."
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="r_axilla_distal"
                             index="22"
                             alias="r_axilla_post"
                             loa="2"
                             default="-0.1603 1.4098 -0.0826"
                             parent="r_clavicle"
                             appinfo="Right Axilla Distal (Posterior)."
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="r_axilla_posterior_folds"
                             index="23"
                             loa="2"
                             parent="r_clavicle"
                             appinfo="Right Posterior Axillary Folds."
                             documentation="https://en.wikipedia.org/wiki/Axilla"/>
               <enumeration value="spine_1_middle_back"
                             index="24"
                             alias="middle back"
                             loa="3"
                             parent="t5"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="spine_2_lower_back"
                             index="25"
                             alias="lower back"
                             loa="3"
                             default="0.0049 1.1908 -0.1113"
                             parent="l2"
                             documentation="https://en.wikipedia.org/wiki/Vertebral_column"/>
               <enumeration value="waist_preferred_anterior"
                             index="26"
                             alias="waist_preferred_ant"
                             loa="3"
                             parent="l2"
                             documentation="https://en.wikipedia.org/wiki/Waist"/>
               <enumeration value="waist_preferred_posterior"
                             index="27"
                             alias="waist_preferred_post"
                             loa="3"
                             default="0.2900 1.0915 -0.1091"
                             parent="l2"
                             documentation="https://en.wikipedia.org/wiki/Waist"/>
               <enumeration value="l_rib10"
                             index="28"
                             alias="l_rib10_midspine"
                             loa="3"
                             default="0.0871 1.1925 0.0992"
                             parent="l2"
                             documentation="https://en.wikipedia.org/wiki/Rib"/>
               <enumeration value="l_thelion"
                             index="29"
                             alias="Left Bustpoint"
                             loa="3"
                             default="0.0918 1.3382 0.1192"
                             parent="t9"
                             documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf"/>
               <enumeration value="r_rib10"
                             index="30"
                             alias="r_rib10_midspine"
                             loa="3"
                             default="-0.0711 1.1941 0.1016"
                             parent="l2"
                             documentation="https://en.wikipedia.org/wiki/Rib"/>
               <enumeration value="r_thelion"
                             index="31"
                             alias="Right Bustpoint"
                             loa="3"
                             default="-0.0736 1.3385 0.1217"
                             parent="t9"
                             documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf"/>
               <enumeration value="l_asis"
                             index="32"
                             alias="Left Anterior Superior Iliac Spine"
                             loa="1"
                             default="0.0925 0.9983 0.1052"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine"/>
               <enumeration value="l_iliocristale"
                             index="33"
                             loa="1"
                             default="0.1612 1.0537 0.0008"
                             parent="pelvis"
                             documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm"/>
               <enumeration value="l_psis"
                             index="34"
                             alias="Left Posterior Superior Iliac Spine"
                             loa="1"
                             default="0.0774 1.0190 -0.1151"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine"/>
               <enumeration value="r_asis"
                             index="35"
                             alias="Right Anterior Superior Iliac Spine"
                             loa="1"
                             default="-0.0887 1.0021 0.1112"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine"/>
               <enumeration value="r_iliocristale"
                             index="36"
                             loa="1"
                             default="-0.1525 1.0628 0.0035"
                             parent="pelvis"
                             documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm"/>
               <enumeration value="r_psis"
                             index="37"
                             alias="Right Posterior Superior Iliac Spine"
                             loa="1"
                             default="-0.0716 1.0190 -0.1138"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine"/>
               <enumeration value="crotch"
                             index="38"
                             loa="1"
                             default="0.0034 0.8266 0.0257"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Crotch"/>
               <enumeration value="l_femoral_lateral_epicondyle"
                             index="39"
                             alias="l_femoral_lateral_epicn,l_femoral_lateral_epicondyles"
                             loa="1"
                             default="0.1598 0.4967 0.0297"
                             parent="l_thigh"
                             documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur"/>
               <enumeration value="l_femoral_medial_epicondyle"
                             index="40"
                             alias="l_femoral_medial_epicn,l_femoral_medial_epicondyles"
                             loa="1"
                             default="0.1598 0.4967 0.0297"
                             parent="l_thigh"
                             documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur"/>
               <enumeration value="l_suprapatella"
                             index="41"
                             alias="l_kneecap"
                             loa="1"
                             parent="l_thigh"
                             documentation="https://en.wikipedia.org/wiki/Patella"/>
               <enumeration value="l_trochanterion"
                             index="42"
                             alias="l_trochanter"
                             loa="1"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Trochanter"/>
               <enumeration value="r_femoral_lateral_epicondyle"
                             index="43"
                             alias="r_femoral_lateral_epicn,r_femoral_lateral_epicondyles"
                             loa="1"
                             default="-0.1421 0.4992 0.0310"
                             parent="r_thigh"
                             documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur"/>
               <enumeration value="r_femoral_medial_epicondyle"
                             index="44"
                             alias="r_femoral_medial_epicn,r_femoral_medial_epicondyles"
                             loa="1"
                             default="-0.0221 0.5014 0.0289"
                             parent="r_thigh"
                             documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur"/>
               <enumeration value="r_suprapatella"
                             index="45"
                             alias="r_kneecap"
                             loa="1"
                             parent="r_thigh"
                             documentation="https://en.wikipedia.org/wiki/Patella"/>
               <enumeration value="r_trochanterion"
                             index="46"
                             alias="r_trochanter"
                             loa="1"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Trochanter"/>
               <enumeration value="l_tibiale"
                             index="47"
                             loa="1"
                             parent="l_calf"
                             documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone"/>
               <enumeration value="l_medial_malleolus"
                             index="48"
                             loa="1"
                             parent="l_calf"
                             documentation="https://en.wikipedia.org/wiki/Malleolus"/>
               <enumeration value="l_lateral_malleolus"
                             index="49"
                             loa="1"
                             parent="l_calf"
                             documentation="https://en.wikipedia.org/wiki/Malleolus"/>
               <enumeration value="l_sphyrion"
                             index="50"
                             loa="1"
                             parent="l_talus"
                             documentation="http://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385"/>
               <enumeration value="r_tibiale"
                             index="51"
                             loa="1"
                             parent="r_calf"
                             documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone"/>
               <enumeration value="r_medial_malleolus"
                             index="52"
                             loa="1"
                             parent="r_calf"
                             documentation="https://en.wikipedia.org/wiki/Malleolus"/>
               <enumeration value="r_lateral_malleolus"
                             index="53"
                             loa="1"
                             parent="r_calf"
                             documentation="https://en.wikipedia.org/wiki/Malleolus"/>
               <enumeration value="r_sphyrion"
                             index="54"
                             loa="1"
                             parent="r_talus"
                             documentation="http://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385"/>
               <enumeration value="l_metatarsal_phalanx_1"
                             index="55"
                             alias="l_metatarsal_pha1"
                             loa="4"
                             parent="l_tarsal_proximal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="l_metatarsal_phalanx_5"
                             index="56"
                             alias="l_metatarsal_pha5"
                             loa="4"
                             parent="l_tarsal_proximal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="l_dactylion"
                             index="57"
                             loa="2"
                             default="0.2056 0.6743 -0.0482"
                             parent="l_carpal_distal_phalanx_2"
                             documentation="https://en.wiktionary.org/wiki/dactylion"/>
               <enumeration value="l_calcaneus_posterior"
                             index="58"
                             alias="l_calcaneous_post"
                             loa="1"
                             parent="l_talus"
                             documentation="https://en.wikipedia.org/wiki/Calcaneus"/>
               <enumeration value="r_metatarsal_phalanx_1"
                             index="59"
                             alias="r_metatarsal_pha1"
                             loa="4"
                             parent="r_tarsal_proximal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="r_metatarsal_phalanx_5"
                             index="60"
                             alias="r_metatarsal_pha5"
                             loa="4"
                             parent="r_tarsal_proximal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Metatarsal_bones"/>
               <enumeration value="r_dactylion"
                             index="61"
                             loa="2"
                             default="-0.1941 0.6772 -0.0423"
                             parent="r_carpal_distal_phalanx_2"
                             documentation="https://en.wiktionary.org/wiki/dactylion"/>
               <enumeration value="r_calcaneus_posterior"
                             index="62"
                             alias="r_calcaneous_post"
                             loa="1"
                             parent="r_talus"
                             documentation="https://en.wikipedia.org/wiki/Calcaneus"/>
               <enumeration value="l_humeral_lateral_epicondyle"
                             index="63"
                             alias="l_humeral_lateral_epicn,l_humeral_lateral_epicondyles"
                             loa="1"
                             default="0.2280 1.1482 -0.1100"
                             parent="l_upperarm"
                             documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus"/>
               <enumeration value="l_humeral_medial_epicondyle"
                             index="64"
                             alias="l_humeral_medial_epicn,l_humeral_medial_epicondyles"
                             loa="1"
                             default="0.1735 1.1272 -0.1113"
                             parent="l_forearm"
                             documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus"/>
               <enumeration value="l_olecranon"
                             index="65"
                             loa="1"
                             default="0.1962 1.1375 -0.1123"
                             parent="l_forearm"
                             documentation="https://en.wikipedia.org/wiki/Olecranon"/>
               <enumeration value="r_humeral_lateral_epicondyle"
                             index="66"
                             alias="r_humeral_lateral_epicn,r_humeral_lateral_epicondyles"
                             loa="1"
                             default="-0.2224 1.1517 -0.1033"
                             parent="r_upperarm"
                             documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus"/>
               <enumeration value="r_humeral_medial_epicondyle"
                             index="67"
                             alias="r_humeral_medial_epicn,r_humeral_medial_epicondyles"
                             loa="1"
                             default="-0.1680 1.1298 -0.1062"
                             parent="r_forearm"
                             documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus"/>
               <enumeration value="r_olecranon"
                             index="68"
                             loa="1"
                             default="-0.1907 1.1405 -0.1065"
                             parent="r_forearm"
                             documentation="https://en.wikipedia.org/wiki/Olecranon"/>
               <enumeration value="l_radiale"
                             index="69"
                             loa="1"
                             default="0.2182 1.1212 -0.1167"
                             parent="l_forearm"
                             documentation="https://en.wikipedia.org/wiki/Carpal_bones"/>
               <enumeration value="l_ulnar_styloid"
                             index="70"
                             loa="1"
                             default="0.2142 0.8529 -0.0648"
                             parent="l_carpal"
                             documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process"/>
               <enumeration value="l_radial_styloid"
                             index="71"
                             loa="1"
                             default="0.1901 0.8645 -0.0415"
                             parent="l_forearm"
                             documentation="https://en.wikipedia.org/wiki/Radial_styloid_process"/>
               <enumeration value="r_radiale"
                             index="72"
                             loa="1"
                             default="-0.2130 1.1305 -0.1091"
                             parent="r_forearm"
                             documentation="https://en.wikipedia.org/wiki/Carpal_bones"/>
               <enumeration value="r_ulnar_styloid"
                             index="73"
                             loa="1"
                             default="-0.2117 0.8562 -0.0584"
                             parent="r_carpal"
                             documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process"/>
               <enumeration value="r_radial_styloid"
                             index="74"
                             loa="1"
                             default="-0.1884 0.8676 -0.0360"
                             parent="r_forearm"
                             documentation="https://en.wikipedia.org/wiki/Radial_styloid_process"/>
               <enumeration value="l_metacarpal_phalanx_2"
                             index="75"
                             alias="l_metacarpal_pha2,l_metacarpal_phalanx"
                             loa="2"
                             parent="l_metacarpal_2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="l_metacarpal_phalanx_3"
                             index="76"
                             loa="2"
                             parent="l_metacarpal_3"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="l_metacarpal_phalanx_5"
                             index="77"
                             alias="l_metacarpal_pha5"
                             loa="2"
                             parent="l_metacarpal_5"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="r_metacarpal_phalanx_2"
                             index="78"
                             alias="r_metacarpal_pha2,r_metacarpal_phalanx"
                             loa="2"
                             parent="r_metacarpal_2"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="r_metacarpal_phalanx_3"
                             index="79"
                             loa="2"
                             parent="r_metacarpal_3"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="r_metacarpal_phalanx_5"
                             index="80"
                             alias="r_metacarpal_pha5"
                             loa="2"
                             parent="r_metacarpal_5"
                             documentation="https://en.wikipedia.org/wiki/Metacarpal_bones"/>
               <enumeration value="nuchale"
                             index="81"
                             alias="nuchal"
                             loa="1"
                             default="0.0039 1.5972 -0.0796"
                             parent="skull"
                             documentation="https://en.wikipedia.org/wiki/Squamous_part_of_occipital_bone"/>
               <enumeration value="l_neck_base"
                             index="82"
                             loa="3"
                             default="0.0646 1.5141 -0.0380"
                             parent="c7"
                             documentation="https://en.wikipedia.org/wiki/Neck"/>
               <enumeration value="r_neck_base"
                             index="83"
                             loa="3"
                             default="-0.0419 1.5149 -0.0220"
                             parent="c7"
                             documentation="https://en.wikipedia.org/wiki/Neck"/>
               <enumeration value="navel"
                             index="84"
                             alias="belly button"
                             loa="1"
                             default="0.0069 1.0966 0.1017"
                             parent="l5"
                             documentation="https://en.wikipedia.org/wiki/Navel"/>
               <enumeration value="l_ectocanthus"
                             index="85"
                             alias="l_canthus"
                             loa="1"
                             parent="skull"
                             documentation="https://en.wikipedia.org/wiki/Canthus"/>
               <enumeration value="r_ectocanthus"
                             index="86"
                             alias="r_canthus"
                             loa="1"
                             parent="skull"
                             documentation="https://en.wikipedia.org/wiki/Canthus"/>
               <enumeration value="menton"
                             index="87"
                             alias="chin"
                             loa="3"
                             parent="jaw"
                             documentation="https://en.wikipedia.org/wiki/Human_head"/>
               <enumeration value="mesosternale"
                             index="88"
                             alias="mesosternum"
                             loa="2"
                             parent="t6"
                             documentation="https://en.wiktionary.org/wiki/mesosternum"/>
               <enumeration value="opisthocranion"
                             index="89"
                             loa="1"
                             parent="skull"
                             documentation="http://www.columbia.edu/itc/hs/medical/humanAnatomy/yuan/craniologyISlides.pdf"/>
               <enumeration value="l_knee_crease"
                             index="90"
                             loa="1"
                             default="0.0993 0.4881 -0.0309"
                             parent="l_thigh"
                             documentation="https://en.wikipedia.org/wiki/Popliteal_fossa"/>
               <enumeration value="r_knee_crease"
                             index="91"
                             loa="1"
                             default="-0.0825 0.4932 -0.0326"
                             parent="r_thigh"
                             documentation="https://en.wikipedia.org/wiki/Popliteal_fossa"/>
               <enumeration value="rear_center_midsagittal_plane"
                             index="92"
                             alias="median plane"
                             loa="2"
                             parent="t6"
                             documentation="https://en.wikipedia.org/wiki/Median_plane"/>
               <enumeration value="buttocks_standing_wall_contact_point"
                             index="93"
                             loa="1"
                             parent="pelvis"
                             documentation="https://en.wikipedia.org/wiki/Buttocks"/>
               <enumeration value="l_chest_midsagittal_plane"
                             index="94"
                             loa="2"
                             parent="t6"
                             documentation="https://en.wikipedia.org/wiki/Sagittal_plane"/>
               <enumeration value="r_chest_midsagittal_plane"
                             index="95"
                             loa="2"
                             parent="t6"
                             documentation="https://en.wikipedia.org/wiki/Sagittal_plane"/>
               <enumeration value="l_bideltoid"
                             index="96"
                             loa="1"
                             parent="l_upperarm"
                             documentation="https://en.wiktionary.org/wiki/bideltoid"/>
               <enumeration value="r_bideltoid"
                             index="97"
                             loa="1"
                             parent="r_upperarm"
                             documentation="https://en.wiktionary.org/wiki/bideltoid"/>
               <enumeration value="l_carpal_distal_phalanx_1"
                             index="101"
                             alias="l_thumb_distal"
                             loa="2"
                             default="0.1982 0.8061 0.0759"
                             parent="l_carpal_distal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_2"
                             index="102"
                             alias="l_index_distal"
                             loa="2"
                             default="0.2089 0.6858 -0.0245"
                             parent="l_carpal_distal_phalanx_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_3"
                             index="103"
                             alias="l_middle_distal"
                             loa="2"
                             default="0.2080 0.6731 -0.0491"
                             parent="l_carpal_distal_phalanx_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_4"
                             index="104"
                             alias="l_ring_distal"
                             loa="2"
                             default="0.2035 0.6750 -0.0756"
                             parent="l_carpal_distal_phalanx_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_carpal_distal_phalanx_5"
                             index="105"
                             alias="l_pinky_distal"
                             loa="2"
                             default="0.2014 0.7009 -0.1012"
                             parent="l_carpal_distal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_1"
                             index="106"
                             alias="r_thumb_distal"
                             loa="2"
                             default="-0.1869 0.8090 0.0820"
                             parent="r_carpal_distal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_2"
                             index="107"
                             alias="r_index_distal"
                             loa="2"
                             default="-0.1980 0.6883 -0.0180"
                             parent="r_carpal_distal_phalanx_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_3"
                             index="108"
                             alias="r_middle_distal"
                             loa="2"
                             default="-0.1969 0.6758 -0.0427"
                             parent="r_carpal_distal_phalanx_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_4"
                             index="109"
                             alias="r_ring_distal"
                             loa="2"
                             default="-0.1934 0.6778 -0.0693"
                             parent="r_carpal_distal_phalanx_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_carpal_distal_phalanx_5"
                             index="110"
                             alias="r_pinky_distal"
                             loa="2"
                             default="-0.1938 0.7035 -0.0949"
                             parent="r_carpal_distal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_1"
                             index="111"
                             loa="4"
                             default="0.090 0.012 0.188"
                             parent="l_tarsal_distal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_2"
                             index="112"
                             alias="l_digit2"
                             loa="2"
                             default="0.110 0.011 0.19"
                             parent="l_tarsal_distal_phalanx_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_3"
                             index="113"
                             loa="4"
                             default="0.128 0.011 0.185"
                             parent="l_tarsal_distal_phalanx_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_4"
                             index="114"
                             loa="4"
                             default="0.142 0.011 0.178"
                             parent="l_tarsal_distal_phalanx_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="l_tarsal_distal_phalanx_5"
                             index="115"
                             alias="l_tarsal_distal_pha5"
                             loa="4"
                             default="0.154 0.010 0.168"
                             parent="l_tarsal_distal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_1"
                             index="116"
                             loa="4"
                             default="-0.090 0.012 0.188"
                             parent="r_tarsal_distal_phalanx_1"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_2"
                             index="117"
                             alias="r_digit2"
                             loa="2"
                             default="-0.110 0.011 0.19"
                             parent="r_tarsal_distal_phalanx_2"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_3"
                             index="118"
                             loa="4"
                             default="-0.128 0.011 0.185"
                             parent="r_tarsal_distal_phalanx_3"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_4"
                             index="119"
                             loa="4"
                             default="-0.142 0.011 0.178"
                             parent="r_tarsal_distal_phalanx_4"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
               <enumeration value="r_tarsal_distal_phalanx_5"
                             index="120"
                             alias="r_tarsal_distal_pha5"
                             loa="4"
                             default="-0.154 0.010 0.168"
                             parent="r_tarsal_distal_phalanx_5"
                             documentation="https://en.wikipedia.org/wiki/Phalanx_bone"/>
            </field>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="rotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Orientation of children relative to local coordinate system."/>
            <field name="scale"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    minExclusive="0"
                    description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation."/>
            <field name="scaleOrientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)."/>
            <field name="translation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position of children relative to local coordinate system."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesHAnimSite"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ImageCubeMapTexture">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalTexturing#ImageCubeMapTexture"
                               appinfo="ImageCubeMapTexture is a texture node that defines a cubic environment map source as a single file format that contains multiple images, one for each side.">
            <componentInfo name="CubeMapTexturing" level="2"/>
            <Inheritance baseType="X3DEnvironmentTextureNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="textureProperties"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="TextureProperties"
                    description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Location and filename of image.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texture" type="containerFieldChoicesX3DTexture2DNode"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="TextureProperties"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ImageTexture">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#ImageTexture"
                               appinfo="ImageTexture maps a 2D-image file onto a geometric shape.">
            <componentInfo name="Texturing" level="1"/>
            <Inheritance baseType="X3DTexture2DNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="repeatS"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DTexture2DNode"
                    description="Whether to repeat texture along S axis horizontally from left to right."/>
            <field name="repeatT"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DTexture2DNode"
                    description="Whether to repeat texture along T axis vertically from top to bottom."/>
            <field name="textureProperties"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="TextureProperties"
                    inheritedFrom="X3DTexture2DNode"
                    description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Location and filename of image.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texture" type="containerFieldChoicesX3dUrlObjectTexture"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="TextureProperties"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ImageTexture3D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texture3D.html#ImageTexture3D"
                               appinfo="ImageTexture3D defines a 3D image-based texture map by specifying a single image file that contains complete 3D data.">
            <componentInfo name="Texturing3D" level="2"/>
            <Inheritance baseType="X3DTexture3DNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="repeatR"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DTexture3DNode"
                    description="Whether to repeat texture along R axis from front to back."/>
            <field name="repeatS"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DTexture3DNode"
                    description="Whether to repeat texture along S axis horizontally from left to right."/>
            <field name="repeatT"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DTexture3DNode"
                    description="Whether to repeat texture along T axis vertically from top to bottom."/>
            <field name="textureProperties"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="TextureProperties"
                    inheritedFrom="X3DTexture3DNode"
                    description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Location and filename of image.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texture" type="containerFieldChoicesX3DTexture3DNode"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="TextureProperties"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="IndexedFaceSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry3D.html#IndexedFaceSet"
                               appinfo="IndexedFaceSet defines polygons using index lists corresponding to vertex coordinates.">
            <componentInfo name="Geometry3D" level="2"/>
            <Inheritance baseType="X3DComposedGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="colorIndex"
                    type="MFInt32"
                    accessType="initializeOnly"
                    minInclusive="-1"
                    description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices)."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="convex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="The convex field is a hint to renderers whether all polygons in a shape are convex (true), or possibly concave (false).">
               <componentInfo name="Geometry3D" level="4"/>
            </field>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="coordIndex"
                    type="MFInt32"
                    accessType="initializeOnly"
                    minInclusive="-1"
                    description="coordIndex indices provide the order in which coordinates are applied to construct each polygon face."/>
            <field name="creaseAngle"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    description="creaseAngle defines angle (in radians) for determining whether adjacent polygons are drawn with sharp edges or smooth shading.">
               <componentInfo name="Geometry3D" level="4"/>
            </field>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="normalIndex"
                    type="MFInt32"
                    accessType="initializeOnly"
                    minInclusive="-1"
                    description="normalIndex values define the order in which normal vectors are applied to polygons (or vertices).">
               <componentInfo name="Geometry3D" level="4"/>
            </field>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="set_colorIndex"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="-1"
                    description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices).">
               <componentInfo name="Geometry3D" level="4"/>
            </field>
            <field name="set_coordIndex"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="-1"
                    description="coordIndex indices provide the order in which coordinates are applied to construct each polygon face."/>
            <field name="set_normalIndex"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="-1"
                    description="normalIndex values define the order in which normal vectors are applied to polygons (or vertices).">
               <componentInfo name="Geometry3D" level="4"/>
            </field>
            <field name="set_texCoordIndex"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="-1"
                    description="List of texture-coordinate indices mapping attached texture to corresponding coordinates."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="texCoordIndex"
                    type="MFInt32"
                    accessType="initializeOnly"
                    minInclusive="-1"
                    description="List of texture-coordinate indices mapping attached texture to corresponding coordinates."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ComposedGeometryContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="IndexedLineSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#IndexedLineSet"
                               appinfo="IndexedLineSet defines polyline segments using index lists corresponding to vertex coordinates.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="colorIndex"
                    type="MFInt32"
                    accessType="initializeOnly"
                    minInclusive="-1"
                    description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices)."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="Whether Color node color values are applied to each point vertex (true) or per polyline (false)."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="coordIndex"
                    type="MFInt32"
                    accessType="initializeOnly"
                    minInclusive="-1"
                    description="coordIndex indices provide the order in which coordinates are applied to construct each polygon face."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="set_colorIndex"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="-1"
                    description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices).">
               <componentInfo name="Rendering" level="3"/>
            </field>
            <field name="set_coordIndex"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="-1"
                    description="coordIndex indices provide the order in which coordinates are applied to construct each polyline.">
               <componentInfo name="Rendering" level="3"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="ColorCoordinateContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="IndexedQuadSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/CADGeometry.html#IndexedQuadSet"
                               appinfo="IndexedQuadSet is a geometry node that defines quadrilaterals.">
            <componentInfo name="CADGeometry" level="1"/>
            <Inheritance baseType="X3DComposedGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="index"
                    type="MFInt32"
                    accessType="initializeOnly"
                    minInclusive="0"
                    description="index values provide order in which coordinates are applied."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="set_index"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="0"/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ComposedGeometryContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="IndexedTriangleFanSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#IndexedTriangleFanSet"
                               appinfo="IndexedTriangleFanSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.">
            <componentInfo name="Rendering" level="3"/>
            <Inheritance baseType="X3DComposedGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="index"
                    type="MFInt32"
                    accessType="initializeOnly"
                    minInclusive="-1"
                    description="index list specifies triangles by connecting Coordinate vertices, each individual fan separated by -1 sentinel value."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="set_index"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="-1"/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ComposedGeometryContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="IndexedTriangleSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#IndexedTriangleSet"
                               appinfo="IndexedTriangleSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.">
            <componentInfo name="Rendering" level="3"/>
            <Inheritance baseType="X3DComposedGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="index"
                    type="MFInt32"
                    accessType="initializeOnly"
                    minInclusive="0"
                    description="index list specifies triangles by connecting Coordinate vertices."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="set_index"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="0"/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ComposedGeometryContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="IndexedTriangleStripSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#IndexedTriangleStripSet"
                               appinfo="IndexedTriangleStripSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.">
            <componentInfo name="Rendering" level="3"/>
            <Inheritance baseType="X3DComposedGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="index"
                    type="MFInt32"
                    accessType="initializeOnly"
                    minInclusive="-1"
                    description="index list specifies triangles by connecting Coordinate vertices for each individual strip, separated by -1 sentinel values."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="set_index"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="-1"/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ComposedGeometryContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Inline">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/networking.html#Inline"
                               appinfo="Inline can load another X3D or VRML model into the current scene via url.">
            <componentInfo name="Networking" level="2"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="global"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="The global field controls potential external scoping effects of lights found within an Inline scene."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Address of X3D world to load Inline with current scene, retrieved either from local system or an online address.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesX3DUrlObject"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="IntegerSequencer">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/eventUtilities.html#IntegerSequencer"
                               appinfo="IntegerSequencer generates periodic discrete integer values.">
            <componentInfo name="EventUtilities" level="1"/>
            <Inheritance baseType="X3DSequencerNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DSequencerNode"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array."/>
            <field name="keyValue"
                    type="MFInt32"
                    accessType="inputOutput"
                    description="Output values for linear sequencing, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="next"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DSequencerNode"
                    description="Send next output value in keyValue array, and reset internal fraction field to match corresponding value in key array."/>
            <field name="previous"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DSequencerNode"
                    description="Send previous output value in keyValue array, and reset internal fraction field to match corresponding value in key array."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DSequencerNode"
                    description="set_fraction selects input key for corresponding keyValue output."/>
            <field name="value_changed"
                    type="SFInt32"
                    accessType="outputOnly"
                    description="Single intermittent output value determined by current key time and corresponding keyValue entry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="IntegerTrigger">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/eventUtilities.html#IntegerTrigger"
                               appinfo="IntegerTrigger converts set_boolean true input events to an integer value (for example, useful when animating whichChoice in a Switch node).">
            <componentInfo name="EventUtilities" level="1"/>
            <Inheritance baseType="X3DTriggerNode"/>
            <field name="integerKey"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="-1"
                    description="integerKey is value for output when triggered."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_boolean"
                    type="SFBool"
                    accessType="inputOnly"
                    description="If input event set_boolean is true, trigger output of integer value."/>
            <field name="triggerValue"
                    type="SFInt32"
                    accessType="outputOnly"
                    description="triggerValue provides integer event output matching integerKey when true set_boolean received."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="IsoSurfaceVolumeData">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#IsoSurfaceVolumeData"
                               appinfo="IsoSurfaceVolumeData displays one or more surfaces extracted from a voxel dataset.">
            <componentInfo name="VolumeRendering" level="2"/>
            <Inheritance baseType="X3DVolumeDataNode"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DVolumeDataNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="contourStepSize"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="If contourStepSize is non-zero, also render all isosurfaces that are multiples of that step size from initial surface value."/>
            <field name="dimensions"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    minExclusive="0"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Actual-size X-Y-Z dimensions of volume data in local coordinate system."/>
            <field name="gradients"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture3DNode"
                    description="Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides explicit per-voxel gradient direction information for determining surface boundaries, rather than having it implicitly calculated by the implementation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="renderStyle"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVolumeRenderStyleNode"
                    description="Multiple contained X3DVolumeRenderStyleNode nodes corresponding to each isosurface that define specific rendering technique for this volumetric object."/>
            <field name="surfaceTolerance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="Threshold for gradient magnitude for voxel inolusion in isosurface."/>
            <field name="surfaceValues"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="If surfaceValues has one value defined, render corresponding isosurface plus any isosurfaces based on contourStepSize."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="voxels"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture3DNode"
                    description="Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides raw voxel information utilized by corresponding rendering styles."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="Texture3DContentModel" minOccurs="0"/>
               <GroupContentModel name="VolumeRenderStyleContentModel" minOccurs="0"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="KeySensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/keyDeviceSensor.html#KeySensor"
                               appinfo="KeySensor generates events as the user presses keys on the keyboard.">
            <componentInfo name="KeyDeviceSensor" level="1"/>
            <Inheritance baseType="X3DKeyDeviceSensorNode"/>
            <field name="actionKeyPress"
                    type="SFInt32"
                    accessType="outputOnly"
                    description="action key press gives following values: HOME=000 END=1001 PGUP=1002 PGDN=1003 UP=1004 DOWN=1005 LEFT=1006 RIGHT=1007 F1."/>
            <field name="actionKeyRelease"
                    type="SFInt32"
                    accessType="outputOnly"
                    description="action key release gives following values: HOME=000 END=1001 PGUP=1002 PGDN=1003 UP=1004 DOWN=1005 LEFT=1006 RIGHT=1007 F1."/>
            <field name="altKey"
                    type="SFBool"
                    accessType="outputOnly"
                    description="altKey generates true event when pressed, false event when released."/>
            <field name="controlKey"
                    type="SFBool"
                    accessType="outputOnly"
                    description="controlKey generates true event when pressed, false event when released."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events."/>
            <field name="keyPress"
                    type="SFString"
                    accessType="outputOnly"
                    description="Events generated when user presses character-producing keys on keyboard produces integer UTF-8 character values."/>
            <field name="keyRelease"
                    type="SFString"
                    accessType="outputOnly"
                    description="Events generated when user releases character-producing keys on keyboard produces integer UTF-8 character values."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="shiftKey"
                    type="SFBool"
                    accessType="outputOnly"
                    description="shiftKey generates true event when pressed, false event when released."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Layer">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layering.html#Layer"
                               appinfo="Layer contains a list of children nodes that define the contents of the layer.">
            <componentInfo name="Layering" level="1"/>
            <Inheritance baseType="X3DLayerNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    description="Nodes making up this layer."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="objectType"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;ALL&#34;"
                    inheritedFrom="X3DLayerNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickableObjectTypeValues"
                    baseType="MFString"
                    description="The objectType field specifies a set of labels used in the picking process.">
               <enumeration value="&#34;ALL&#34;" appinfo="each node is available for picking."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no node is available for picking."/>
               <enumeration value="&#34;TERRAIN&#34;" appinfo="TERRAIN is an example value."/>
            </field>
            <field name="pickable"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DLayerNode"
                    description="pickable determines whether pick traversal is performed for this layer."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"/>
            <field name="viewport"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DViewportNode"
                    inheritedFrom="X3DLayerNode"
                    description="The viewport field is a single Viewport node that constrains layer output to a sub-region of the render surface."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DLayerNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="layers" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <NodeContentModel name="Viewport"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="LayerSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layering.html#LayerSet"
                               appinfo="LayerSet defines a list of layers and a rendering order.">
            <componentInfo name="Layering" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="activeLayer"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="activeLayer field specifies the layer in which navigation takes place."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="layers"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DLayerNode"
                    description="The layers list defines a list of Layer nodes that contain the constituent parts of the scene."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="MFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    description="The order list defines the order in which layers are rendered."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Layer"/>
               <NodeContentModel name="LayoutLayer"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Layout">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layout.html#Layout"
                               appinfo="Layout node is used as layout field of LayoutLayer and LayoutGroup nodes.">
            <componentInfo name="Layout" level="1"/>
            <Inheritance baseType="X3DLayoutNode"/>
            <field name="align"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;CENTER&#34; &#34;CENTER&#34;"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="layoutAlignChoices"
                    baseType="MFString"
                    description="The align field values align the sized rectangle to an edge or center of the parent rectangle.">
               <enumeration value="&#34;LEFT&#34; &#34;BOTTOM&#34;"/>
               <enumeration value="&#34;LEFT&#34; &#34;CENTER&#34;"/>
               <enumeration value="&#34;LEFT&#34; &#34;TOP&#34;"/>
               <enumeration value="&#34;CENTER&#34; &#34;BOTTOM&#34;"/>
               <enumeration value="&#34;CENTER&#34; &#34;CENTER&#34;"/>
               <enumeration value="&#34;CENTER&#34; &#34;TOP&#34;"/>
               <enumeration value="&#34;RIGHT&#34; &#34;BOTTOM&#34;"/>
               <enumeration value="&#34;RIGHT&#34; &#34;CENTER&#34;"/>
               <enumeration value="&#34;RIGHT&#34; &#34;TOP&#34;"/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="offset"
                    type="MFFloat"
                    accessType="inputOutput"
                    default="0 0"
                    description="The values of the offset field are used to translate the location of this rectangle after the initial alignment."/>
            <field name="offsetUnits"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;WORLD&#34; &#34;WORLD&#34;"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="layoutUnitsChoices"
                    baseType="MFString"
                    description="The offsetUnits field values are used to interprete the offset values.">
               <enumeration value="&#34;WORLD&#34; &#34;WORLD&#34;"/>
               <enumeration value="&#34;WORLD&#34; &#34;FRACTION&#34;"/>
               <enumeration value="&#34;WORLD&#34; &#34;PIXEL&#34;"/>
               <enumeration value="&#34;FRACTION&#34; &#34;WORLD&#34;"/>
               <enumeration value="&#34;FRACTION&#34; &#34;FRACTION&#34;"/>
               <enumeration value="&#34;FRACTION&#34; &#34;PIXEL&#34;"/>
               <enumeration value="&#34;PIXEL&#34; &#34;WORLD&#34;"/>
               <enumeration value="&#34;PIXEL&#34; &#34;FRACTION&#34;"/>
               <enumeration value="&#34;PIXEL&#34; &#34;PIXEL&#34;"/>
               <componentInfo name="Layout" level="2"/>
            </field>
            <field name="scaleMode"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;NONE&#34; &#34;NONE&#34;"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="layoutScaleModeChoices"
                    baseType="MFString"
                    description="The scaleMode field specifies how the scale of the parent is modified.">
               <enumeration value="&#34;NONE&#34; &#34;NONE&#34;"/>
               <enumeration value="&#34;NONE&#34; &#34;FRACTION&#34;"/>
               <enumeration value="&#34;NONE&#34; &#34;STRETCH&#34;"/>
               <enumeration value="&#34;NONE&#34; &#34;PIXEL&#34;"/>
               <enumeration value="&#34;FRACTION&#34; &#34;NONE&#34;"/>
               <enumeration value="&#34;FRACTION&#34; &#34;FRACTION&#34;"/>
               <enumeration value="&#34;FRACTION&#34; &#34;STRETCH&#34;"/>
               <enumeration value="&#34;FRACTION&#34; &#34;PIXEL&#34;"/>
               <enumeration value="&#34;STRETCH&#34; &#34;NONE&#34;"/>
               <enumeration value="&#34;STRETCH&#34; &#34;FRACTION&#34;"/>
               <enumeration value="&#34;STRETCH&#34; &#34;STRETCH&#34;"/>
               <enumeration value="&#34;STRETCH&#34; &#34;PIXEL&#34;"/>
               <enumeration value="&#34;PIXEL&#34; &#34;NONE&#34;"/>
               <enumeration value="&#34;PIXEL&#34; &#34;FRACTION&#34;"/>
               <enumeration value="&#34;PIXEL&#34; &#34;STRETCH&#34;"/>
               <enumeration value="&#34;PIXEL&#34; &#34;PIXEL&#34;"/>
               <componentInfo name="Layout" level="2"/>
            </field>
            <field name="size"
                    type="MFFloat"
                    accessType="inputOutput"
                    default="1 1"
                    description="The two values in the size field define the width and height of the layout rectangle."/>
            <field name="sizeUnits"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;WORLD&#34; &#34;WORLD&#34;"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="layoutUnitsChoices"
                    baseType="MFString"
                    description="The sizeUnits field values are used to interprete the offset values.">
               <enumeration value="&#34;WORLD&#34; &#34;WORLD&#34;"/>
               <enumeration value="&#34;WORLD&#34; &#34;FRACTION&#34;"/>
               <enumeration value="&#34;WORLD&#34; &#34;PIXEL&#34;"/>
               <enumeration value="&#34;FRACTION&#34; &#34;WORLD&#34;"/>
               <enumeration value="&#34;FRACTION&#34; &#34;FRACTION&#34;"/>
               <enumeration value="&#34;FRACTION&#34; &#34;PIXEL&#34;"/>
               <enumeration value="&#34;PIXEL&#34; &#34;WORLD&#34;"/>
               <enumeration value="&#34;PIXEL&#34; &#34;FRACTION&#34;"/>
               <enumeration value="&#34;PIXEL&#34; &#34;PIXEL&#34;"/>
               <componentInfo name="Layout" level="2"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="layout" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="LayoutGroup">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layout.html#LayoutGroup"
                               appinfo="LayoutGroup is a Grouping node that can contain most nodes, whose children are related by a common layout within a parent layout.">
            <componentInfo name="Layout" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <AdditionalInheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="layout"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DLayoutNode"
                    description="The layout field contains an X3DLayoutNode node that provides the information required to locate and size the layout region of the LayoutGroup node relative to its parent’s layout region, and also to scale the contents of the LayoutGroup."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"/>
            <field name="viewport"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DViewportNode"
                    description="The content of the LayoutGroup is clipped by the specified viewport."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="LayoutGroupContentModel"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="LayoutLayer">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layout.html#LayoutLayer"
                               appinfo="LayoutLayer is a Grouping node that can contain most nodes.">
            <componentInfo name="Layout" level="1"/>
            <Inheritance baseType="X3DLayerNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="layout"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DLayoutNode"
                    description="The layout field contains an X3DLayoutNode node that provides the information required to locate and size the layout region of the LayoutGroup node relative to its parent’s layout region, and also to scale the contents of the LayoutGroup."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="objectType"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;ALL&#34;"
                    inheritedFrom="X3DLayerNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickableObjectTypeValues"
                    baseType="MFString"
                    description="The objectType field specifies a set of labels used in the picking process.">
               <enumeration value="&#34;ALL&#34;" appinfo="each node is available for picking."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no node is available for picking."/>
               <enumeration value="&#34;TERRAIN&#34;" appinfo="TERRAIN is an example value."/>
            </field>
            <field name="pickable"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DLayerNode"
                    description="pickable determines whether pick traversal is performed for this layer."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"/>
            <field name="viewport"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DViewportNode"
                    inheritedFrom="X3DLayerNode"
                    description="The content of the LayoutGroup is clipped by the specified viewport."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DLayerNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="layers" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="LayoutGroupContentModel"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="LinePickSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html#LinePickSensor"
                               appinfo="LinePickSensor uses one or more pickingGeometry line segments to compute intersections with pickTarget shapes.">
            <componentInfo name="Picking" level="1"/>
            <Inheritance baseType="X3DPickSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="intersectionType"
                    type="SFString"
                    accessType="initializeOnly"
                    default="BOUNDS"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="intersectionTypeValues"
                    baseType="xs:NMTOKEN"
                    description="intersectionType specifies precision of the collision computation.">
               <enumeration value="BOUNDS"
                             appinfo="TODO undefined in X3D specification."
                             documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
               <enumeration value="GEOMETRY"
                             appinfo="TODO undefined in X3D specification."
                             documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="isActive indicates when the intersecting object is picked by the picking geometry."/>
            <field name="matchCriterion"
                    type="SFString"
                    accessType="inputOutput"
                    default="MATCH_ANY"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="pickSensorMatchCriterionChoices"
                    baseType="xs:NMTOKEN"
                    description="defines whether the intersection test (i.">
               <enumeration value="MATCH_ANY"
                             appinfo="any match of objectType values is acceptable."/>
               <enumeration value="MATCH_EVERY"
                             appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match."/>
               <enumeration value="MATCH_ONLY_ONE"
                             appinfo="one and only one objectType value can match."/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="objectType"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;ALL&#34;"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickableObjectTypeValues"
                    baseType="MFString"
                    description="The objectType field specifies a set of labels used in the picking process.">
               <enumeration value="&#34;ALL&#34;" appinfo="each node is available for picking."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no node is available for picking."/>
               <enumeration value="&#34;TERRAIN&#34;" appinfo="TERRAIN is an example value."/>
            </field>
            <field name="pickedGeometry"
                    type="MFNode"
                    accessType="outputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DPickSensorNode"
                    description="Output event containing the node or nodes that have been found to intersect with the picking geometry from the last time this node performed a picking operation, given in the local coordinate system."/>
            <field name="pickedNormal"
                    type="MFVec3f"
                    accessType="outputOnly"
                    description="Output event containing surface normal vectors computed by the picking intersection computations."/>
            <field name="pickedPoint"
                    type="MFVec3f"
                    accessType="outputOnly"
                    description="Output event containing 3D points on surface of underlying pickingGeometry computed by the picking intersection computations, given in the local coordinate system."/>
            <field name="pickedTextureCoordinate"
                    type="MFVec3f"
                    accessType="outputOnly"
                    description="Output event containing 3D texture coordinates of surfaces computed by the picking intersection computations."/>
            <field name="pickingGeometry"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DGeometryNode"
                    inheritedFrom="X3DPickSensorNode"
                    description="pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation."/>
            <field name="pickTarget"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DGroupingNode|X3DShapeNode|Inline"
                    inheritedFrom="X3DPickSensorNode"
                    description="pickTarget specifies the list of nodes against which picking operations are performed."/>
            <field name="sortOrder"
                    type="SFString"
                    accessType="initializeOnly"
                    default="CLOSEST"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickSensorSortOrderValues"
                    baseType="xs:NMTOKEN"
                    description="The sortOrder field determines the order provided for picked output events.">
               <enumeration value="ANY"
                             appinfo="any single object that can satisfy picking conditions."/>
               <enumeration value="CLOSEST"
                             appinfo="return closest object by distance that satisfies conditions of this pick sensor."/>
               <enumeration value="ALL"
                             appinfo="every object that satisfies picking conditions for this pick sensor is returned."/>
               <enumeration value="ALL_SORTED"
                             appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order."/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="PickSensorGroupingNodeContentModel"/>
               <NodeContentModel name="LineSet"/>
               <NodeContentModel name="IndexedLineSet"/>
               <NodeContentModel name="Shape"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="LineProperties">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#LineProperties"
                               appinfo="LineProperties allows precise fine-grained control over the rendering style of lines and edges for associated geometry nodes inside the same Shape.">
            <componentInfo name="Shape" level="2"/>
            <Inheritance baseType="X3DAppearanceChildNode"/>
            <field name="applied"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether or not LineProperties are applied to associated geometry."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="linetype"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    simpleType="lineTypeValues"
                    baseType="SFInt32"
                    description="linetype selects a line pattern, with solid default if defined value isn't supported.">
               <enumeration value="1" alias="SOLID" appinfo="Solid."/>
               <enumeration value="2" alias="DASHED" appinfo="Dashed."/>
               <enumeration value="3" alias="DOTTED" appinfo="Dotted."/>
               <enumeration value="4" alias="DASHED_DOTTED" appinfo="Dashed-dotted."/>
               <enumeration value="5" alias="DASHED_DOT_DOT" appinfo="Dash-dot-dot."/>
               <enumeration value="6" alias="SINGLE_ARROW" appinfo="(single arrow)."/>
               <enumeration value="7" alias="SINGLE_DOT" appinfo="(single dot)."/>
               <enumeration value="8" alias="DOUBLE_ARROW" appinfo="(double arrow)."/>
               <enumeration value="9" alias="STITCH_LINE" appinfo="(stitch line)."/>
               <enumeration value="10" alias="CHAIN_LINE" appinfo="(chain line)."/>
               <enumeration value="11" alias="CENTER_LINE" appinfo="(center line)."/>
               <enumeration value="12" alias="HIDDEN_LINE" appinfo="(hidden line)."/>
               <enumeration value="13" alias="PHANTOM_LINE" appinfo="(phantom line)."/>
               <enumeration value="14"
                             alias="BREAK_LINE_STYLE_1"
                             appinfo="(break line - style 1)."/>
               <enumeration value="15"
                             alias="BREAK_LINE_STYLE_2"
                             appinfo="(break line - style 2)."/>
               <enumeration value="16"
                             alias="USER_SPECIFIED_DASH_PATTERN"
                             appinfo="User-specified dash pattern."/>
            </field>
            <field name="linewidthScaleFactor"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="linewidthScaleFactor is a scale factor multiplied by browser-dependent nominal linewidth, mapped to nearest available line width."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="lineProperties" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="LineSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#LineSet"
                               appinfo="LineSet is a geometry node that can contain a Coordinate|CoordinateDouble node and optionally a Color|ColorRGBA node.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="vertexCount"
                    type="MFInt32"
                    accessType="inputOutput"
                    minInclusive="2"
                    description="vertexCount describes how many vertices are used in each individual polyline segment from the Coordinate point values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="ColorCoordinateContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ListenerPointSource">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#ListenerPointSource"
                               appinfo="ListenerPointSource node represents position and orientation of a person listening to virtual sound in the audio scene, and provides single or multiple sound channels as output.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundSourceNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="dopplerEnabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="dopplerEnabled enables/disables whether real-time Doppler effects (due to relation motion between sources and listeners) are computed by browser between virtual sound sources and active listening locations, then applied to received frequency at active listening locations."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundSourceNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundSourceNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="interauralDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="The interauralDistance field is."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="orientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Rotation (axis, angle in radians) of listening point direction relative to default -Z axis direction in local coordinate system."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="position"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="position (x, y, z in meters) relative to local coordinate system."/>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="trackCurrentView"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="If trackCurrentView field is true then position and orientation match avatar's (user's) current view."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesSoundSource"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="LoadSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/networking.html#LoadSensor"
                               appinfo="LoadSensor generates events as watchList child nodes are either loaded or fail to load.">
            <componentInfo name="Networking" level="3"/>
            <Inheritance baseType="X3DNetworkSensorNode"/>
            <field name="children"
                    synonym="watchList"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DUrlObject"
                    description="The children field monitors one or more USE nodes that contain a valid url field."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="isActive true/false events are sent when sensing starts/stops."/>
            <field name="isLoaded"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Notify when all watchList child nodes are loaded, or at least one has failed."/>
            <field name="loadTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="Time of successful load complete, not sent on failure."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="progress"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Sends 0."/>
            <field name="timeOut"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="Time in seconds of maximum load duration prior to declaring failure."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="LoadSensorChildContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="LocalFog">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalEffects.html#LocalFog"
                               appinfo="LocalFog simulates atmospheric effects by blending distant objects with fog color.">
            <componentInfo name="EnvironmentalEffects" level="4"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DFogObject"/>
            <field name="color"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DFogObject"
                    description="Fog color."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Enables/disables node operation."/>
            <field name="fogType"
                    type="SFString"
                    accessType="inputOutput"
                    default="LINEAR"
                    inheritedFrom="X3DFogObject"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="fogTypeChoices"
                    baseType="xs:NMTOKEN"
                    description="Specifies algorithm for rate of increasing Fog, either LINEAR or EXPONENTIAL.">
               <enumeration value="LINEAR" appinfo="linear blending as a function of distance."/>
               <enumeration value="EXPONENTIAL"
                             appinfo="exponential blending as a function of distance."/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="visibilityRange"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DFogObject"
                    description="Distance in meters where objects are totally obscured by the fog, using local coordinate system."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="LOD">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html#LOD"
                               appinfo="LOD (Level Of Detail) uses camera-to-object distance to switch among contained child levels.">
            <componentInfo name="Navigation" level="2"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="center"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    description="Viewpoint distance-measurement offset from origin of local coordinate system, used for LOD node distance calculations."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="forceTransitions"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    description="Whether to perform every range-based transition, regardless of browser optimizations that might otherwise occur."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="level_changed"
                    type="SFInt32"
                    accessType="outputOnly"
                    minInclusive="0"
                    description="Output event that reports current level of LOD children whenever switching occurs."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="range"
                    type="MFFloat"
                    accessType="initializeOnly"
                    description="Specifies ideal distances at which to switch between levels."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children"
                             type="containerFieldChoicesGroupLODShapeTransformSwitch"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Material">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#Material"
                               appinfo="Material specifies surface rendering properties for associated geometry nodes.">
            <componentInfo name="Shape" level="1"/>
            <Inheritance baseType="X3DOneSidedMaterialNode"/>
            <field name="ambientIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.2"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="how much ambient omnidirectional light is reflected from all light sources.">
               <componentInfo name="Shape" level="2"/>
            </field>
            <field name="ambientTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying ambientIntensity for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel."/>
            <field name="ambientTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="diffuseColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="0.8 0.8 0.8"
                    minInclusive="0"
                    maxInclusive="1"
                    description="how much direct, angle-dependent light is reflected from all light sources."/>
            <field name="diffuseTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying diffuseColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel."/>
            <field name="diffuseTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="emissiveColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="how much glowing light is emitted from this object."/>
            <field name="emissiveTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel."/>
            <field name="emissiveTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DOneSidedMaterialNode"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normalScale"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DOneSidedMaterialNode"
                    description="normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material.">
               <componentInfo name="Shape" level="2"/>
            </field>
            <field name="normalTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying normalScale for this material node, the contained texture modulates the texture across the surface."/>
            <field name="normalTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DOneSidedMaterialNode"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="occlusionStrength"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="occlusionStrength indicates areas of indirect lighting, typically called ambient occlusion."/>
            <field name="occlusionTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying occlusionStrength for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel."/>
            <field name="occlusionTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="shininess"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.2"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="Lower shininess values provide soft specular glows, while higher values result in sharper, smaller highlights.">
               <componentInfo name="Shape" level="2"/>
            </field>
            <field name="shininessTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying shininess for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel."/>
            <field name="shininessTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="specularColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="specular highlights are brightness reflections (example: shiny spots on an apple).">
               <componentInfo name="Shape" level="2"/>
            </field>
            <field name="specularTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying specularColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel."/>
            <field name="specularTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="transparency"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="how &#34;clear&#34; an object is: 1.">
               <componentInfo name="Shape" level="2"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="material" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ImageTexture"/>
               <NodeContentModel name="MovieTexture"/>
               <NodeContentModel name="PixelTexture"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Matrix3VertexAttribute">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#Matrix3VertexAttribute"
                               appinfo="Matrix3VertexAttribute defines a set of per-vertex 3x3 matrix attributes.">
            <componentInfo name="Shaders" level="1"/>
            <Inheritance baseType="X3DVertexAttributeNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DVertexAttributeNode"
                    baseType="xs:NMTOKEN"
                    description="Required name for this particular VertexAttribute instance."/>
            <field name="value"
                    type="MFMatrix3f"
                    accessType="inputOutput"
                    description="value specifies an arbitrary collection of matrix values that will be passed to the shader as per-vertex information."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="attrib" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Matrix4VertexAttribute">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#Matrix4VertexAttribute"
                               appinfo="Matrix4VertexAttribute defines a set of per-vertex 4x4 matrix attributes.">
            <componentInfo name="Shaders" level="1"/>
            <Inheritance baseType="X3DVertexAttributeNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DVertexAttributeNode"
                    baseType="xs:NMTOKEN"
                    description="Required name for this particular VertexAttribute instance."/>
            <field name="value"
                    type="MFMatrix4f"
                    accessType="inputOutput"
                    description="value specifies an arbitrary collection of matrix values that will be passed to the shader as per-vertex information."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="attrib" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MetadataBoolean">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#MetadataBoolean"
                               appinfo="The metadata provided by this node is contained in the Boolean values of the value field.">
            <componentInfo name="Core" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <AdditionalInheritance baseType="X3DMetadataObject"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes."/>
            <field name="reference"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Reference to the metadata standard or definition defining this particular metadata value."/>
            <field name="value"
                    type="MFBool"
                    accessType="inputOutput"
                    description="The value attribute is a strictly typed data array providing relevant metadata information."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="value" type="containerFieldChoicesMetadata"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MetadataDouble">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#MetadataDouble"
                               appinfo="The metadata provided by this node is contained in the double-precision floating point numbers of the value field.">
            <componentInfo name="Core" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <AdditionalInheritance baseType="X3DMetadataObject"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes."/>
            <field name="reference"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Reference to the metadata standard or definition defining this particular metadata value."/>
            <field name="value"
                    type="MFDouble"
                    accessType="inputOutput"
                    description="The value attribute is a strictly typed data array providing relevant metadata information."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="value" type="containerFieldChoicesMetadata"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MetadataFloat">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#MetadataFloat"
                               appinfo="The metadata provided by this node is contained in the single-precision floating point numbers of the value field.">
            <componentInfo name="Core" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <AdditionalInheritance baseType="X3DMetadataObject"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes."/>
            <field name="reference"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Reference to the metadata standard or definition defining this particular metadata value."/>
            <field name="value"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="The value attribute is a strictly typed data array providing relevant metadata information."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="value" type="containerFieldChoicesMetadata"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MetadataInteger">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#MetadataInteger"
                               appinfo="The metadata provided by this node is contained in the integer numbers of the value field.">
            <componentInfo name="Core" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <AdditionalInheritance baseType="X3DMetadataObject"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes."/>
            <field name="reference"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Reference to the metadata standard or definition defining this particular metadata value."/>
            <field name="value"
                    type="MFInt32"
                    accessType="inputOutput"
                    description="The value attribute is a strictly typed data array providing relevant metadata information."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="value" type="containerFieldChoicesMetadata"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MetadataSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#MetadataSet"
                               appinfo="The metadata provided by this node is contained in the metadata nodes of the value field.">
            <componentInfo name="Core" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <AdditionalInheritance baseType="X3DMetadataObject"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes."/>
            <field name="reference"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Reference to the metadata standard or definition defining this particular metadata value."/>
            <field name="value"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DMetadataObject"
                    description="The value field provides a list of X3DMetadataObject nodes whose meaning is determined by the name field."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="value" type="containerFieldChoicesMetadata"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0" maxOccurs="unbounded"/>
               <NodeContentModel name="ProtoInstance" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MetadataString">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#MetadataString"
                               appinfo="The metadata provided by this node is contained in the strings of the value field.">
            <componentInfo name="Core" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <AdditionalInheritance baseType="X3DMetadataObject"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes."/>
            <field name="reference"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DMetadataObject"
                    description="Reference to the metadata standard or definition defining this particular metadata value."/>
            <field name="value"
                    type="MFString"
                    accessType="inputOutput"
                    description="The value attribute is a strictly typed data array providing relevant metadata information."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="value" type="containerFieldChoicesMetadata"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MicrophoneSource">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#MicrophoneSource"
                               appinfo="MicrophoneSource captures input from a physical microphone in the real world.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundSourceNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundSourceNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundSourceNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="mediaDeviceID"
                    type="SFString"
                    accessType="inputOutput"
                    description="mediaDeviceID field provides ID parameter functionality."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesSoundSource"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MotorJoint">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#MotorJoint"
                               appinfo="MotorJoint drives relative angular velocities between body1 and body2 within a common reference frame.">
            <componentInfo name="RigidBodyPhysics" level="2"/>
            <Inheritance baseType="X3DRigidJointNode"/>
            <field name="autoCalc"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    description="autoCalc controls whether user manually provides individual angle rotations each frame (false) or if angle values are automatically calculated by motor implementations (true)."/>
            <field name="axis1Angle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="axis1Angle (radians) is rotation angle for corresponding motor axis when in user-calculated mode."/>
            <field name="axis1Torque"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="axis1Torque is rotational torque applied by corresponding motor axis when in user-calculated mode."/>
            <field name="axis2Angle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="axis2Angle (radians) is rotation angle for corresponding motor axis when in user-calculated mode."/>
            <field name="axis2Torque"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="axis2Torque is rotational torque applied by corresponding motor axis when in user-calculated mode."/>
            <field name="axis3Angle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="axis3Angle (radians) is rotation angle for corresponding motor axis when in user-calculated mode."/>
            <field name="axis3Torque"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="axis3Torque is rotational torque applied by corresponding motor axis when in user-calculated mode."/>
            <field name="body1"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="body2"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="enabledAxes"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="3"
                    description="enabledAxes indicates which motor axes are active."/>
            <field name="forceOutput"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;NONE&#34;"
                    inheritedFrom="X3DRigidJointNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="forceOutputValues"
                    baseType="MFString"
                    description="forceOutput controls which output fields are generated for the next frame.">
               <enumeration value="&#34;ALL&#34;" appinfo="all forceOutput fields computed."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no forceOutput fields computed."/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="motor1Angle"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="motor1Angle provides calculated angle of rotation (radians) for this motor joint from last frame."/>
            <field name="motor1AngleRate"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="motor1AngleRate provides calculated anglular rotation rate (radians/second) for this motor joint from last frame."/>
            <field name="motor1Axis"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 0 0"
                    description="motor1Axis defines axis vector of corresponding motor axis."/>
            <field name="motor2Angle"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="motor2Angle provides calculated angle of rotation (radians) for this motor joint from last frame."/>
            <field name="motor2AngleRate"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="motor2AngleRate provides calculated anglular rotation rate (radians/second) for this motor joint from last frame."/>
            <field name="motor2Axis"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    description="motor2Axis defines axis vector of corresponding motor axis."/>
            <field name="motor3Angle"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="motor3Angle provides calculated angle of rotation (radians) for this motor joint from last frame."/>
            <field name="motor3AngleRate"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="motor3AngleRate provides calculated anglular rotation rate (radians/second) for this motor joint from last frame."/>
            <field name="motor3Axis"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 1"
                    description="motor3Axis defines axis vector of corresponding motor axis."/>
            <field name="stop1Bounce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="stop1Bounce is velocity factor for bounce back once stop point is reached."/>
            <field name="stop1ErrorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    description="stop1ErrorCorrection is fraction of error correction performed during time step once stop point is reached."/>
            <field name="stop2Bounce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="stop2Bounce is velocity factor for bounce back once stop point is reached."/>
            <field name="stop2ErrorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    description="stop2ErrorCorrection is fraction of error correction performed during time step once stop point is reached."/>
            <field name="stop3Bounce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="stop3Bounce is velocity factor for bounce back once stop point is reached."/>
            <field name="stop3ErrorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    description="stop3ErrorCorrection is fraction of error correction performed during time step once stop point is reached."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="joints" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="RigidJointNodeContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MovieTexture">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#MovieTexture"
                               appinfo="MovieTexture applies a 2D movie image to surface geometry, or provides audio for a Sound node.">
            <componentInfo name="Texturing" level="3"/>
            <Inheritance baseType="X3DSoundSourceNode"/>
            <AdditionalInheritance baseType="X3DTexture2DNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="duration_changed"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="-1"
                    description="or -1."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since MovieTexture activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundSourceNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundSourceNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when MovieTexture is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="loop"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Repeat indefinitely when loop=true, repeat only once when loop=false."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and MovieTexture becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="pitch"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1.0"
                    minExclusive="0"
                    description="Multiplier for the rate at which sampled sound is played."/>
            <field name="repeatS"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DTexture2DNode"
                    description="Whether to repeat texture along S axis horizontally from left to right."/>
            <field name="repeatT"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DTexture2DNode"
                    description="Whether to repeat texture along T axis vertically from top to bottom."/>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and MovieTexture becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="speed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1.0"
                    description="Factor for how fast the movie (or soundtrack) is played."/>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="textureProperties"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="TextureProperties"
                    description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Location and filename of movie file or stream.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texture" type="containerFieldChoicesX3dUrlObjectTexture"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MultiTexture">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#MultiTexture"
                               appinfo="MultiTexture applies several individual textures to a single geometry node, enabling a variety of visual effects that include light mapping and environment mapping.">
            <componentInfo name="Texturing" level="2"/>
            <Inheritance baseType="X3DTextureNode"/>
            <field name="alpha"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    description="The alpha field defines the alpha (1-transparency) base value for mode operations."/>
            <field name="color"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    description="The color field defines the RGB base values for mode operations."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="function"
                    type="MFString"
                    accessType="inputOutput"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="multiTextureFunctionValues"
                    baseType="MFString"
                    description="function operators COMPLEMENT or ALPHAREPLICATE can be applied after the mode blending operation.">
               <enumeration value="&#34;COMPLEMENT&#34;" appinfo="Invert argument x as (1 - x)."/>
               <enumeration value="&#34;ALPHAREPLICATE&#34;"
                             appinfo="Replicate alpha information to all color channels before operation completes."/>
               <enumeration value="&#34;&#34;"
                             appinfo="No function is applied - empty SFString is allowed value within MFString array."/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="mode"
                    type="MFString"
                    accessType="inputOutput"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="multiTextureModeValues"
                    baseType="MFString"
                    description="mode field indicates the type of blending operation, both for color and for alpha channel.">
               <enumeration value="&#34;ADD&#34;"/>
               <enumeration value="&#34;ADDSIGNED&#34;"/>
               <enumeration value="&#34;ADDSIGNED2X&#34;"/>
               <enumeration value="&#34;ADDSMOOTH&#34;"/>
               <enumeration value="&#34;BLENDCURRENTALPHA&#34;"/>
               <enumeration value="&#34;BLENDDIFFUSEALPHA&#34;"/>
               <enumeration value="&#34;BLENDFACTORALPHA&#34;"/>
               <enumeration value="&#34;BLENDTEXTUREALPHA&#34;"/>
               <enumeration value="&#34;DOTPRODUCT3&#34;"/>
               <enumeration value="&#34;MODULATE&#34;"/>
               <enumeration value="&#34;MODULATE2X&#34;"/>
               <enumeration value="&#34;MODULATE4X&#34;"/>
               <enumeration value="&#34;MODULATEALPHA_ADDCOLOR&#34;"/>
               <enumeration value="&#34;MODULATEINVALPHA_ADDCOLOR&#34;"/>
               <enumeration value="&#34;MODULATEINVCOLOR_ADDALPHA&#34;"/>
               <enumeration value="&#34;OFF&#34;"/>
               <enumeration value="&#34;REPLACE&#34;"/>
               <enumeration value="&#34;SELECTARG1&#34;"/>
               <enumeration value="&#34;SELECTARG2&#34;"/>
               <enumeration value="&#34;SUBTRACT&#34;"/>
            </field>
            <field name="source"
                    type="MFString"
                    accessType="inputOutput"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="multiTextureSourceValues"
                    baseType="MFString"
                    description="source field determines whether each image source is treated as DIFFUSE, SPECULAR or a multiplicative FACTOR.">
               <enumeration value="&#34;DIFFUSE&#34;"/>
               <enumeration value="&#34;FACTOR&#34;"/>
               <enumeration value="&#34;SPECULAR&#34;"/>
               <enumeration value="&#34;&#34;"/>
            </field>
            <field name="texture"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="Contained texture nodes (ImageTexture, MovieTexture, PixelTexture) that map image(s) to surface geometry, defining each of the different texture channels."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texture" type="containerFieldChoicesX3DTexture2DNode"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ImageTexture"/>
               <NodeContentModel name="MovieTexture"/>
               <NodeContentModel name="PixelTexture"/>
               <NodeContentModel name="ComposedCubeMapTexture"/>
               <NodeContentModel name="GeneratedCubeMapTexture"/>
               <NodeContentModel name="ImageCubeMapTexture"/>
               <NodeContentModel name="ComposedTexture3D"/>
               <NodeContentModel name="ImageTexture3D"/>
               <NodeContentModel name="PixelTexture3D"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MultiTextureCoordinate">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#MultiTextureCoordinate"
                               appinfo="MultiTextureCoordinate contains multiple TextureCoordinate or TextureCoordinateGenerator nodes, for use by a parent polygonal geometry node such as IndexedFaceSet or a Triangle* node.">
            <componentInfo name="Texturing" level="2"/>
            <Inheritance baseType="X3DTextureCoordinateNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="texCoord"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode"
                    description="Zero or more contained TextureCoordinate or TextureCoordinateGenerator nodes that specify texture coordinates for the different texture channels, used for texture mapping onto corresponding geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texCoord" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="TextureCoordinate"/>
               <NodeContentModel name="TextureCoordinateGenerator"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="MultiTextureTransform">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#MultiTextureTransform"
                               appinfo="MultiTextureTransform contains multiple TextureTransform nodes, each provided for use by corresponding ImageTexture MovieTexture or PixelTexture nodes within a sibling MultiTexture node.">
            <componentInfo name="Texturing" level="2"/>
            <Inheritance baseType="X3DTextureTransformNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="textureTransform"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DSingleTextureTransformNode"
                    description="Zero or more contained TextureTransform nodes, for each of the different texture channels, that define 2D transformation applied to texture coordinates."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="textureTransform" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="TextureTransform"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NavigationInfo">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html#NavigationInfo"
                               appinfo="NavigationInfo describes the user's viewing model, user navigation-interaction modalities, and also dimensional characteristics of the user's (typically invisible) avatar.">
            <componentInfo name="Navigation" level="1"/>
            <Inheritance baseType="X3DBindableNode"/>
            <field name="avatarSize"
                    type="MFFloat"
                    accessType="inputOutput"
                    default="0.25 1.6 0.75"
                    minInclusive="0"
                    description="avatarSize triplet values define three separate parameters: (a) collisionDistance between user and geometry, i.">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="bindTime"
                    type="SFTime"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Event sent reporting timestamp when node becomes active/inactive."/>
            <field name="headlight"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Enable/disable directional light that always points in the direction the user is looking."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isBound"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_bind"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Receiving event set_bind=true activates and binds this node at the top of the binding stack."/>
            <field name="speed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    description="Default rate at which viewer travels through scene, meters/second.">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="transitionComplete"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Event signaling viewpoint transition complete."/>
            <field name="transitionTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="1.0"
                    minInclusive="0"
                    description="transitionTime defines the expected duration of viewpoint transition in seconds."/>
            <field name="transitionType"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;LINEAR&#34;"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="navigationTransitionTypeValues"
                    baseType="MFString"
                    description="Camera transition between viewpoints.">
               <enumeration value="&#34;TELEPORT&#34;" appinfo="immediate transition."/>
               <enumeration value="&#34;LINEAR&#34;"
                             appinfo="transition may proceed directly through intervening objects."/>
               <enumeration value="&#34;ANIMATE&#34;" appinfo="rowser-specific transition."/>
            </field>
            <field name="type"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;EXAMINE&#34; &#34;ANY&#34;"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="navigationTypeValues"
                    baseType="MFString"
                    description="Enter one or more quoted SFString values: &#34;EXAMINE&#34; &#34;WALK&#34; &#34;FLY&#34; &#34;LOOKAT&#34; &#34;EXPLORE&#34; &#34;ANY&#34; &#34;NONE&#34;.">
               <enumeration value="&#34;ANY&#34;" appinfo="browser can offer any type for user to choose."/>
               <enumeration value="&#34;WALK&#34;"
                             appinfo="free navigation, avatar remains on ground, collision detection."/>
               <enumeration value="&#34;EXAMINE&#34;"
                             appinfo="view an individual object by rotating view about center."/>
               <enumeration value="&#34;FLY&#34;" appinfo="free navigation, collision detection."/>
               <enumeration value="&#34;LOOKAT&#34;" appinfo="navigate to particular object."/>
               <enumeration value="&#34;NONE&#34;" appinfo="disables all navigation interfaces."/>
               <enumeration value="&#34;EXPLORE&#34;"
                             appinfo="consistent keystroke navigation for both geospatial and Cartesian modes."/>
            </field>
            <field name="visibilityLimit"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="Geometry beyond the visibilityLimit may not be rendered (far clipping plane of the view frustrum).">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Normal">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#Normal"
                               appinfo="Normal defines a set of 3D surface-normal vectors that apply either to a sibling Coordinate|CoordinateDouble node, or else to a parent ElevationGrid node.">
            <componentInfo name="Rendering" level="2"/>
            <Inheritance baseType="X3DNormalNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="vector"
                    type="MFVec3f"
                    accessType="inputOutput"
                    minInclusive="-1"
                    maxInclusive="1"
                    description="set of unit-length normal vectors, corresponding to indexed polygons or vertices."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="normal" type="containerFieldChoicesX3DNormalNode"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NormalInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#NormalInterpolator"
                               appinfo="NormalInterpolator generates a series of normal (perpendicular) 3-tuple SFVec3f values.">
            <componentInfo name="Interpolation" level="2"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array."/>
            <field name="keyValue"
                    type="MFVec3f"
                    accessType="inputOutput"
                    description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding keyValue output."/>
            <field name="value_changed"
                    type="MFVec3f"
                    accessType="outputOnly"
                    description="Linearly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NurbsCurve">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#NurbsCurve"
                               appinfo="NurbsCurve is a 3D curve analogous to NurbsPatchSurface.">
            <componentInfo name="NURBS" level="1"/>
            <Inheritance baseType="X3DParametricGeometryNode"/>
            <field name="closed"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    description="Whether or not the curve is closed (i."/>
            <field name="controlPoint"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Coordinate|CoordinateDouble"
                    description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="knot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    description="knot vector, where size = number of control points + order of curve."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"
                    description="define order of surface by polynomials of degree = order-1."/>
            <field name="tessellation"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="hint for surface tessellation."/>
            <field name="weight"
                    type="MFDouble"
                    accessType="inputOutput"
                    minExclusive="0"
                    description="Vector assigning relative weight value to each control point."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Coordinate"/>
               <NodeContentModel name="CoordinateDouble"/>
               <NodeContentModel name="GeoCoordinate"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NurbsCurve2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#NurbsCurve2D"
                               appinfo="NurbsCurve2D defines a trimming segment that is part of a trimming contour in the u-v domain of a surface.">
            <componentInfo name="NURBS" level="3"/>
            <Inheritance baseType="X3DNurbsControlCurveNode"/>
            <field name="closed"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    description="Whether or not the curve is closed (i."/>
            <field name="controlPoint"
                    type="MFVec2d"
                    accessType="inputOutput"
                    inheritedFrom="X3DNurbsControlCurveNode"
                    description="controlPoint defines a set of control points of dimension uDimension by vDimension, and defines a mesh where the points do not have uniform spacing."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="knot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    description="knot vector, where size = number of control points + order of curve."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"
                    description="define order of surface by polynomials of degree = order-1."/>
            <field name="tessellation"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="hint for surface tessellation."/>
            <field name="weight"
                    type="MFDouble"
                    accessType="inputOutput"
                    minExclusive="0"
                    description="Vector assigning relative weight value to each control point."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NurbsOrientationInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#NurbsOrientationInterpolator"
                               appinfo="NurbsOrientationInterpolator describes a 3D NURBS curve and outputs interpolated orientation values.">
            <componentInfo name="NURBS" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="controlPoint"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Coordinate|CoordinateDouble"
                    description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="knot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    description="knot vector, where size = number of control points + order of curve."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="3"
                    minInclusive="2"
                    description="define order of surface by polynomials of degree = order-1."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="setting fraction in range [0,1] selects input key for corresponding keyValue output, computing a 3D position on the curve."/>
            <field name="value_changed"
                    type="SFRotation"
                    accessType="outputOnly"
                    description="Computationaly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="weight"
                    type="MFDouble"
                    accessType="inputOutput"
                    description="Output values for computational interpolation, each corresponding to knots."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Coordinate"/>
               <NodeContentModel name="CoordinateDouble"/>
               <NodeContentModel name="GeoCoordinate"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NurbsPatchSurface">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#NurbsPatchSurface"
                               appinfo="NurbsPatchSurface defines a contiguous 3D Non-Uniform Rational B-Spline (NURBS) surface.">
            <componentInfo name="NURBS" level="1"/>
            <Inheritance baseType="X3DNurbsSurfaceGeometryNode"/>
            <field name="controlPoint"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Coordinate|CoordinateDouble"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|NurbsTextureCoordinate"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Single contained NurbsTextureCoordinate, TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="uClosed"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Whether opposite surface sides are closed (seamless) across u dimension."/>
            <field name="uDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Number of control points in u dimension."/>
            <field name="uKnot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="knot vector, where size = number of control points + order of curve."/>
            <field name="uOrder"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="define order of surface by polynomials of degree = order-1."/>
            <field name="uTessellation"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="hint for surface tessellation."/>
            <field name="vClosed"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Whether opposite surface sides are closed (seamless) across u dimension."/>
            <field name="vDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Number of control points in v dimension."/>
            <field name="vKnot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="knot vector, where size = number of control points + order of curve."/>
            <field name="vOrder"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="define order of surface by polynomials of degree = order-1."/>
            <field name="vTessellation"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="hint for surface tessellation."/>
            <field name="weight"
                    type="MFDouble"
                    accessType="inputOutput"
                    minExclusive="0"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Vector assigning relative weight value to each control point."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Coordinate"/>
               <NodeContentModel name="CoordinateDouble"/>
               <NodeContentModel name="GeoCoordinate"/>
               <NodeContentModel name="TextureCoordinate"/>
               <NodeContentModel name="TextureCoordinateGenerator"/>
               <NodeContentModel name="NurbsTextureCoordinate"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NurbsPositionInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#NurbsPositionInterpolator"
                               appinfo="NurbsPositionInterpolator describes a 3D NURBS curve and outputs interpolated position values.">
            <componentInfo name="NURBS" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="controlPoint"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Coordinate|CoordinateDouble"
                    description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="knot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    description="knot vector, where size = number of control points + order of curve."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="3"
                    minInclusive="2"
                    description="define order of surface by polynomials of degree = order-1."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="setting fraction in range [0,1] selects input key for corresponding keyValue output, computing a 3D position on the curve."/>
            <field name="value_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Computationaly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="weight"
                    type="MFDouble"
                    accessType="inputOutput"
                    description="Output values for linear interpolation, each corresponding to knots."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Coordinate"/>
               <NodeContentModel name="CoordinateDouble"/>
               <NodeContentModel name="GeoCoordinate"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NurbsSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#NurbsSet"
                               appinfo="NurbsSet collects a set of NurbsSurface nodes into a common group and treats NurbsSurface set as a unit during tessellation, thereby enforcing tessellation continuity along borders.">
            <componentInfo name="NURBS" level="2"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="addGeometry"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DParametricGeometryNode"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="geometry"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DParametricGeometryNode"
                    description="The children form a closed loop with first point of first child repeated as last point of last child, and the last point of a segment repeated as first point of the consecutive one."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeGeometry"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DParametricGeometryNode"/>
            <field name="tessellationScale"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1.0"
                    minExclusive="0"
                    description="scale for surface tessellation in children NurbsSurface nodes."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="NurbsPatchSurface"/>
               <NodeContentModel name="NurbsSweptSurface"/>
               <NodeContentModel name="NurbsSwungSurface"/>
               <NodeContentModel name="NurbsTrimmedSurface"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NurbsSurfaceInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#NurbsSurfaceInterpolator"
                               appinfo="NurbsSurfaceInterpolator describes a 3D NURBS curve and outputs interpolated position and normal values.">
            <componentInfo name="NURBS" level="1"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="controlPoint"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Coordinate|CoordinateDouble"
                    description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Computationaly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="position_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Computationaly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="set_fraction"
                    type="SFVec2f"
                    accessType="inputOnly"
                    description="setting fraction in range [0,1] selects input key for corresponding keyValue output, computing a 3D position on the curve."/>
            <field name="uDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    description="Number of control points in u dimension."/>
            <field name="uKnot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    description="Knot vector, where size = number of control points + order of curve."/>
            <field name="uOrder"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"
                    description="Define order of surface by polynomials of degree = order-1."/>
            <field name="vDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    description="Number of control points in v dimension."/>
            <field name="vKnot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    description="Knot vector, where size = number of control points + order of curve."/>
            <field name="vOrder"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"
                    description="Define order of surface by polynomials of degree = order-1."/>
            <field name="weight"
                    type="MFDouble"
                    accessType="inputOutput"
                    description="Output values for linear interpolation, each corresponding to knots."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Coordinate"/>
               <NodeContentModel name="CoordinateDouble"/>
               <NodeContentModel name="GeoCoordinate"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NurbsSweptSurface">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#NurbsSweptSurface"
                               appinfo="NurbsSweptSurface uses a trajectoryCurve path to describe a generalized surface that is swept by a crossSectionCurve.">
            <componentInfo name="NURBS" level="3"/>
            <Inheritance baseType="X3DParametricGeometryNode"/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="crossSectionCurve"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNurbsControlCurveNode"
                    description="defines cross-section of the surface traced about the trajectoryCurve axis."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="trajectoryCurve"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="NurbsCurve"
                    description="describes the center-line path using a NurbsCurve node, oriented so that it is defined counterclockwise when looking down the −Y axis, thus defining a concept of inside and outside."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ContourPolyline2D"/>
               <NodeContentModel name="NurbsCurve2D"/>
               <NodeContentModel name="NurbsCurve"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NurbsSwungSurface">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#NurbsSwungSurface"
                               appinfo="NurbsSwungSurface contains a profileCurve and a trajectoryCurve [X3DNurbsControlCurveNode].">
            <componentInfo name="NURBS" level="3"/>
            <Inheritance baseType="X3DParametricGeometryNode"/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="profileCurve"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNurbsControlCurveNode"
                    description="2D curve in the yz-plane that describes the cross-sectional shape of the object."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="trajectoryCurve"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNurbsControlCurveNode"
                    description="2D curve in the xz-plane that describes path over which to trace the cross-section."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ContourPolyline2D"/>
               <NodeContentModel name="NurbsCurve2D"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NurbsTextureCoordinate">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#NurbsTextureCoordinate"
                               appinfo="NurbsTextureCoordinate describes a 3D NURBS surface in the parametric domain of its surface host, specifying mapping of texture onto the surface.">
            <componentInfo name="NURBS" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <field name="controlPoint"
                    type="MFVec2f"
                    accessType="inputOutput"
                    description="controlPoint defines a set of control points of dimension uDimension by vDimension, and defines a mesh where the points do not have uniform spacing."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="uDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    description="Number of control points in u dimension."/>
            <field name="uKnot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    description="Knot vector, where size = number of control points + order of curve."/>
            <field name="uOrder"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"
                    description="Define order of surface by polynomials of degree = order-1."/>
            <field name="vDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    description="Number of control points in v dimension."/>
            <field name="vKnot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    description="Knot vector, where size = number of control points + order of curve."/>
            <field name="vOrder"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"
                    description="Define order of surface by polynomials of degree = order-1."/>
            <field name="weight"
                    type="MFDouble"
                    accessType="inputOutput"
                    minExclusive="0"
                    description="Output values for linear interpolation, each corresponding to knots."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texCoord" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="NurbsTrimmedSurface">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html#NurbsTrimmedSurface"
                               appinfo="NurbsTrimmedSurface generates texture coordinates from a Non-Uniform Rational B-Spline (NURBS) surface.">
            <componentInfo name="NURBS" level="4"/>
            <Inheritance baseType="X3DNurbsSurfaceGeometryNode"/>
            <field name="addTrimmingContour"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="Contour2D"/>
            <field name="controlPoint"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Coordinate|CoordinateDouble"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeTrimmingContour"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="Contour2D"/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|NurbsTextureCoordinate"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Single contained NurbsTextureCoordinate, TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="trimmingContour"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Contour2D"
                    description="A set of Contour2D nodes are used as trimming loops."/>
            <field name="uClosed"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Whether opposite surface sides are closed (seamless) across u dimension."/>
            <field name="uDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Number of control points in u dimension."/>
            <field name="uKnot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Knot vector, where size = number of control points + order of curve."/>
            <field name="uOrder"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Define order of surface by polynomials of degree = order-1."/>
            <field name="uTessellation"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="hint for surface tessellation."/>
            <field name="vClosed"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Whether opposite surface sides are closed (seamless) across u dimension."/>
            <field name="vDimension"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Number of control points in v dimension."/>
            <field name="vKnot"
                    type="MFDouble"
                    accessType="initializeOnly"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Knot vector, where size = number of control points + order of curve."/>
            <field name="vOrder"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="2"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Define order of surface by polynomials of degree = order-1."/>
            <field name="vTessellation"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="hint for surface tessellation."/>
            <field name="weight"
                    type="MFDouble"
                    accessType="inputOutput"
                    minExclusive="0"
                    inheritedFrom="X3DNurbsSurfaceGeometryNode"
                    description="Vector assigning relative weight value to each control point."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Contour2D"/>
               <NodeContentModel name="Coordinate"/>
               <NodeContentModel name="CoordinateDouble"/>
               <NodeContentModel name="GeoCoordinate"/>
               <NodeContentModel name="TextureCoordinate"/>
               <NodeContentModel name="TextureCoordinateGenerator"/>
               <NodeContentModel name="NurbsTextureCoordinate"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="OpacityMapVolumeStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#OpacityMapVolumeStyle"
                               appinfo="OpacityMapVolumeStyle specifies that volumetric data is rendered using opacity mapped to a transfer function texture.">
            <componentInfo name="VolumeRendering" level="1"/>
            <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeRenderStyleNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="transferFunction"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode|X3DTexture3DNode"
                    description="The transferFunction field holds a single texture representation in either two or three dimensions that maps the voxel data values to a specific colour output.">
               <componentInfo name="VolumeRendering" level="2"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="renderStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="TextureContentModel"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="OrientationChaser">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#OrientationChaser"
                               appinfo="OrientationChaser generates a series of 4-tuple axis-angle SFRotation values that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DChaserNode"/>
            <field name="duration"
                    type="SFTime"
                    accessType="initializeOnly"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DChaserNode"
                    description="duration is the time interval for filter response in seconds."/>
            <field name="initialDestination"
                    type="SFRotation"
                    accessType="initializeOnly"
                    default="0 1 0 0"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="SFRotation"
                    accessType="initializeOnly"
                    default="0 1 0 0"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_destination"
                    type="SFRotation"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="SFRotation"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="value_changed"
                    type="SFRotation"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="OrientationDamper">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#OrientationDamper"
                               appinfo="OrientationDamper generates a series of 4-tuple axis-angle SFRotation values that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DDamperNode"/>
            <field name="initialDestination"
                    type="SFRotation"
                    accessType="initializeOnly"
                    default="0 1 0 0"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="SFRotation"
                    accessType="initializeOnly"
                    default="0 1 0 0"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="0"
                    maxInclusive="5"
                    inheritedFrom="X3DDamperNode"
                    description="order defines the number of internal filters (larger means smoother response, longer delay)."/>
            <field name="set_destination"
                    type="SFRotation"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="SFRotation"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="tau"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.3"
                    minInclusive="0"
                    inheritedFrom="X3DDamperNode"
                    description="tau is the exponential-decay time constant for filter response in seconds."/>
            <field name="tolerance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DDamperNode"
                    description="or -1."/>
            <field name="value_changed"
                    type="SFRotation"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="OrientationInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#OrientationInterpolator"
                               appinfo="OrientationInterpolator generates a series of 4-tuple axis-angle SFRotation values.">
            <componentInfo name="Interpolation" level="1"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array."/>
            <field name="keyValue"
                    type="MFRotation"
                    accessType="inputOutput"
                    description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding keyValue output."/>
            <field name="value_changed"
                    type="SFRotation"
                    accessType="outputOnly"
                    description="Linearly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="OrthoViewpoint">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html#OrthoViewpoint"
                               appinfo="OrthoViewpoint provides an orthographic perspective-free view of a scene from a specific location and direction.">
            <componentInfo name="Navigation" level="3"/>
            <Inheritance baseType="X3DViewpointNode"/>
            <field name="bindTime"
                    type="SFTime"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Event sent reporting timestamp when node becomes active/inactive."/>
            <field name="centerOfRotation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DViewpointNode"
                    description="Text description or navigation hint to describe the significance of this model Viewpoint.">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="farDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DViewpointNode"
                    description="farDistance defines maximum clipping plane distance allowed for object display."/>
            <field name="fieldOfView"
                    type="SFVec4f"
                    accessType="inputOutput"
                    default="-1 -1 1 1"
                    description="Minimum and maximum extents of view in units of local coordinate system."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isBound"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated."/>
            <field name="jump"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DViewpointNode"
                    description="Transition instantly by jumping, otherwise smoothly adjust offsets in place when changing to this Viewpoint."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="navigationInfo"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="NavigationInfo"
                    inheritedFrom="X3DViewpointNode"
                    description="The navigationInfo field defines a dedicated NavigationInfo node for this X3DViewpointNode."/>
            <field name="nearDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DViewpointNode"
                    description="nearDistance defines minimum clipping plane distance necessary for object display."/>
            <field name="orientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    inheritedFrom="X3DViewpointNode"
                    description="Rotation (axis, angle in radians) of Viewpoint, relative to default -Z axis direction in local coordinate system."/>
            <field name="position"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 10"
                    description="position (x, y, z in meters) relative to local coordinate system."/>
            <field name="retainUserOffsets"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DViewpointNode"
                    description="Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation.">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="set_bind"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Sending event set_bind=true makes this node active."/>
            <field name="viewAll"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DViewpointNode"
                    description="Viewpoint is automatically adjusted to view all visible geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="NavigationInfo"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="OscillatorSource">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#OscillatorSource"
                               appinfo="OscillatorSource node represents an audio source generating a periodic waveform, providing a constant tone.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundSourceNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="detune"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="The detune ffield is an a-rate AudioParam representing detuning of oscillation in cents (though the AudioParam returned is read-only, the value it represents is not)."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundSourceNode"
                    description="Enables/disables node operation."/>
            <field name="frequency"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="440"
                    minInclusive="0"
                    description="The frequency of oscillation in hertz."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundSourceNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesSoundSource"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="PeriodicWave"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PackagedShader">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#PackagedShader"
                               appinfo="PackagedShader can contain field declarations, but no CDATA section of plain-text source code.">
            <componentInfo name="Shaders" level="1"/>
            <Inheritance baseType="X3DShaderNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <AdditionalInheritance baseType="X3DProgrammableShaderObject"/>
            <field name="activate"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DShaderNode"
                    description="activate forces the shader to activate the contained objects."/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="field"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="field"
                    description="Include a field statement for each field declaration in the PackagedShader node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"/>
            <field name="isSelected"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DShaderNode"
                    description="isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events."/>
            <field name="isValid"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DShaderNode"
                    description="isValid indicates whether current shader objects can be run as a shader program."/>
            <field name="language"
                    type="SFString"
                    accessType="initializeOnly"
                    inheritedFrom="X3DShaderNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="shaderLanguageValues"
                    baseType="xs:NMTOKEN"
                    description="The language field indicates to the X3D player which shading language is used.">
               <enumeration value="Cg" appinfo="nVidia Cg shading language."/>
               <enumeration value="GLSL" appinfo="OpenGL shading language (GLSL)."/>
               <enumeration value="HLSL" appinfo="Microsoft High Level Shading Language (HLSL)."/>
            </field>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="url points to a shader source-code file that may contain a number of shaders and combined effects.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="shaders" type="containerFieldChoicesPackagedShader"/>
            <ContentModel>
               <FieldDeclaration minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ParticleSystem">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#ParticleSystem"
                               appinfo="ParticleSystem specifies a complete particle system.">
            <componentInfo name="ParticleSystems" level="2"/>
            <Inheritance baseType="X3DShapeNode"/>
            <field name="appearance"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DAppearanceNode"
                    inheritedFrom="X3DShapeNode"
                    description="The appearance field holds an Appearance node that is used for the geometry."/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DShapeNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DShapeNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DShapeNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="castShadow"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DShapeNode"
                    description="The castShadow field defines whether this Shape casts shadows as produced by lighting nodes."/>
            <field name="color"
                    synonym="colorRamp"
                    type="MFNode"
                    accessType="initializeOnly"
                    acceptableNodeTypes="X3DColorNode"
                    description="The color field contains Color|ColorRGBA nodes as a series of color values to be used at the given colorKey points in time."/>
            <field name="colorKey"
                    type="MFFloat"
                    accessType="initializeOnly"
                    minInclusive="0"
                    description="Array of time intervals in seconds, corresponding to particle lifetime, that are used to interpolate color array values."/>
            <field name="createParticles"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Enables/disables creation of new particles, while any existing particles remain in existence and continue to animate until the end of their lifetimes."/>
            <field name="emitter"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="X3DParticleEmitterNode"
                    description="The emitter field specifies the type of emitter geometry and properties that the particles are given for their initial positions."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Enables/disables node operation."/>
            <field name="geometry"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DGeometryNode"
                    description="Single contained geometry node provides geometry used for each particle when geometryType=GEOMETRY.">
               <componentInfo name="ParticleSystems" level="3"/>
            </field>
            <field name="geometryType"
                    type="SFString"
                    accessType="initializeOnly"
                    default="QUAD"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="particleSystemGeometryTypeValues"
                    baseType="xs:NMTOKEN"
                    description="specifies type of geometry used to represent individual particles.">
               <enumeration value="LINE"
                             appinfo="line is drawn along current velocity vector of particle."/>
               <enumeration value="POINT"
                             appinfo="point geometry is rendered at particle position."/>
               <enumeration value="QUAD"
                             appinfo="quad geometry is rendered at particle position facing direction traveled."/>
               <enumeration value="SPRITE"
                             appinfo="quad geometry is rendered at particle position facing screen."/>
               <enumeration value="TRIANGLE"
                             appinfo="pair of triangles creating quad geometry is rendered at particle position facing direction traveled."/>
               <enumeration value="GEOMETRY"
                             appinfo="geometry field is used for rendering each particle."/>
               <componentInfo name="ParticleSystems" level="3"/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="lifetimeVariation"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.25"
                    minInclusive="0"
                    maxInclusive="1"
                    description="TODO not properly defined in X3D spedification."/>
            <field name="maxParticles"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="200"
                    minInclusive="0"
                    description="Maximum number of particles to be generated at one time (subject to player limitations)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="particleLifetime"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="5"
                    minInclusive="0"
                    description="TODO not properly defined in X3D spedification."/>
            <field name="particleSize"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="0.02 0.02"
                    minInclusive="0"
                    description="particleSize describes width and height dimensions for each particle in length base units (default is meters)."/>
            <field name="physics"
                    type="MFNode"
                    accessType="initializeOnly"
                    acceptableNodeTypes="X3DParticlePhysicsModelNode"
                    description="After being created, the individual particles are then manipulated according to the physics model(s) specified in the physics field."/>
            <field name="texCoord"
                    synonym="texCoordRamp"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="TextureCoordinate|TextureCoordinateGenerator"
                    description="texture coordinates of the provided texture(s) in the Appearance node, over time."/>
            <field name="texCoordKey"
                    type="MFFloat"
                    accessType="initializeOnly"
                    minInclusive="0"
                    description="Array of time intervals in seconds, corresponding to particle lifetime, that are used to sequence texCoord array values."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DShapeNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="ShapeChildContentModel" minOccurs="0"/>
               <NodeContentModel name="Color"/>
               <NodeContentModel name="ColorRGBA"/>
               <NodeContentModel name="ConeEmitter"/>
               <NodeContentModel name="ExplosionEmitter"/>
               <NodeContentModel name="PointEmitter"/>
               <NodeContentModel name="PolylineEmitter"/>
               <NodeContentModel name="SurfaceEmitter"/>
               <NodeContentModel name="VolumeEmitter"/>
               <NodeContentModel name="BoundedPhysicsModel"/>
               <NodeContentModel name="ForcePhysicsModel"/>
               <NodeContentModel name="WindPhysicsModel"/>
               <NodeContentModel name="ProtoInstance"/>
               <NodeContentModel name="TextureCoordinate" minOccurs="0"/>
               <NodeContentModel name="TextureCoordinateGenerator" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PeriodicWave">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#PeriodicWave"
                               appinfo="PeriodicWave defines a periodic waveform that can be used to shape the output of an Oscillator.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="optionsImag"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="imaginary coefficients for defining a waveform."/>
            <field name="optionsReal"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="real coefficients for defining a waveform."/>
            <field name="type"
                    type="SFString"
                    accessType="inputOutput"
                    default="SQUARE"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="periodicWaveTypeChoices"
                    baseType="SFString"
                    description="The type field specifies shape of waveform to play, which can be one of several provided values or else 'custom' to indicate that real and imaginary coefficient arrays define a custom waveform.">
               <enumeration value="SINE"
                             alias="sine"
                             appinfo="X3D version of &#34;sine&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype"/>
               <enumeration value="SQUARE"
                             alias="square"
                             appinfo="X3D version of &#34;square&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype"/>
               <enumeration value="SAWTOOTH"
                             alias="sawtooth"
                             appinfo="X3D version of &#34;sawtooth&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype"/>
               <enumeration value="TRIANGLE"
                             alias="triangle"
                             appinfo="X3D version of &#34;triangle&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype"/>
               <enumeration value="CUSTOM"
                             alias="custom"
                             appinfo="X3D version of &#34;custom&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="periodicWave" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PhysicalMaterial">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#PhysicalMaterial"
                               appinfo="PhysicalMaterial specifies surface rendering properties for associated geometry nodes.">
            <componentInfo name="Shape" level="2"/>
            <Inheritance baseType="X3DOneSidedMaterialNode"/>
            <field name="baseColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    description="similar to diffuseColor, TODO define more precisely."/>
            <field name="baseTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying baseColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel."/>
            <field name="baseTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="emissiveColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="how much glowing light is emitted from this object."/>
            <field name="emissiveTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel."/>
            <field name="emissiveTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DOneSidedMaterialNode"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="metallic"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="metallic is a PBR parameter (TODO elaborate)."/>
            <field name="metallicRoughnessTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying metallic for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel."/>
            <field name="metallicRoughnessTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="normalScale"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DOneSidedMaterialNode"
                    description="normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material.">
               <componentInfo name="Shape" level="2"/>
            </field>
            <field name="normalTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying normalScale for this material node, the contained texture modulates the texture across the surface."/>
            <field name="normalTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DOneSidedMaterialNode"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="occlusionStrength"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="occlusionStrength indicates areas of indirect lighting, typically called ambient occlusion."/>
            <field name="occlusionTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying occlusionStrength for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel."/>
            <field name="occlusionTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="roughness"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="roughness is a PBR parameter (TODO elaborate)."/>
            <field name="transparency"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="how &#34;clear&#34; an object is: 1."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="material" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ImageTexture"/>
               <NodeContentModel name="MovieTexture"/>
               <NodeContentModel name="PixelTexture"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PickableGroup">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html#PickableGroup"
                               appinfo="PickableGroup is a Grouping node that can contain most nodes.">
            <componentInfo name="Picking" level="1"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <AdditionalInheritance baseType="X3DPickableObject"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="objectType"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;ALL&#34;"
                    inheritedFrom="X3DPickableObject"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickableObjectTypeValues"
                    baseType="MFString"
                    description="The objectType field specifies a set of labels used in the picking process.">
               <enumeration value="&#34;ALL&#34;" appinfo="each node is available for picking."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no node is available for picking."/>
               <enumeration value="&#34;TERRAIN&#34;" appinfo="TERRAIN is an example value."/>
            </field>
            <field name="pickable"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DPickableObject"
                    description="The pickable field determines whether pick traversal is performed on this node or its children."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="NurbsPatchSurface"/>
               <NodeContentModel name="NurbsSweptSurface"/>
               <NodeContentModel name="NurbsSwungSurface"/>
               <NodeContentModel name="NurbsTrimmedSurface"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PixelTexture">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#PixelTexture"
                               appinfo="PixelTexture creates a 2D-image texture map using a numeric array of pixel values.">
            <componentInfo name="Texturing" level="1"/>
            <Inheritance baseType="X3DTexture2DNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="image"
                    type="SFImage"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Defines image: width, height, number_of_components per each pixel value, and list of pixel_values."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="repeatS"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DTexture2DNode"
                    description="Whether to repeat texture along S axis horizontally from left to right."/>
            <field name="repeatT"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DTexture2DNode"
                    description="Whether to repeat texture along T axis vertically from top to bottom."/>
            <field name="textureProperties"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="TextureProperties"
                    inheritedFrom="X3DTexture2DNode"
                    description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texture" type="containerFieldChoicesX3DTexture2DNode"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="TextureProperties"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PixelTexture3D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texture3D.html#PixelTexture3D"
                               appinfo="PixelTexture3D defines a 3D image-based texture map as an explicit array of pixel values (image field).">
            <componentInfo name="Texturing3D" level="1"/>
            <Inheritance baseType="X3DTexture3DNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="image"
                    type="MFInt32"
                    accessType="inputOutput"
                    default="0 0 0 0"
                    description="image describes raw data for this 3D texture: number of components to the image [0,4], width, height and depth of the texture, followed by (width x height x depth) pixel values."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="repeatR"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DTexture3DNode"
                    description="Whether to repeat texture along R axis from front to back."/>
            <field name="repeatS"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DTexture3DNode"
                    description="Whether to repeat texture along S axis horizontally from left to right."/>
            <field name="repeatT"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    inheritedFrom="X3DTexture3DNode"
                    description="Whether to repeat texture along T axis vertically from top to bottom."/>
            <field name="textureProperties"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="TextureProperties"
                    inheritedFrom="X3DTexture3DNode"
                    description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texture" type="containerFieldChoicesX3DTexture3DNode"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="TextureProperties"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PlaneSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/pointingDeviceSensor.html#PlaneSensor"
                               appinfo="PlaneSensor converts pointing device motion into 2D translation parallel to the local Z=0 plane.">
            <componentInfo name="PointingDeviceSensor" level="1"/>
            <Inheritance baseType="X3DDragSensorNode"/>
            <field name="autoOffset"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DDragSensorNode"
                    description="Determines whether previous offset values are remembered/accumulated."/>
            <field name="axisRotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 1 0 0"
                    description="axisRotation determines local sensor coordinate system by rotating the local coordinate system."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events."/>
            <field name="isOver"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DPointingDeviceSensorNode"
                    description="Hover over geometry by aiming the mouse (or pointing device) to generate isOver events."/>
            <field name="maxPosition"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="-1 -1"
                    description="minPosition and maxPosition clamp translations to a range of values measured from origin of Z=0 plane default maxPosition &lt; minPosition means no clamping."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="minPosition"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="0 0"
                    description="minPosition and maxPosition clamp translations to a range of values measured from origin of Z=0 plane default maxPosition &lt; minPosition means no clamping."/>
            <field name="offset"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Sends event and remembers last value sensed."/>
            <field name="trackPoint_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    inheritedFrom="X3DDragSensorNode"
                    description="trackPoint_changed events give intersection point of bearing with sensor's virtual geometry."/>
            <field name="translation_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="translation_changed events equal sum of relative translation change plus offset value."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PointEmitter">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#PointEmitter"
                               appinfo="PointEmitter generates particles from a specific point in space using the specified direction and speed.">
            <componentInfo name="ParticleSystems" level="1"/>
            <Inheritance baseType="X3DParticleEmitterNode"/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    description="Initial direction from which particles emanate."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mass"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Basic mass of each particle, defined in mass base units (default is kilograms)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Enables/disables production of particles from this emitter node."/>
            <field name="position"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Point from which particles emanate."/>
            <field name="speed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement."/>
            <field name="surfaceArea"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Particle surface area in area base units (default is meters squared)."/>
            <field name="variation"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.25"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Multiplier for the randomness used to control the range of possible output values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="emitter" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PointLight">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/lighting.html#PointLight"
                               appinfo="Linear attenuation may occur at level 2, full support at level 3.">
            <componentInfo name="Lighting" level="2"/>
            <Inheritance baseType="X3DLightNode"/>
            <field name="ambientIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"
                    description="Brightness of ambient (nondirectional background) emission from the light."/>
            <field name="attenuation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 0 0"
                    minInclusive="0"
                    description="Constant, linear-distance and squared-distance dropoff factors as radial distance increases from the source."/>
            <field name="color"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    description="color of light, applied to colors of objects."/>
            <field name="global"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Global lights illuminate all objects within their volume of lighting influence."/>
            <field name="intensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DLightNode"
                    description="Brightness of direct emission from the light."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="location"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position of light relative to local coordinate system."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DLightNode"
                    description="Enables/disables this light source."/>
            <field name="radius"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="100"
                    minInclusive="0"
                    description="Maximum effective distance of light relative to local light position, affected by ancestor scaling.">
               <componentInfo name="Lighting" level="3"/>
            </field>
            <field name="shadowIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"
                    description="shadowIntensity field defines how much light is obscured by shapes that cast shadows, ranging from 0 (light not obscured, no visible shadows) to 1 (light completely obscured, full-intensity shadows)."/>
            <field name="shadows"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DLightNode"
                    description="shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PointPickSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html#PointPickSensor"
                               appinfo="PointPickSensor tests one or more pickingGeometry points in space as lying inside the provided pickTarget geometry.">
            <componentInfo name="Picking" level="1"/>
            <Inheritance baseType="X3DPickSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="intersectionType"
                    type="SFString"
                    accessType="initializeOnly"
                    default="BOUNDS"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="intersectionTypeValues"
                    baseType="xs:NMTOKEN"
                    description="intersectionType specifies precision of the collision computation.">
               <enumeration value="BOUNDS"
                             appinfo="TODO undefined in X3D specification."
                             documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
               <enumeration value="GEOMETRY"
                             appinfo="TODO undefined in X3D specification."
                             documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="isActive indicates when the intersecting object is picked by the picking geometry."/>
            <field name="matchCriterion"
                    type="SFString"
                    accessType="inputOutput"
                    default="MATCH_ANY"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="pickSensorMatchCriterionChoices"
                    baseType="xs:NMTOKEN"
                    description="defines whether the intersection test (i.">
               <enumeration value="MATCH_ANY"
                             appinfo="any match of objectType values is acceptable."/>
               <enumeration value="MATCH_EVERY"
                             appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match."/>
               <enumeration value="MATCH_ONLY_ONE"
                             appinfo="one and only one objectType value can match."/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="objectType"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;ALL&#34;"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickableObjectTypeValues"
                    baseType="MFString"
                    description="The objectType field specifies a set of labels used in the picking process.">
               <enumeration value="&#34;ALL&#34;" appinfo="each node is available for picking."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no node is available for picking."/>
               <enumeration value="&#34;TERRAIN&#34;" appinfo="TERRAIN is an example value."/>
            </field>
            <field name="pickedGeometry"
                    type="MFNode"
                    accessType="outputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DPickSensorNode"
                    description="Output event containing the node or nodes that have been found to intersect with the picking geometry from the last time this node performed a picking operation, given in the local coordinate system."/>
            <field name="pickedPoint"
                    type="MFVec3f"
                    accessType="outputOnly"
                    description="Output event containing 3D points on surface of underlying pickingGeometry computed by the picking intersection computations, given in the local coordinate system."/>
            <field name="pickingGeometry"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DGeometryNode"
                    inheritedFrom="X3DPickSensorNode"
                    description="pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation."/>
            <field name="pickTarget"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DGroupingNode|X3DShapeNode|Inline"
                    inheritedFrom="X3DPickSensorNode"
                    description="pickTarget specifies the list of nodes against which picking operations are performed."/>
            <field name="sortOrder"
                    type="SFString"
                    accessType="initializeOnly"
                    default="CLOSEST"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickSensorSortOrderValues"
                    baseType="xs:NMTOKEN"
                    description="The sortOrder field determines the order provided for picked output events.">
               <enumeration value="ANY"
                             appinfo="any single object that can satisfy picking conditions."/>
               <enumeration value="CLOSEST"
                             appinfo="return closest object by distance that satisfies conditions of this pick sensor."/>
               <enumeration value="ALL"
                             appinfo="every object that satisfies picking conditions for this pick sensor is returned."/>
               <enumeration value="ALL_SORTED"
                             appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order."/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="PickSensorGroupingNodeContentModel"/>
               <NodeContentModel name="PointSet"/>
               <NodeContentModel name="Shape"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PointProperties">
         <InterfaceDefinition specificationUrl="https://github.com/Web3DConsortium/X3D/blob/master/ISO-IEC19775/ISO-IEC19775-1/ISO-IEC19775-1v4.0/ISO-IEC19775-1v4-WD1/Part01/components/shape.html"
                               appinfo="PointProperties allows precise fine-grained control over the rendering style of PointSet node points inside the same Shape.">
            <componentInfo name="Shape" level="5"/>
            <Inheritance baseType="X3DAppearanceChildNode"/>
            <field name="attenuation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 0 0"
                    description="attenuation array values [a, b, c] are set to default values if undefined."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pointSizeMaxValue"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    description="pointSizeMaxValue is maximum allowed scaling factor on nominal browser point scaling."/>
            <field name="pointSizeMinValue"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    description="pointSizeMinValue is minimum allowed scaling factor on nominal browser point scaling."/>
            <field name="pointSizeScaleFactor"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="1"
                    description="Nominal rendered point size is a browser-dependent minimum renderable point size, which is then multiplied by an additional pointSizeScaleFactor (which is greater than or equal to 1)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="pointProperties" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PointSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#PointSet"
                               appinfo="PointSet is a node that contains a set of colored 3D points, represented by contained Color|ColorRGBA and Coordinate|CoordinateDouble nodes.">
            <componentInfo name="Rendering" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="ColorCoordinateContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Polyline2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry2D.html#Polyline2D"
                               appinfo="Polyline2D is a geometry node that defines a connected set of vertices in a contiguous set of line segments in X-Y plane.">
            <componentInfo name="Geometry2D" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="lineSegments"
                    type="MFVec2f"
                    accessType="initializeOnly"
                    description="Coordinates of vertices connected into contiguous Polyline2D."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PolylineEmitter">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#PolylineEmitter"
                               appinfo="PolylineEmitter emits particles along a single polyline.">
            <componentInfo name="ParticleSystems" level="1"/>
            <Inheritance baseType="X3DParticleEmitterNode"/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    description="Coordinates for the line along which particles are randomly generated."/>
            <field name="coordIndex"
                    type="MFInt32"
                    accessType="initializeOnly"
                    default="-1"
                    minInclusive="-1"
                    description="coordIndex indices are applied to contained Coordinate values in order to define randomly generated initial geometry of the particles."/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    minInclusive="-1"
                    maxInclusive="1"
                    description="Initial direction from which particles emanate."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mass"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Basic mass of each particle, defined in mass base units (default is kilograms)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Enables/disables production of particles from this emitter node."/>
            <field name="set_coordIndex"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="-1"/>
            <field name="speed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement."/>
            <field name="surfaceArea"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Particle surface area in area base units (default is meters squared)."/>
            <field name="variation"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.25"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Multiplier for the randomness used to control the range of possible output values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="emitter" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Coordinate"/>
               <NodeContentModel name="CoordinateDouble"/>
               <NodeContentModel name="GeoCoordinate"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Polypoint2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry2D.html#Polypoint2D"
                               appinfo="Polypoint2D is a geometry node that defines a set of 2D points in X-Y plane.">
            <componentInfo name="Geometry2D" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="point"
                    type="MFVec2f"
                    accessType="inputOutput"
                    description="2D coordinates of vertices."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PositionChaser">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#PositionChaser"
                               appinfo="PositionChaser generates a series of position values that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DChaserNode"/>
            <field name="duration"
                    type="SFTime"
                    accessType="initializeOnly"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DChaserNode"
                    description="duration is the time interval for filter response in seconds."/>
            <field name="initialDestination"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_destination"
                    type="SFVec3f"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="SFVec3f"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="value_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PositionChaser2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#PositionChaser2D"
                               appinfo="PositionChaser2D generates a series of 2D position values that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DChaserNode"/>
            <field name="duration"
                    type="SFTime"
                    accessType="initializeOnly"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DChaserNode"
                    description="duration is the time interval for filter response in seconds."/>
            <field name="initialDestination"
                    type="SFVec2f"
                    accessType="initializeOnly"
                    default="0 0"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="SFVec2f"
                    accessType="initializeOnly"
                    default="0 0"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_destination"
                    type="SFVec2f"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="SFVec2f"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="value_changed"
                    type="SFVec2f"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PositionDamper">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#PositionDamper"
                               appinfo="PositionDamper generates a series of position values that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DDamperNode"/>
            <field name="initialDestination"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="0"
                    maxInclusive="5"
                    inheritedFrom="X3DDamperNode"
                    description="order defines the number of internal filters (larger means smoother response, longer delay)."/>
            <field name="set_destination"
                    type="SFVec3f"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="SFVec3f"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="tau"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.3"
                    minInclusive="0"
                    inheritedFrom="X3DDamperNode"
                    description="tau is the exponential-decay time constant for filter response in seconds."/>
            <field name="tolerance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DDamperNode"
                    description="or -1."/>
            <field name="value_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PositionDamper2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#PositionDamper2D"
                               appinfo="PositionDamper2D generates a series of 2D floating-point values that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DDamperNode"/>
            <field name="initialDestination"
                    type="SFVec2f"
                    accessType="initializeOnly"
                    default="0 0"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="SFVec2f"
                    accessType="initializeOnly"
                    default="0 0"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="0"
                    maxInclusive="5"
                    inheritedFrom="X3DDamperNode"
                    description="order defines the number of internal filters (larger means smoother response, longer delay)."/>
            <field name="set_destination"
                    type="SFVec2f"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="SFVec2f"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="tau"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.3"
                    minInclusive="0"
                    inheritedFrom="X3DDamperNode"
                    description="tau is the exponential-decay time constant for filter response in seconds."/>
            <field name="tolerance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DDamperNode"
                    description="or -1."/>
            <field name="value_changed"
                    type="SFVec2f"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PositionInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#PositionInterpolator"
                               appinfo="PositionInterpolator generates a series of 3-tuple SFVec3f values.">
            <componentInfo name="Interpolation" level="1"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array."/>
            <field name="keyValue"
                    type="MFVec3f"
                    accessType="inputOutput"
                    description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding keyValue output."/>
            <field name="value_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Linearly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PositionInterpolator2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#PositionInterpolator2D"
                               appinfo="PositionInterpolator2D generates a series of SFVec2f values.">
            <componentInfo name="Interpolation" level="3"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array."/>
            <field name="keyValue"
                    type="MFVec2f"
                    accessType="inputOutput"
                    description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding keyValue output."/>
            <field name="value_changed"
                    type="SFVec2f"
                    accessType="outputOnly"
                    description="Linearly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="PrimitivePickSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html#PrimitivePickSensor"
                               appinfo="If a non-uniform scale is applied to the pick sensor, correct results may require level 3 support.">
            <componentInfo name="Picking" level="2"/>
            <Inheritance baseType="X3DPickSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="intersectionType"
                    type="SFString"
                    accessType="initializeOnly"
                    default="BOUNDS"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="intersectionTypeValues"
                    baseType="xs:NMTOKEN"
                    description="intersectionType specifies precision of the collision computation.">
               <enumeration value="BOUNDS"
                             appinfo="TODO undefined in X3D specification."
                             documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
               <enumeration value="GEOMETRY"
                             appinfo="TODO undefined in X3D specification."
                             documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="isActive indicates when the intersecting object is picked by the picking geometry."/>
            <field name="matchCriterion"
                    type="SFString"
                    accessType="inputOutput"
                    default="MATCH_ANY"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="pickSensorMatchCriterionChoices"
                    baseType="xs:NMTOKEN"
                    description="defines whether the intersection test (i.">
               <enumeration value="MATCH_ANY"
                             appinfo="any match of objectType values is acceptable."/>
               <enumeration value="MATCH_EVERY"
                             appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match."/>
               <enumeration value="MATCH_ONLY_ONE"
                             appinfo="one and only one objectType value can match."/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="objectType"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;ALL&#34;"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickableObjectTypeValues"
                    baseType="MFString"
                    description="The objectType field specifies a set of labels used in the picking process.">
               <enumeration value="&#34;ALL&#34;" appinfo="each node is available for picking."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no node is available for picking."/>
               <enumeration value="&#34;TERRAIN&#34;" appinfo="TERRAIN is an example value."/>
            </field>
            <field name="pickedGeometry"
                    type="MFNode"
                    accessType="outputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DPickSensorNode"
                    description="Output event containing the node or nodes that have been found to intersect with the picking geometry from the last time this node performed a picking operation, given in the local coordinate system."/>
            <field name="pickingGeometry"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DGeometryNode"
                    inheritedFrom="X3DPickSensorNode"
                    description="pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation."/>
            <field name="pickTarget"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DGroupingNode|X3DShapeNode|Inline"
                    inheritedFrom="X3DPickSensorNode"
                    description="pickTarget specifies the list of nodes against which picking operations are performed."/>
            <field name="sortOrder"
                    type="SFString"
                    accessType="initializeOnly"
                    default="CLOSEST"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickSensorSortOrderValues"
                    baseType="xs:NMTOKEN"
                    description="The sortOrder field determines the order provided for picked output events.">
               <enumeration value="ANY"
                             appinfo="any single object that can satisfy picking conditions."/>
               <enumeration value="CLOSEST"
                             appinfo="return closest object by distance that satisfies conditions of this pick sensor."/>
               <enumeration value="ALL"
                             appinfo="every object that satisfies picking conditions for this pick sensor is returned."/>
               <enumeration value="ALL_SORTED"
                             appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order."/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="PickSensorGroupingNodeContentModel"/>
               <NodeContentModel name="Box"/>
               <NodeContentModel name="Cone"/>
               <NodeContentModel name="Cylinder"/>
               <NodeContentModel name="Sphere"/>
               <NodeContentModel name="Shape"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ProgramShader">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#ProgramShader"
                               appinfo="ProgramShader contains no field declarations and no plain-text source code.">
            <componentInfo name="Shaders" level="1"/>
            <Inheritance baseType="X3DShaderNode"/>
            <field name="activate"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DShaderNode"
                    description="activate forces the shader to activate the contained objects."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isSelected"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DShaderNode"
                    description="isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events."/>
            <field name="isValid"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DShaderNode"
                    description="isValid indicates whether current shader objects can be run as a shader program."/>
            <field name="language"
                    type="SFString"
                    accessType="initializeOnly"
                    inheritedFrom="X3DShaderNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="shaderLanguageValues"
                    baseType="xs:NMTOKEN"
                    description="The language field indicates to the X3D player which shading language is used.">
               <enumeration value="Cg" appinfo="nVidia Cg shading language."/>
               <enumeration value="GLSL" appinfo="OpenGL shading language (GLSL)."/>
               <enumeration value="HLSL" appinfo="Microsoft High Level Shading Language (HLSL)."/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="programs"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="ShaderProgram"
                    description="ProgramShader contains zero or more ShaderProgram node instances."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="shaders" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ShaderProgram"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ProjectionVolumeStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#ProjectionVolumeStyle"
                               appinfo="ProjectionVolumeStyle uses voxel data to directly generate output color.">
            <componentInfo name="VolumeRendering" level="2"/>
            <Inheritance baseType="X3DVolumeRenderStyleNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeRenderStyleNode"
                    description="Enables/disables node operation."/>
            <field name="intensityThreshold"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="Threshold value used when type=MIN (LMIP) or type=MAX (MIP)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="type"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="projectionVolumeStyleTypeChoices"
                    baseType="xs:NMTOKEN"
                    description="If type=MAX then Maximum Intensity Projection (MIP) or Least MIP (LMIP) algorithm is used to generate output color.">
               <enumeration value="MAX"
                             appinfo="Maximum Intensity Projection (MIP) or Least MIP (LMIP) algorithm is used to generate output color."/>
               <enumeration value="MIN"
                             appinfo="Minimum Intensity Projection algorithm is used to generate output color."/>
               <enumeration value="AVERAGE"
                             appinfo="All voxels along ray are averaged to generate output color."/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="renderStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ProtoInstance">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#ProtoInstanceAndFieldValueStatement"
                               appinfo="ProtoInstance can override field default values via fieldValue initializations. Non-recursive nested ProtoInstance and ProtoDeclare statements are allowed within a ProtoDeclare.">
            <componentInfo name="Core" level="2"/>
            <Inheritance baseType="X3DPrototypeInstance"/>
            <AdditionalInheritance baseType="X3DChildNode"/>
            <field name="fieldValue"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="fieldValue"
                    description="Include fieldValue statements if this ProtoInstance overrides default values in any of the original field declarations."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="name of the prototype node being instanced."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="fieldValue" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ProximitySensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalSensor.html#ProximitySensor"
                               appinfo="ProximitySensor generates events when the viewer enters, exits and moves within a region of space (defined by a box).">
            <componentInfo name="EnvironmentalSensor" level="1"/>
            <Inheritance baseType="X3DEnvironmentalSensorNode"/>
            <field name="center"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position offset from origin of local coordinate system."/>
            <field name="centerOfRotation_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Sends changed centerOfRotation values, likely caused by user interaction."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="enterTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="Time event generated when user's camera enters the box."/>
            <field name="exitTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="Time event generated when user's camera exits the box."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="isActive true/false events are sent as viewer enters/exits Proximity box."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="orientation_changed"
                    type="SFRotation"
                    accessType="outputOnly"
                    description="Sends rotation event relative to center.">
               <componentInfo name="EnvironmentalSensor" level="2"/>
            </field>
            <field name="position_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Sends translation event relative to center.">
               <componentInfo name="EnvironmentalSensor" level="2"/>
            </field>
            <field name="size"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    inheritedFrom="X3DEnvironmentalSensorNode"
                    description="size of Proximity box."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="QuadSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/CADGeometry.html#QuadSet"
                               appinfo="QuadSet is a geometry node that defines quadrilaterals.">
            <componentInfo name="CADGeometry" level="1"/>
            <Inheritance baseType="X3DComposedGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ComposedGeometryContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ReceiverPdu">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/dis.html#ReceiverPdu"
                               appinfo="ReceiverPdu is a networked Protocol Data Unit (PDU) information node that transmits the state of radio frequency (RF) receivers modeled in a simulation.">
            <componentInfo name="DIS" level="1"/>
            <Inheritance baseType="X3DNetworkSensorNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="address"
                    type="SFString"
                    accessType="inputOutput"
                    default="localhost"
                    description="Multicast network address, or else 'localhost'; Example: 224."/>
            <field name="applicationID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID."/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables the sensor node."/>
            <field name="entityID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="EntityID unique ID for entity within that application."/>
            <field name="geoCoords"
                    type="SFVec3d"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Geographic location (specified in current geoSystem coordinates) for children geometry (specified in relative coordinate system, in meters)."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="confirm whether there has been a recent network update."/>
            <field name="isNetworkReader"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='remote' (listen to network as copy of remote entity)."/>
            <field name="isNetworkWriter"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='master' (output to network as master entity at writeInterval)."/>
            <field name="isRtpHeaderHeard"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether incoming DIS packets have an RTP header prepended."/>
            <field name="isStandAlone"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='local' (ignore network but still respond to local events)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="multicastRelayHost"
                    type="SFString"
                    accessType="inputOutput"
                    description="Fallback server address if multicast not available locally."/>
            <field name="multicastRelayPort"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Fallback server port if multicast not available locally."/>
            <field name="networkMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="standAlone"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="networkModeChoices"
                    baseType="xs:NMTOKEN"
                    description="Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network.">
               <enumeration value="standAlone"
                             appinfo="ignore network but still respond to events in local scene."/>
               <enumeration value="networkReader"
                             appinfo="listen to network and read PDU packets at readInterval, act as remotely linked copy of entity."/>
               <enumeration value="networkWriter"
                             appinfo="send PDU packets to network at writeInterval, act as master entity."/>
            </field>
            <field name="port"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Multicast network port, for example: 3000."/>
            <field name="radioID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Identifies a particular radio within a given entity."/>
            <field name="readInterval"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.1"
                    minInclusive="0"
                    description="Seconds between read updates, 0 means no reading."/>
            <field name="receivedPower"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.0"
                    description="receivedPower indicates radio frequency (RF) power received, in units of decibel-milliwatts (dBm), after applying any propagation loss and antenna gain."/>
            <field name="receiverState"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="receiverState indicates if receiver is currently idle or busy via one of these enumerated values: 0 = off, 1 = on but not receiving, or 2 = on and receiving."/>
            <field name="rtpHeaderExpected"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Whether RTP headers are prepended to DIS PDUs."/>
            <field name="siteID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise siteID of the participating LAN or organization."/>
            <field name="timestamp"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    description="DIS timestamp in X3D units (value 0."/>
            <field name="transmitterApplicationID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise transmitterApplicationID is unique for transmitter application at that site."/>
            <field name="transmitterEntityID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise transmitterEntityID is a unique ID for a single entity within that application."/>
            <field name="transmitterRadioID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Identifies a particular radio within a given entity."/>
            <field name="transmitterSiteID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise transmitterSiteID of the participating LAN or organization."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="whichGeometry"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="1"
                    description="Select geometry to render: -1 for no geometry, 0 for text trace, 1 for default geometry, (optional) higher values to render different states."/>
            <field name="writeInterval"
                    type="SFTime"
                    accessType="inputOutput"
                    default="1.0"
                    minInclusive="0"
                    description="Seconds between write updates, 0 means no writing (sending)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Rectangle2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry2D.html#Rectangle2D"
                               appinfo="Rectangle2D is a geometry node that defines a 2D rectangle in X-Y plane.">
            <componentInfo name="Geometry2D" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="size"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="2 2"
                    minExclusive="0"
                    description="2D dimensions of Rectangle2D."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="RigidBody">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#RigidBody"
                               appinfo="RigidBody describes a collection of shapes with a mass distribution that is affected by the physics model.">
            <componentInfo name="RigidBodyPhysics" level="2"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="angularDampingFactor"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.001"
                    description="angularDampingFactor automatically damps a portion of body motion over time."/>
            <field name="angularVelocity"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="angularVelocity sets constant velocity value to object every frame, and reports updates by physics model."/>
            <field name="autoDamp"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="autoDamp enables/disables angularDampingFactor and linearDampingFactor."/>
            <field name="autoDisable"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="autoDisable toggles operation of disableAngularSpeed, disableLinearSpeed, disableTime."/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="centerOfMass"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="centerOfMass defines local center of mass for physics calculations."/>
            <field name="disableAngularSpeed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="disableAngularSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculations, reducing numeric instabilities."/>
            <field name="disableLinearSpeed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="disableLinearSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculation, reducing numeric instabilitiess."/>
            <field name="disableTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="disableTime defines interval when body becomes at rest and not part of rigid body calculations, reducing numeric instabilities."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Enables/disables node operation."/>
            <field name="finiteRotationAxis"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    description="finiteRotationAxis specifies vector around which the object rotates."/>
            <field name="fixed"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="fixed indicates whether body is able to move."/>
            <field name="forces"
                    type="MFVec3f"
                    accessType="inputOutput"
                    description="forces defines linear force values applied to the object every frame."/>
            <field name="geometry"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DNBodyCollidableNode"
                    description="The geometry field is used to connect the body modelled by the physics engine implementation to the real geometry of the scene through the use of collidable nodes."/>
            <field name="inertia"
                    type="SFMatrix3f"
                    accessType="inputOutput"
                    default="1 0 0 0 1 0 0 0 1"
                    description="inertia matrix defines a 3x2 inertia tensor matrix."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="linearDampingFactor"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.001"
                    description="linearDampingFactor automatically damps a portion of body motion over time."/>
            <field name="linearVelocity"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="linearVelocity sets constant velocity value to object every frame, and reports updates by physics model."/>
            <field name="mass"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    description="mass of the body in kilograms."/>
            <field name="massDensityModel"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Sphere|Box|Cone"
                    description="The massDensityModel field is used to describe the geometry type and dimensions used to calculate the mass density in the physics model."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="orientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="orientation sets body direction in world space, then reports physics updates."/>
            <field name="position"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="position sets body location in world space, then reports physics updates."/>
            <field name="torques"
                    type="MFVec3f"
                    accessType="inputOutput"
                    description="torques defines rotational force values applied to the object every frame."/>
            <field name="useFiniteRotation"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="useFiniteRotation enables/disables higher-resolution, higher-cost computational method for calculating rotations."/>
            <field name="useGlobalGravity"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="useGlobalGravity indicates whether this particular body is influenced by parent RigidBodyCollection's gravity setting."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="bodies" type="xs:NMTOKEN">
               <enumeration value="body1"/>
               <enumeration value="body2"/>
               <enumeration value="bodies"/>
            </containerField>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="RigidBodyContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="RigidBodyCollection">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#RigidBodyCollection"
                               appinfo="RigidBodyCollection represents a system of bodies that interact within a single physics model.">
            <componentInfo name="RigidBodyPhysics" level="2"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="autoDisable"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="autoDisable toggles operation of disableAngularSpeed, disableLinearSpeed, disableTime."/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="bodies"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="RigidBody"
                    description="Collection of top-level nodes that comprise a set of bodies evaluated as a single set of interactions."/>
            <field name="collider"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="CollisionCollection"
                    description="The collider field associates a collision collection with this rigid body collection allowing seamless updates and integration without the need to use the X3D event model."/>
            <field name="constantForceMix"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.0001"
                    description="constantForceMix modifies damping calculations by violating normal constraints while applying small, constant forces in those calculations."/>
            <field name="contactSurfaceThickness"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="contactSurfaceThickness defines how far bodies may interpenetrate after a collision, allowing simulation of softer bodies that deform somewhat during collision."/>
            <field name="disableAngularSpeed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="disableAngularSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculations, reducing numeric instabilities."/>
            <field name="disableLinearSpeed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="disableLinearSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculation, reducing numeric instabilitiess."/>
            <field name="disableTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="disableTime defines interval when body becomes at rest and not part of rigid body calculations, reducing numeric instabilities."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Enables/disables node operation."/>
            <field name="errorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    description="errorCorrection describes how quickly intersection errors due to floating-point inaccuracies are resolved (0=no correction, 1=all corrected in single step)."/>
            <field name="gravity"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 -9.8 0"
                    description="gravity indicates direction and strength of local gravity vector for this collection of bodies (units m/sec^2)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="iterations"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="10"
                    description="iterations controls number of iterations performed over collectioned joints and bodies during each evaluation."/>
            <field name="joints"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DRigidJointNode"
                    description="The joints field is used to register all joints between bodies contained in this collection."/>
            <field name="maxCorrectionSpeed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    description="or -1, maxCorrectionSpeed."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="preferAccuracy"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="preferAccuracy provides hint for performance preference: higher accuracy or faster computational speed."/>
            <field name="set_contacts"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="Contact"
                    description="set_contacts input field for Contact nodes provides per-frame information about contacts between bodies."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="RigidBodyCollectionContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ScalarChaser">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#ScalarChaser"
                               appinfo="ScalarChaser generates a series of single floating-point values that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DChaserNode"/>
            <field name="duration"
                    type="SFTime"
                    accessType="initializeOnly"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DChaserNode"
                    description="duration is the time interval for filter response in seconds."/>
            <field name="initialDestination"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="0"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="0"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_destination"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="value_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ScalarDamper">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#ScalarDamper"
                               appinfo="ScalarDamper generates a series of floating-point values that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DDamperNode"/>
            <field name="initialDestination"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="0"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="0"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="0"
                    maxInclusive="5"
                    inheritedFrom="X3DDamperNode"
                    description="order defines the number of internal filters (larger means smoother response, longer delay)."/>
            <field name="set_destination"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="SFFloat"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="tau"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.3"
                    minInclusive="0"
                    inheritedFrom="X3DDamperNode"
                    description="tau is the exponential-decay time constant for filter response in seconds."/>
            <field name="tolerance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DDamperNode"
                    description="or -1."/>
            <field name="value_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ScalarInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#ScalarInterpolator"
                               appinfo="ScalarInterpolator generates piecewise-linear SFFloat values.">
            <componentInfo name="Interpolation" level="1"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array."/>
            <field name="keyValue"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding keyValue output."/>
            <field name="value_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Linearly interpolated output value determined by current key time and corresponding keyValue pair."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ScreenFontStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layout.html#ScreenFontStyle"
                               appinfo="ScreenFontStyle is an X3DFontStyleNode defines the size, family, justification, and other styles used within a screen layout.">
            <componentInfo name="Layout" level="2"/>
            <Inheritance baseType="X3DFontStyleNode"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="family"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;SERIF&#34;"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="fontFamilyValues"
                    baseType="MFString"
                    description="Array of quoted font family names in preference order, browsers use the first supported family.">
               <enumeration value="&#34;SANS&#34;"
                             appinfo="default font family for sans-serif font such as Helvetica."/>
               <enumeration value="&#34;SERIF&#34;"
                             appinfo="default font family for serif font such as Times-Roman."/>
               <enumeration value="&#34;TYPEWRITER&#34;"
                             appinfo="default font family for a fixed-pitch font such as Courier."/>
            </field>
            <field name="horizontal"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether text direction is horizontal (true) or vertical (false)."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="justify"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;BEGIN&#34;"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="justifyChoices"
                    baseType="MFString"
                    description="The justify field determines horizontal and vertical alignment of text layout, relative to the origin of the object coordinate system.">
               <enumeration value="&#34;MIDDLE&#34;"/>
               <enumeration value="&#34;MIDDLE&#34; &#34;BEGIN&#34;"/>
               <enumeration value="&#34;MIDDLE&#34; &#34;END&#34;"/>
               <enumeration value="&#34;MIDDLE&#34; &#34;FIRST&#34;"/>
               <enumeration value="&#34;MIDDLE&#34; &#34;MIDDLE&#34;"/>
               <enumeration value="&#34;BEGIN&#34;"/>
               <enumeration value="&#34;BEGIN&#34; &#34;BEGIN&#34;"/>
               <enumeration value="&#34;BEGIN&#34; &#34;END&#34;"/>
               <enumeration value="&#34;BEGIN&#34; &#34;FIRST&#34;"/>
               <enumeration value="&#34;BEGIN&#34; &#34;MIDDLE&#34;"/>
               <enumeration value="&#34;END&#34;"/>
               <enumeration value="&#34;END&#34; &#34;BEGIN&#34;"/>
               <enumeration value="&#34;END&#34; &#34;END&#34;"/>
               <enumeration value="&#34;END&#34; &#34;FIRST&#34;"/>
               <enumeration value="&#34;END&#34; &#34;MIDDLE&#34;"/>
               <enumeration value="&#34;FIRST&#34;"/>
               <enumeration value="&#34;FIRST&#34; &#34;BEGIN&#34;"/>
               <enumeration value="&#34;FIRST&#34; &#34;END&#34;"/>
               <enumeration value="&#34;FIRST&#34; &#34;FIRST&#34;"/>
               <enumeration value="&#34;FIRST&#34; &#34;MIDDLE&#34;"/>
            </field>
            <field name="language"
                    type="SFString"
                    accessType="inputOutput"
                    description="Language codes consist of a primary code and a (possibly empty) series of subcodes."/>
            <field name="leftToRight"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether text direction is left-to-right (true) or right-to-left (false)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pointSize"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="12.0"
                    minExclusive="0"
                    description="pointSize field specifies the size of text in points."/>
            <field name="spacing"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1.0"
                    minInclusive="0"
                    description="Adjustment factor for line spacing between adjacent lines of text."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    default="PLAIN"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="fontStyleChoices"
                    baseType="xs:NMTOKEN"
                    description="Pick one of four values for text style (PLAIN|BOLD|ITALIC|BOLDITALIC).">
               <enumeration value="PLAIN" appinfo="default plain type."/>
               <enumeration value="BOLD" appinfo="boldface type."/>
               <enumeration value="ITALIC" appinfo="italic type."/>
               <enumeration value="BOLDITALIC" appinfo="bold and italic type."/>
            </field>
            <field name="topToBottom"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Whether text direction is top-to-bottom (true) or bottom-to-top (false)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <containerField default="fontStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ScreenGroup">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layout.html#ScreenGroup"
                               appinfo="ScreenGroup is a Grouping node that can contain most nodes.">
            <componentInfo name="Layout" level="2"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Script">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/scripting.html#Script"
                               appinfo="Script contains author-programmed event behaviors for a scene.">
            <componentInfo name="Scripting" level="1"/>
            <Inheritance baseType="X3DScriptNode"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DScriptNode"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DScriptNode"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DScriptNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="directOutput"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    description="Set directOutput true if Script has field reference(s) of type SFNode/MFNode, and also uses direct access to modify attributes of a referenced node in the Scene."/>
            <field name="field"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="field"
                    description="Include a field statement for each field declaration in this Script node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DScriptNode"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="mustEvaluate"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    description="If mustEvaluate false, then the X3D player may delay sending input events to Script until output events are needed."/>
            <field name="sourceCode"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:string"
                    description="Embedded scripting source code can be contained within the parent node as a plain-text CDATA block, without requiring escaping of special characters."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DScriptNode"
                    description="List of address links for runnable script files.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesX3DUrlObject"/>
            <ContentModel>
               <FieldDeclaration minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <SourceText/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SegmentedVolumeData">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#SegmentedVolumeData"
                               appinfo="SegmentedVolumeData displays a segmented voxel dataset with different RenderStyle nodes.">
            <componentInfo name="VolumeRendering" level="2"/>
            <Inheritance baseType="X3DVolumeDataNode"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DVolumeDataNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="dimensions"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    minExclusive="0"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Actual-size X-Y-Z dimensions of volume data in local coordinate system."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="renderStyle"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVolumeRenderStyleNode"
                    description="Multiple contained X3DVolumeRenderStyleNode nodes corresponding to each isosurface that define specific rendering technique for this volumetric object."/>
            <field name="segmentEnabled"
                    type="MFBool"
                    accessType="inputOutput"
                    description="Array of boolean values that indicates whether to draw each segment, with indices corresponding to the segment identifier."/>
            <field name="segmentIdentifiers"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture3DNode"
                    description="Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) holds component texture that provides corresponding segment identifier."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="voxels"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture3DNode"
                    description="Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides raw voxel information utilized by corresponding rendering styles."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="Texture3DContentModel" minOccurs="0"/>
               <GroupContentModel name="VolumeRenderStyleContentModel" minOccurs="0"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ShadedVolumeStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#ShadedVolumeStyle"
                               appinfo="All fields fully supported except shadows supported with at least Phong shading at level 3. All fields fully supported with at least Phong shading and Henyey-Greenstein phase function, shadows fully supported at level 4.">
            <componentInfo name="VolumeRendering" level="3"/>
            <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeRenderStyleNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="lighting"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Whether rendering calculates and applies shading effects to visual output."/>
            <field name="material"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMaterialNode"
                    description="Colour and opacity is determined based on whether a value has been specified for the material field."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="phaseFunction"
                    type="SFString"
                    accessType="initializeOnly"
                    default="Henyey-Greenstein"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="phaseFunctionValues"
                    baseType="SFString"
                    description="define scattering model for implementations using global illumination (NONE or Henyey-Greenstein phase function).">
               <enumeration value="Henyey-Greenstein"
                             appinfo="Henyey-Greenstein phase function for scattering model."/>
               <enumeration value="NONE" appinfo="no scattering."/>
            </field>
            <field name="shadows"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Whether rendering calculates and applies shadows to visual output (using global illumination model)."/>
            <field name="surfaceNormals"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture3DNode"
                    description="The surfaceNormals field contains a 3D texture with at least three component values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="renderStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="Texture3DContentModel"/>
               <NodeContentModel name="Material"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ShaderPart">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#ShaderPart"
                               appinfo="ShaderPart can contain a CDATA section of plain-text source code.">
            <componentInfo name="Shaders" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="sourceCode"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:string"
                    description="Embedded scripting source code can be contained within the parent node as a plain-text CDATA block, without requiring escaping of special characters."/>
            <field name="type"
                    type="SFString"
                    accessType="initializeOnly"
                    default="VERTEX"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="shaderPartTypeValues"
                    baseType="xs:NMTOKEN"
                    description="type indicates whether this ShaderProgram is a vertex or fragment (pixel) shader.">
               <enumeration value="VERTEX" appinfo="vertex shader."/>
               <enumeration value="FRAGMENT" appinfo="fragment shader."/>
            </field>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Location and filename of shader.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="parts" type="containerFieldChoicesShaderPart"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <SourceText/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ShaderProgram">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html#ShaderProgram"
                               appinfo="ShaderProgram can contain field declarations and a CDATA section of plain-text source code.">
            <componentInfo name="Shaders" level="1"/>
            <Inheritance baseType="X3DNode"/>
            <AdditionalInheritance baseType="X3DUrlObject"/>
            <AdditionalInheritance baseType="X3DProgrammableShaderObject"/>
            <field name="autoRefresh"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed."/>
            <field name="autoRefreshTimeLimit"
                    type="SFTime"
                    accessType="inputOutput"
                    default="3600"
                    minInclusive="0"
                    inheritedFrom="X3DUrlObject"
                    description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="field"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="field"
                    description="Include a field statement for each field declaration in the ShaderProgram node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="load"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DUrlObject"
                    description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="sourceCode"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:string"
                    description="Embedded scripting source code can be contained within the parent node as a plain-text CDATA block, without requiring escaping of special characters."/>
            <field name="type"
                    type="SFString"
                    accessType="initializeOnly"
                    default="VERTEX"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="shaderPartTypeValues"
                    baseType="xs:NMTOKEN"
                    description="type indicates whether this ShaderProgram is a vertex or fragment (pixel) shader.">
               <enumeration value="VERTEX" appinfo="vertex shader."/>
               <enumeration value="FRAGMENT" appinfo="fragment shader."/>
            </field>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DUrlObject"
                    description="Location and filename of shader.">
               <componentInfo name="Networking" level="4"/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="programs" type="xs:NMTOKEN"/>
            <ContentModel>
               <FieldDeclaration minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <SourceText/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Shape">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#Shape"
                               appinfo="Shape can appear under any grouping node.">
            <componentInfo name="Shape" level="1"/>
            <Inheritance baseType="X3DShapeNode"/>
            <field name="appearance"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DAppearanceNode"
                    inheritedFrom="X3DShapeNode"
                    description="Single contained Appearance node that can specify visual attributes (such as material, texture, fillProperties and lineProperties) applied to corresponding geometry."/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DShapeNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DShapeNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DShapeNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="castShadow"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DShapeNode"
                    description="castShadow defines whether this Shape casts shadows as produced by lighting nodes."/>
            <field name="geometry"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DGeometryNode"
                    inheritedFrom="X3DShapeNode"
                    description="Single contained geometry node that is rendered according to corresponding appearance."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DShapeNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children"
                             type="containerFieldChoicesGroupLODShapeTransformSwitch"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="ShapeChildContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SignalPdu">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/dis.html#SignalPdu"
                               appinfo="SignalPdu is a networked Protocol Data Unit (PDU) information node that communicates the transmission of voice, audio or other data modeled in a simulation.">
            <componentInfo name="DIS" level="1"/>
            <Inheritance baseType="X3DNetworkSensorNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="address"
                    type="SFString"
                    accessType="inputOutput"
                    default="localhost"
                    description="Multicast network address, or else 'localhost'."/>
            <field name="applicationID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID."/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="data"
                    type="MFInt32"
                    accessType="inputOutput"
                    description="Holds audio or digital data conveyed by the radio transmission."/>
            <field name="dataLength"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="number of bits of digital voice audio or digital data being sent in the Signal PDU."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables the sensor node."/>
            <field name="encodingScheme"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="designates both Encoding Class and Encoding Type."/>
            <field name="entityID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="EntityID unique ID for entity within that application."/>
            <field name="geoCoords"
                    type="SFVec3d"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Geographic location (specified in current geoSystem coordinates) for children geometry (specified in relative coordinate system, in meters)."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="confirm whether there has been a recent network update."/>
            <field name="isNetworkReader"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='remote' (listen to network as copy of remote entity)."/>
            <field name="isNetworkWriter"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='master' (output to network as master entity at writeInterval)."/>
            <field name="isRtpHeaderHeard"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether incoming DIS packets have an RTP header prepended."/>
            <field name="isStandAlone"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='local' (ignore network but still respond to local events)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="multicastRelayHost"
                    type="SFString"
                    accessType="inputOutput"
                    description="Fallback server address if multicast not available locally."/>
            <field name="multicastRelayPort"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Fallback server port if multicast not available locally."/>
            <field name="networkMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="standAlone"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="networkModeChoices"
                    baseType="xs:NMTOKEN"
                    description="Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network.">
               <enumeration value="standAlone"
                             appinfo="ignore network but still respond to events in local scene."/>
               <enumeration value="networkReader"
                             appinfo="listen to network and read PDU packets at readInterval, act as remotely linked copy of entity."/>
               <enumeration value="networkWriter"
                             appinfo="send PDU packets to network at writeInterval, act as master entity."/>
            </field>
            <field name="port"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Multicast network port, for example: 3000."/>
            <field name="radioID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Identifies a particular radio within a given entity."/>
            <field name="readInterval"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.1"
                    minInclusive="0"
                    description="Seconds between read updates, 0 means no reading."/>
            <field name="rtpHeaderExpected"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Whether RTP headers are prepended to DIS PDUs."/>
            <field name="sampleRate"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="sampleRate gives either (1) sample rate in samples per second if Encoding Class is encoded audio, or (2) data rate in bits per second for data transmissions."/>
            <field name="samples"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Number of samples in the PDU if the Encoding Class is encoded voice, otherwise the field is set to zero."/>
            <field name="siteID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise siteID of the participating LAN or organization."/>
            <field name="tdlType"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Tactical Data Link (TDL) type as an enumerated value when the Encoding Class is voice, raw binary, application-specific, or database index representation of a TDL message."/>
            <field name="timestamp"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    description="DIS timestamp in X3D units (value 0."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="whichGeometry"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="1"
                    description="Select geometry to render: -1 for no geometry, 0 for text trace, 1 for default geometry, (optional) higher values to render different states."/>
            <field name="writeInterval"
                    type="SFTime"
                    accessType="inputOutput"
                    default="1.0"
                    minInclusive="0"
                    description="Seconds between write updates, 0 means no writing (sending)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SilhouetteEnhancementVolumeStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#SilhouetteEnhancementVolumeStyle"
                               appinfo="SilhouetteEnhancementVolumeStyle specifies that volumetric data is rendered with silhouette enhancement.">
            <componentInfo name="VolumeRendering" level="2"/>
            <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeRenderStyleNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="silhouetteBoundaryOpacity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="amount of the silhouette enhancement to use."/>
            <field name="silhouetteRetainedOpacity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    description="scaling of non-silhouette regions."/>
            <field name="silhouetteSharpness"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.5"
                    minInclusive="0"
                    description="power function to control sharpness of the silhouette."/>
            <field name="surfaceNormals"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture3DNode"
                    description="The surfaceNormals field contains a 3D texture with at least three component values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="renderStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="Texture3DContentModel"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SingleAxisHingeJoint">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#SingleAxisHingeJoint"
                               appinfo="SingleAxisHingeJoint has single axis about which to rotate, similar to a traditional door hinge. Contains two RigidBody nodes (containerField values body1, body2).">
            <componentInfo name="RigidBodyPhysics" level="2"/>
            <Inheritance baseType="X3DRigidJointNode"/>
            <field name="anchorPoint"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="anchorPoint is joint center, specified in world coordinates."/>
            <field name="angle" type="SFFloat" accessType="outputOnly"/>
            <field name="angleRate" type="SFFloat" accessType="outputOnly"/>
            <field name="axis"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    description="axis defines vector of joint connection between body1 and body2."/>
            <field name="body1"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="body1AnchorPoint" type="SFVec3f" accessType="outputOnly"/>
            <field name="body2"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="body2AnchorPoint" type="SFVec3f" accessType="outputOnly"/>
            <field name="forceOutput"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;NONE&#34;"
                    inheritedFrom="X3DRigidJointNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="forceOutputValues"
                    baseType="MFString"
                    description="forceOutput controls which output fields are generated for the next frame.">
               <enumeration value="&#34;ALL&#34;" appinfo="all forceOutput fields computed."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no forceOutput fields computed."/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="maxAngle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="3.141592653"
                    description="maxAngle is maximum rotation angle for hinge."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="minAngle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-3.141592653"
                    description="minAngle is minimum rotation angle for hinge."/>
            <field name="stopBounce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="stopBounce is velocity factor for bounce back once stop point is reached."/>
            <field name="stopErrorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    description="stopErrorCorrection is fraction of error correction performed during time step once stop point is reached."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="joints" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="RigidJointNodeContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SliderJoint">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#SliderJoint"
                               appinfo="SliderJoint constrains all movement between body1 and body2 along a single axis. Contains two RigidBody nodes (containerField values body1, body2).">
            <componentInfo name="RigidBodyPhysics" level="2"/>
            <Inheritance baseType="X3DRigidJointNode"/>
            <field name="axis"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    description="axis is normalized vector specifying direction of motion."/>
            <field name="body1"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="body2"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="forceOutput"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;NONE&#34;"
                    inheritedFrom="X3DRigidJointNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="forceOutputValues"
                    baseType="MFString"
                    description="forceOutput controls which output fields are generated for the next frame.">
               <enumeration value="&#34;ALL&#34;" appinfo="all forceOutput fields computed."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no forceOutput fields computed."/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="maxSeparation"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    description="maxSeparation is maximum separation distance between the two bodies."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="minSeparation"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="minSeparation is minimum separation distance between the two bodies."/>
            <field name="separation"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="separation indicates final separation distance between the two bodies."/>
            <field name="separationRate"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="separationRate indicates change in separation distance over time between the two bodies."/>
            <field name="sliderForce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="sliderForce value is used to apply a force (specified in force base units) along the axis of the slider in equal and opposite directions to the two bodies."/>
            <field name="stopBounce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="stopBounce is velocity factor for bounce back once stop point is reached."/>
            <field name="stopErrorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    description="stopErrorCorrection is fraction of error correction performed during time step once stop point is reached."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="joints" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="RigidJointNodeContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Sound">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Sound"
                               appinfo="The Sound node controls the 3D spatialization of sound playback by a child AudioClip or MovieTexture node.">
            <componentInfo name="Sound" level="1"/>
            <Inheritance baseType="X3DSoundNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundNode"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 1"
                    description="direction of sound axis, relative to local coordinate system."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundNode"
                    description="Enables/disables node operation."/>
            <field name="intensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="Factor [0,1] adjusting loudness (decibels) of emitted sound."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="location"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position of sound ellipsoid center, relative to local coordinate system."/>
            <field name="maxBack"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="10"
                    minInclusive="0"
                    description="Outer (zero loudness)ellipsoid distance along back direction."/>
            <field name="maxFront"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="10"
                    minInclusive="0"
                    description="Outer (zero loudness)ellipsoid distance along front direction."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="minBack"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    description="Inner (full loudness) ellipsoid distance along back direction."/>
            <field name="minFront"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    description="Inner (full loudness) ellipsoid distance along front direction."/>
            <field name="priority"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="Player hint [0,1] if needed to choose which sounds to play."/>
            <field name="source"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSoundSourceNode"
                    description="sound source for the Sound node, either an AudioClip node or a MovieTexture node."/>
            <field name="spatialize"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="Whether to spatialize sound playback relative to viewer."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SpatialSound">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Sound"
                               appinfo="The SpatialSound node controls the 3D spatialization of sound playback by a child AudioClip or MovieTexture node.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundNode"/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="coneInnerAngle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="6.2832"
                    minInclusive="0"
                    maxInclusive="6.2832"
                    description="coneInnerAngle is centered along direction and defines the inner conical volume, inside of which no source gain reduction occurs."/>
            <field name="coneOuterAngle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="6.2832"
                    minInclusive="0"
                    maxInclusive="6.2832"
                    description="coneOuterAngle is centered along direction and defines an outer conical volume, within which the sound gain decreases linearly from full gain to coneOuterGain."/>
            <field name="coneOuterGain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="coneOuterGain is minimum gain value found outside coneOuterAngle."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 1"
                    description="direction of sound axis, relative to local coordinate system."/>
            <field name="distanceModel"
                    type="SFString"
                    accessType="inputOutput"
                    default="INVERSE"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="distanceModelChoices"
                    baseType="SFString"
                    description="distanceModel determines how field specifies which algorithm to use for sound attenuation, corresponding to distance between an audio source and a listener, as it moves away from the listener.">
               <enumeration value="LINEAR"
                             alias="linear"
                             appinfo="X3D version of &#34;linear&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype"/>
               <enumeration value="INVERSE"
                             alias="inverse"
                             appinfo="X3D version of &#34;inverse&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype"/>
               <enumeration value="EXPONENTIAL"
                             alias="exponential"
                             appinfo="X3D version of &#34;exponential&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype"/>
            </field>
            <field name="dopplerEnabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="dopplerEnabled enables/disables whether real-time Doppler effects (due to relation motion between sources and listeners) are computed by browser between virtual sound sources and active listening locations, then applied to received frequency at active listening locations."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundNode"
                    description="Enables/disables node operation."/>
            <field name="enableHRTF"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="enableHRTF enables/disables Head Related Transfer Function (HRTF) auralization, if available."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="intensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="Factor [0,1] adjusting loudness (decibels) of emitted sound."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="location"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position of sound ellipsoid center, relative to local coordinate system."/>
            <field name="maxDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="10000"
                    minInclusive="0"
                    description="maxDistance is the maximum distance where sound is renderable between source and listener, after which no reduction in sound volume occurs."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="priority"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="Player hint [0,1] if needed to choose which sounds to play."/>
            <field name="referenceDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    description="referenceDistance for reducing volume as source moves further from the listener."/>
            <field name="rolloffFactor"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    description="rolloffFactor indicates how quickly volume is reduced as source moves further from listener."/>
            <field name="spatialize"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="Whether to spatialize sound playback relative to viewer."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Sphere">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry3D.html#Sphere"
                               appinfo="Sphere is a geometry node, representing a perfectly round geometrical object that is the surface of a completely round ball.">
            <componentInfo name="Geometry3D" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="radius"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="1"
                    minExclusive="0"
                    description="Size in meters."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SphereSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/pointingDeviceSensor.html#SphereSensor"
                               appinfo="SphereSensor converts pointing device motion into a spherical rotation about the origin of the local coordinate system.">
            <componentInfo name="PointingDeviceSensor" level="1"/>
            <Inheritance baseType="X3DDragSensorNode"/>
            <field name="autoOffset"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DDragSensorNode"
                    description="Determines whether previous offset values are remembered/accumulated."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events."/>
            <field name="isOver"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DPointingDeviceSensorNode"
                    description="Hover over geometry by aiming the mouse (or pointing device) to generate isOver events."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="offset"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 1 0 0"
                    description="Sends event and remembers last value sensed."/>
            <field name="rotation_changed"
                    type="SFRotation"
                    accessType="outputOnly"
                    description="rotation_changed events equal sum of relative bearing changes plus offset value."/>
            <field name="trackPoint_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    inheritedFrom="X3DDragSensorNode"
                    description="trackPoint_changed events give intersection point of bearing with sensor's virtual geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SplinePositionInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#SplinePositionInterpolator"
                               appinfo="SplinePositionInterpolator performs non-linear interpolation among paired lists of 3-tuple values and velocities to produce an SFVec3f value_changed output event.">
            <componentInfo name="Interpolation" level="4"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="closed"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    description="Whether or not the curve is closed (i."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values."/>
            <field name="keyValue"
                    type="MFVec3f"
                    accessType="inputOutput"
                    description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="keyVelocity"
                    type="MFVec3f"
                    accessType="inputOutput"
                    description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normalizeVelocity"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or transformed into tangency vectors."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation."/>
            <field name="value_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SplinePositionInterpolator2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#SplinePositionInterpolator2D"
                               appinfo="SplinePositionInterpolator2D performs non-linear interpolation among paired lists of 2-tuple values and velocities to produce an SFVec2f value_changed output event.">
            <componentInfo name="Interpolation" level="4"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="closed"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    description="Whether or not the curve is closed (i."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values."/>
            <field name="keyValue"
                    type="MFVec2f"
                    accessType="inputOutput"
                    description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="keyVelocity"
                    type="MFVec2f"
                    accessType="inputOutput"
                    description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normalizeVelocity"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or transformed into tangency vectors."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation."/>
            <field name="value_changed"
                    type="SFVec2f"
                    accessType="outputOnly"
                    description="Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SplineScalarInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#SplineScalarInterpolator"
                               appinfo="SplineScalarInterpolator performs non-linear interpolation among paired lists of float values and velocities to produce an SFFloat value_changed output event.">
            <componentInfo name="Interpolation" level="4"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="closed"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    description="Whether or not the curve is closed (i."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values."/>
            <field name="keyValue"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="keyVelocity"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normalizeVelocity"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or transformed into tangency vectors."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation."/>
            <field name="value_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SpotLight">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/lighting.html#SpotLight"
                               appinfo="Linear attenuation may occur at level 2, full support at level 3.">
            <componentInfo name="Lighting" level="2"/>
            <Inheritance baseType="X3DLightNode"/>
            <field name="ambientIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"
                    description="Brightness of ambient (nondirectional background) emission from the light."/>
            <field name="attenuation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 0 0"
                    minInclusive="0"
                    description="Constant, linear-distance and squared-distance dropoff factors as radial distance increases from the source."/>
            <field name="beamWidth"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.589049"
                    minExclusive="0"
                    maxInclusive="1.570796"
                    description="Inner conical solid angle (in radians) where light source has uniform full intensity.">
               <componentInfo name="Lighting" level="3"/>
            </field>
            <field name="color"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    description="color of light, applied to colors of objects."/>
            <field name="cutOffAngle"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1.570796"
                    minExclusive="0"
                    maxInclusive="1.570796"
                    description="Outer conical solid angle (in radians) where light source intensity becomes zero."/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 -1"
                    description="Orientation vector of light relative to local coordinate system."/>
            <field name="global"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="Global lights illuminate all objects within their volume of lighting influence."/>
            <field name="intensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DLightNode"
                    description="Brightness of direct emission from the light."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="location"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position of light relative to local coordinate system."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DLightNode"
                    description="Enables/disables this light source."/>
            <field name="radius"
                    type="SFFloat"
                    accessType="initializeOnly"
                    default="100"
                    minInclusive="0"
                    description="Maximum effective distance of light relative to local light position, affected by ancestor scaling.">
               <componentInfo name="Lighting" level="3"/>
            </field>
            <field name="shadowIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"
                    description="shadowIntensity field defines how much light is obscured by shapes that cast shadows, ranging from 0 (light not obscured, no visible shadows) to 1 (light completely obscured, full-intensity shadows)."/>
            <field name="shadows"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DLightNode"
                    description="shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SquadOrientationInterpolator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html#SquadOrientationInterpolator"
                               appinfo="SquadOrientationInterpolator performs non-linear interpolation among paired lists of rotation values to produce an SFRotation value_changed output event.">
            <componentInfo name="Interpolation" level="5"/>
            <Inheritance baseType="X3DInterpolatorNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="key"
                    type="MFFloat"
                    accessType="inputOutput"
                    inheritedFrom="X3DInterpolatorNode"
                    description="Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values."/>
            <field name="keyValue"
                    type="MFRotation"
                    accessType="inputOutput"
                    description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normalizeVelocity"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or transformed into tangency vectors."/>
            <field name="set_fraction"
                    type="SFFloat"
                    accessType="inputOnly"
                    inheritedFrom="X3DInterpolatorNode"
                    description="set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation."/>
            <field name="value_changed"
                    type="SFRotation"
                    accessType="outputOnly"
                    description="Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="StaticGroup">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/grouping.html#StaticGroup"
                               appinfo="StaticGroup is similar to Group node but does not allow access to children after creation time.">
            <componentInfo name="Grouping" level="3"/>
            <Inheritance baseType="X3DChildNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="initializeOnly"
                    acceptableNodeTypes="X3DChildNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="StreamAudioDestination">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#StreamAudioDestination"
                               appinfo="StreamAudioDestination node represents the final audio destination via a media stream.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundDestinationNode"/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundDestinationNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundDestinationNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundDestinationNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundDestinationNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundDestinationNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="mediaDeviceID"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSoundDestinationNode"
                    description="mediaDeviceID field provides ID parameter functionality."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="streamIdentifier"
                    type="SFString"
                    accessType="inputOutput"
                    description="Stream identification TBD Hint: W3C Media Capture and Streams https://www."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="StreamAudioSource">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#StreamAudioSource"
                               appinfo="StreamAudioSource operates as an audio source whose media is received from a MediaStream obtained using the WebRTC or Media Capture and Streams APIs.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundSourceNode"/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundSourceNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundSourceNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="streamIdentifier"
                    type="SFString"
                    accessType="inputOutput"
                    description="Stream identification TBD Hint: W3C Media Capture and Streams https://www."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesSoundSource"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="StringSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/keyDeviceSensor.html#StringSensor"
                               appinfo="StringSensor generates events as the user presses keys on the keyboard.">
            <componentInfo name="KeyDeviceSensor" level="2"/>
            <Inheritance baseType="X3DKeyDeviceSensorNode"/>
            <field name="deletionAllowed"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="If deletionAllowed is true, then previously entered character in enteredText can be removed."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="enteredText"
                    type="SFString"
                    accessType="outputOnly"
                    description="Events generated as character-producing keys are pressed on keyboard."/>
            <field name="finalText"
                    type="SFString"
                    accessType="outputOnly"
                    description="Events generated when sequence of keystrokes matches keys in terminationText string when this condition occurs, enteredText is moved to finalText and enteredText is set to empty string."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="SurfaceEmitter">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#SurfaceEmitter"
                               appinfo="SurfaceEmitter generates particles from the surface of an object.">
            <componentInfo name="ParticleSystems" level="2"/>
            <Inheritance baseType="X3DParticleEmitterNode"/>
            <field name="coordIndex"
                    type="MFInt32"
                    accessType="initializeOnly"
                    default="-1"
                    minInclusive="-1"
                    description="coordIndex indices are applied to contained Coordinate values in order to define randomly generated initial geometry of the particles."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mass"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Basic mass of each particle, defined in mass base units (default is kilograms)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Enables/disables production of particles from this emitter node."/>
            <field name="set_coordIndex"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="-1"/>
            <field name="speed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement."/>
            <field name="surface"
                    type="SFNode"
                    accessType="initializeOnly"
                    default="NULL"
                    acceptableNodeTypes="X3DGeometryNode"
                    description="The geometry node provides geometry used as the emitting surface."/>
            <field name="surfaceArea"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Particle surface area in area base units (default is meters squared)."/>
            <field name="variation"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.25"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Multiplier for the randomness used to control the range of possible output values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="emitter" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="GeometryContentModel"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Switch">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/grouping.html#Switch"
                               appinfo="Switch is a Grouping node that only renders one (or zero) child at a time.">
            <componentInfo name="Grouping" level="2"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="whichChoice"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="-1"
                    minInclusive="-1"
                    description="Index of active child choice, counting from 0."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children"
                             type="containerFieldChoicesGroupLODShapeTransformSwitch"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TexCoordChaser2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#TexCoordChaser2D"
                               appinfo="TexCoordChaser2D generates a series of single floating-point values that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DChaserNode"/>
            <field name="duration"
                    type="SFTime"
                    accessType="initializeOnly"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DChaserNode"
                    description="duration is the time interval for filter response in seconds."/>
            <field name="initialDestination"
                    type="MFVec2f"
                    accessType="initializeOnly"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="MFVec2f"
                    accessType="initializeOnly"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_destination"
                    type="MFVec2f"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="MFVec2f"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="value_changed"
                    type="MFVec2f"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TexCoordDamper2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html#TexCoordDamper2D"
                               appinfo="TexCoordDamper2D generates a series of 2D floating-point arrays that progressively change from initial value to destination value.">
            <componentInfo name="Followers" level="1"/>
            <Inheritance baseType="X3DDamperNode"/>
            <field name="initialDestination"
                    type="MFVec2f"
                    accessType="initializeOnly"
                    description="Initial destination value for this node."/>
            <field name="initialValue"
                    type="MFVec2f"
                    accessType="initializeOnly"
                    description="Initial starting value for this node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DFollowerNode"
                    description="isActive true/false events are sent when follower-node computation starts/stops."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="order"
                    type="SFInt32"
                    accessType="initializeOnly"
                    default="3"
                    minInclusive="0"
                    maxInclusive="5"
                    inheritedFrom="X3DDamperNode"
                    description="order defines the number of internal filters (larger means smoother response, longer delay)."/>
            <field name="set_destination"
                    type="MFVec2f"
                    accessType="inputOnly"
                    description="set_destination resets destination value of this node."/>
            <field name="set_value"
                    type="MFVec2f"
                    accessType="inputOnly"
                    description="set_value resets current value of this node."/>
            <field name="tau"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.3"
                    minInclusive="0"
                    inheritedFrom="X3DDamperNode"
                    description="tau is the exponential-decay time constant for filter response in seconds."/>
            <field name="tolerance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DDamperNode"
                    description="or -1."/>
            <field name="value_changed"
                    type="MFVec2f"
                    accessType="outputOnly"
                    description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Text">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/text.html#Text"
                               appinfo="Text is a 2D (flat) geometry node that can contain multiple lines of string values.">
            <componentInfo name="Text" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="fontStyle"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DFontStyleNode"
                    description="The fontStyle field can contain a FontStyle or ScreenFontStyle node defining size, family, and style for presented text."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="length"
                    type="MFFloat"
                    accessType="inputOutput"
                    minInclusive="0"
                    description="Array of length values for each text string in the local coordinate system."/>
            <field name="lineBounds"
                    type="MFVec2f"
                    accessType="outputOnly"
                    description="Array of 2D bounding box values for each line of text in the local coordinate system."/>
            <field name="maxExtent"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.0"
                    minInclusive="0"
                    description="Limits/compresses all text strings if max string length is longer than maxExtent, as measured in local coordinate system."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="origin"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="origin of the text local coordinate system, in units of the coordinate system in which the Text node is embedded."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="string"
                    type="MFString"
                    accessType="inputOutput"
                    description="Single or multiple string values to present as Text."/>
            <field name="textBounds"
                    type="SFVec2f"
                    accessType="outputOnly"
                    description="2D bounding box value for all lines of text in the local coordinate system."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="TextChildContentModel"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TextureBackground">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalEffects.html#TextureBackground"
                               appinfo="TextureBackground simulates ground and sky, using vertical arrays of wraparound color values, TextureBackground can also provide backdrop texture images on all six sides.">
            <componentInfo name="EnvironmentalEffects" level="3"/>
            <Inheritance baseType="X3DBackgroundNode"/>
            <field name="backTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode|MultiTexture"
                    description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)."/>
            <field name="bindTime"
                    type="SFTime"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="event sent when node becomes active/inactive."/>
            <field name="bottomTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode|MultiTexture"
                    description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)."/>
            <field name="frontTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode|MultiTexture"
                    description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)."/>
            <field name="groundAngle"
                    type="MFFloat"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="1.5708"
                    inheritedFrom="X3DBackgroundNode"
                    description="The angle array values increase from 0.">
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="groundColor"
                    type="MFColor"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DBackgroundNode"
                    description="Color of the ground at the various angles on the ground partial sphere."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isBound"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="event true sent when node becomes active, event false sent when unbound by another node."/>
            <field name="leftTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode|MultiTexture"
                    description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="rightTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode|MultiTexture"
                    description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)."/>
            <field name="set_bind"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Input event set_bind=true makes this node active, input event set_bind=false makes this node inactive."/>
            <field name="skyAngle"
                    type="MFFloat"
                    accessType="inputOutput"
                    minInclusive="0"
                    maxInclusive="3.1416"
                    inheritedFrom="X3DBackgroundNode"
                    description="The angle array values increase from 0.">
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="skyColor"
                    type="MFColor"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DBackgroundNode"
                    description="Color of the sky at various angles on the sky sphere.">
               <componentInfo name="EnvironmentalEffects" level="2"/>
            </field>
            <field name="topTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode|MultiTexture"
                    description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)."/>
            <field name="transparency"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DBackgroundNode"
                    baseType="unitIntervalType"
                    description="transparency applied to texture images, enabling an X3D scene to overlay an HTML page or desktop."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="TextureBackgroundChildContentModel"
                                   minOccurs="0"
                                   maxOccurs="6"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TextureCoordinate">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#TextureCoordinate"
                               appinfo="TextureCoordinate specifies 2D (s,t) texture-coordinate points, used by vertex-based geometry nodes (such as IndexedFaceSet or ElevationGrid) to map textures to vertices (and patches to NURBS surfaces).">
            <componentInfo name="Texturing" level="1"/>
            <Inheritance baseType="X3DSingleTextureCoordinateNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mapping"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSingleTextureCoordinateNode"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="point"
                    type="MFVec2f"
                    accessType="inputOutput"
                    description="pairs of 2D (s,t) texture coordinates, either in range [0,1] or higher if repeating."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texCoord" type="containerFieldChoicesTextureCoordinate"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TextureCoordinate3D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texture3D.html#TextureCoordinate3D"
                               appinfo="TextureCoordinate3D specifies a set of 3D texture coordinates used by vertex-based geometry nodes (such as IndexedFaceSet or ElevationGrid) to map 3D textures to vertices.">
            <componentInfo name="Texturing3D" level="1"/>
            <Inheritance baseType="X3DSingleTextureCoordinateNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mapping"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSingleTextureCoordinateNode"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="point"
                    type="MFVec3f"
                    accessType="inputOutput"
                    description="triplets of 3D (s,t,r) texture coordinates, either in range [0,1] or higher if repeating."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texCoord" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TextureCoordinate4D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texture3D.html#TextureCoordinate4D"
                               appinfo="TextureCoordinate4D specifies a set of 4D (homogeneous 3D) texture coordinates used by vertex-based geometry nodes (such as IndexedFaceSet or ElevationGrid) to map 3D textures to vertices.">
            <componentInfo name="Texturing3D" level="1"/>
            <Inheritance baseType="X3DSingleTextureCoordinateNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mapping"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSingleTextureCoordinateNode"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="point"
                    type="MFVec4f"
                    accessType="inputOutput"
                    description="4-tuple values of 4D texture coordinates, either in range [0,1] or higher if repeating."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texCoord" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TextureCoordinateGenerator">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#TextureCoordinateGenerator"
                               appinfo="TextureCoordinateGenerator computes 2D (s,t) texture-coordinate points, used by vertex-based geometry nodes (such as IndexedFaceSet or ElevationGrid) to map textures to vertices (and patches to NURBS surfaces).">
            <componentInfo name="Texturing" level="2"/>
            <Inheritance baseType="X3DSingleTextureCoordinateNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mapping"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSingleTextureCoordinateNode"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="mode"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPHERE"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="textureCoordinateGeneratorModeChoices"
                    baseType="xs:NMTOKEN"
                    description="parameter field defines the algorithm used to compute texture coordinates.">
               <enumeration value="SPHERE"
                             appinfo="Creates texture coordinates for a spherical environment."/>
               <enumeration value="CAMERASPACENORMAL"
                             appinfo="Use vertex normal, transformed to camera space, as input texture coordinates."/>
               <enumeration value="CAMERASPACEPOSITION"
                             appinfo="Use vertex position, transformed to camera space, as input texture coordinates."/>
               <enumeration value="CAMERASPACEREFLECTIONVECTOR"
                             appinfo="Use reflection vector, transformed to camera space, as input texture coordinates."/>
               <enumeration value="SPHERE-LOCAL" appinfo="Sphere mapping but in local coordinates."/>
               <enumeration value="COORD" appinfo="Use vertex coordinates."/>
               <enumeration value="COORD-EYE"
                             appinfo="Use vertex coordinates transformed to camera space."/>
               <enumeration value="NOISE"
                             appinfo="Apply Perlin solid noise function on vertex coordinates."/>
               <enumeration value="NOISE-EYE"
                             appinfo="Apply Perlin solid noise function on vertex coordinates transformed to camera space."/>
               <enumeration value="SPHERE-REFLECT"
                             appinfo="similar to CAMERASPACEREFLECTIONVECTOR with optional index of refraction."/>
               <enumeration value="SPHERE-REFLECT-LOCAL"
                             appinfo="Similar to SPHERE-REFLECT transformed to camera space."/>
            </field>
            <field name="parameter"
                    type="MFFloat"
                    accessType="inputOutput"
                    description="parameter array contains scale and translation (x y z) values for Perlin NOISE mode, parameter[0] contains index of refraction for SPHERE-REFLECT mode, parameter[0] contains index of refraction and parameter[1 to 3] contains the eye point in local coordinates for SPHERE-REFLECT-LOCAL mode."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="texCoord" type="containerFieldChoicesTextureCoordinate"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TextureProjector">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/textureProjector.html#TextureProjector"
                               appinfo="TextureProjector is similar to a light that projects a texture into the scene, illuminating geometry that intersects the perspective projection volume.">
            <componentInfo name="TextureProjection" level="2"/>
            <Inheritance baseType="X3DTextureProjectorNode"/>
            <field name="ambientIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"
                    description="Brightness of ambient (nondirectional background) emission from the light."/>
            <field name="aspectRatio"
                    type="SFFloat"
                    accessType="outputOnly"
                    minExclusive="0"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="aspectRatio is the ratio of width and height that is projected."/>
            <field name="color"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    description="color of light, applied to colors of objects."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 1"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="Direction for projection."/>
            <field name="farDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    minInclusive="-1"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="maximum distance necessary for texture display."/>
            <field name="fieldOfView"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.7854"
                    minInclusive="0"
                    maxInclusive="3.1416"
                    description="Preferred minimum viewing angle for this projection in radians, providing minimum height or minimum width (whichever is smaller)."/>
            <field name="global"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="Global texture projection illuminates all objects within their volume of influence."/>
            <field name="intensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DLightNode"
                    description="Brightness of direct emission from the light."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="location"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="Position of center of texture projection relative to local coordinate system."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="nearDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    minInclusive="-1"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="minimum distance necessary for texture display."/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DLightNode"
                    description="Enables/disables this texture projection source."/>
            <field name="shadowIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"
                    description="shadowIntensity field defines how much light is obscured by shapes that cast shadows, ranging from 0 (light not obscured, no visible shadows) to 1 (light completely obscured, full-intensity shadows)."/>
            <field name="shadows"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DLightNode"
                    description="shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry."/>
            <field name="texture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="Single contained texture node (ImageTexture, MovieTexture, PixelTexture, MultiTexture) that maps image(s) to surface geometry."/>
            <field name="upVector"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 1"
                    description="upVector describes the roll of the camera by saying which direction is up for the camera's orientation."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ImageTexture"/>
               <NodeContentModel name="MovieTexture"/>
               <NodeContentModel name="PixelTexture"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TextureProjectorParallel">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/textureProjector.html#TextureProjectorParallel"
                               appinfo="TextureProjectorParallel is similar to a light that projects a texture into the scene, illuminating geometry that intersects the parallel projection volume.">
            <componentInfo name="TextureProjection" level="2"/>
            <Inheritance baseType="X3DTextureProjectorNode"/>
            <field name="ambientIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"
                    description="Brightness of ambient (nondirectional background) emission from the light."/>
            <field name="aspectRatio"
                    type="SFFloat"
                    accessType="outputOnly"
                    minExclusive="0"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="aspectRatio is the ratio of width and height that is projected."/>
            <field name="color"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    description="color of light, applied to colors of objects."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 1"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="Direction for projection."/>
            <field name="farDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    minInclusive="-1"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="maximum distance necessary for texture display."/>
            <field name="fieldOfView"
                    type="SFVec4f"
                    accessType="inputOutput"
                    default="-1 -1 1 1"
                    description="Minimum and maximum extents of projection texture in units of local coordinate system."/>
            <field name="global"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="Global texture projection illuminates all objects within their volume of influence."/>
            <field name="intensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DLightNode"
                    description="Brightness of direct emission from the light."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="location"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="Position of center of texture projection relative to local coordinate system."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="nearDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    minInclusive="-1"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="minimum distance necessary for texture display."/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DLightNode"
                    description="Enables/disables this texture projection source."/>
            <field name="shadowIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    maxInclusive="1"
                    inheritedFrom="X3DLightNode"
                    baseType="unitIntervalType"
                    description="shadowIntensity field defines how much light is obscured by shapes that cast shadows, ranging from 0 (light not obscured, no visible shadows) to 1 (light completely obscured, full-intensity shadows)."/>
            <field name="shadows"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DLightNode"
                    description="shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry."/>
            <field name="texture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture2DNode"
                    inheritedFrom="X3DTextureProjectorNode"
                    description="Single contained texture node (ImageTexture, MovieTexture, PixelTexture, MultiTexture) that maps image(s) to surface geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ImageTexture"/>
               <NodeContentModel name="MovieTexture"/>
               <NodeContentModel name="PixelTexture"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TextureProperties">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#TextureProperties"
                               appinfo="TextureProperties allows precise fine-grained control over application of image textures to geometry.">
            <componentInfo name="Texturing" level="2"/>
            <Inheritance baseType="X3DNode"/>
            <field name="anisotropicDegree"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="1"
                    description="anisotropicDegree defines minimum degree of anisotropy to account for in texture filtering (1=no effect for symmetric filtering, otherwise provide higher value)."/>
            <field name="borderColor"
                    type="SFColorRGBA"
                    accessType="inputOutput"
                    default="0 0 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="borderColor defines border pixel color."/>
            <field name="borderWidth"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="borderWidth number of pixels for texture border."/>
            <field name="boundaryModeR"
                    type="SFString"
                    accessType="inputOutput"
                    default="REPEAT"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="textureBoundaryModeChoices"
                    baseType="xs:NMTOKEN"
                    description="boundaryModeR describes handling of texture-coordinate boundaries.">
               <enumeration value="CLAMP" appinfo="Clamp texture coordinates to range [0,1]."/>
               <enumeration value="CLAMP_TO_EDGE"
                             appinfo="Clamp texture coordinates such that a border texel is never sampled."/>
               <enumeration value="CLAMP_TO_BOUNDARY"
                             appinfo="Clamp texture coordinates such that texture samples are border texels for fragments."/>
               <enumeration value="MIRRORED_REPEAT"
                             appinfo="Texture coordinates are mirrored and then clamped as in CLAMP_TO_EDGE."/>
               <enumeration value="REPEAT" appinfo="Repeat a texture across the fragment."/>
            </field>
            <field name="boundaryModeS"
                    type="SFString"
                    accessType="inputOutput"
                    default="REPEAT"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="textureBoundaryModeChoices"
                    baseType="xs:NMTOKEN"
                    description="boundaryModeS describes handling of texture-coordinate boundaries.">
               <enumeration value="CLAMP" appinfo="Clamp texture coordinates to range [0,1]."/>
               <enumeration value="CLAMP_TO_EDGE"
                             appinfo="Clamp texture coordinates such that a border texel is never sampled."/>
               <enumeration value="CLAMP_TO_BOUNDARY"
                             appinfo="Clamp texture coordinates such that texture samples are border texels for fragments."/>
               <enumeration value="MIRRORED_REPEAT"
                             appinfo="Texture coordinates are mirrored and then clamped as in CLAMP_TO_EDGE."/>
               <enumeration value="REPEAT" appinfo="Repeat a texture across the fragment."/>
            </field>
            <field name="boundaryModeT"
                    type="SFString"
                    accessType="inputOutput"
                    default="REPEAT"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="textureBoundaryModeChoices"
                    baseType="xs:NMTOKEN"
                    description="boundaryModeT describes handling of texture-coordinate boundaries.">
               <enumeration value="CLAMP" appinfo="Clamp texture coordinates to range [0,1]."/>
               <enumeration value="CLAMP_TO_EDGE"
                             appinfo="Clamp texture coordinates such that a border texel is never sampled."/>
               <enumeration value="CLAMP_TO_BOUNDARY"
                             appinfo="Clamp texture coordinates such that texture samples are border texels for fragments."/>
               <enumeration value="MIRRORED_REPEAT"
                             appinfo="Texture coordinates are mirrored and then clamped as in CLAMP_TO_EDGE."/>
               <enumeration value="REPEAT" appinfo="Repeat a texture across the fragment."/>
            </field>
            <field name="generateMipMaps"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="false"
                    description="Determines whether MIPMAPs are generated for texture images."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="magnificationFilter"
                    type="SFString"
                    accessType="inputOutput"
                    default="FASTEST"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="textureMagnificationModeChoices"
                    baseType="xs:NMTOKEN"
                    description="magnificationFilter indicates texture filter when image is smaller than screen space representation.">
               <enumeration value="AVG_PIXEL"
                             appinfo="weighted average of four texture elements closest to center of pixel being textured."/>
               <enumeration value="DEFAULT" appinfo="browser-specified default magnification mode."/>
               <enumeration value="FASTEST" appinfo="fastest method available."/>
               <enumeration value="NEAREST_PIXEL"
                             appinfo="texture element nearest to the center of pixel being textured."/>
               <enumeration value="NICEST" appinfo="highest quality method available."/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="minificationFilter"
                    type="SFString"
                    accessType="inputOutput"
                    default="FASTEST"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="textureMinificationModeChoices"
                    baseType="xs:NMTOKEN"
                    description="minificationFilter indicates texture filter when image is larger than screen space representation.">
               <enumeration value="AVG_PIXEL"
                             appinfo="weighted average of four texture elements closest to center of pixel being textured."/>
               <enumeration value="AVG_PIXEL_AVG_MIPMAP" appinfo="tri-linear mipmap filtering."/>
               <enumeration value="AVG_PIXEL_NEAREST_MIPMAP"
                             appinfo="choose mipmap that most closely matches size of pixel being textured, use weighted average of four texture elements closest to center of pixel."/>
               <enumeration value="DEFAULT" appinfo="browser-specified default minification mode."/>
               <enumeration value="FASTEST"
                             appinfo="fastest method available, use mipmaps if possible."/>
               <enumeration value="NEAREST_PIXEL"
                             appinfo="texture element nearest to center of pixel being textured."/>
               <enumeration value="NEAREST_PIXEL_AVG_MIPMAP"
                             appinfo="texture element nearest to center of pixel being textured, use average of two nearest mipmaps."/>
               <enumeration value="NEAREST_PIXEL_NEAREST_MIPMAP"
                             appinfo="texture element nearest to center of pixel being textured, use nearest mipmap."/>
               <enumeration value="NICEST" appinfo="highest quality method available."/>
            </field>
            <field name="textureCompression"
                    type="SFString"
                    accessType="inputOutput"
                    default="FASTEST"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="textureCompressionModeChoices"
                    baseType="xs:NMTOKEN"
                    description="textureCompression indicates compression algorithm selection mode.">
               <enumeration value="DEFAULT" appinfo="browser-specified default compression mode."/>
               <enumeration value="FASTEST" appinfo="fastest method available."/>
               <enumeration value="HIGH" appinfo="greatest amount of compression."/>
               <enumeration value="LOW" appinfo="least amount of compression."/>
               <enumeration value="MEDIUM" appinfo="moderate amount of compressions."/>
               <enumeration value="NICEST" appinfo="highest quality method available."/>
            </field>
            <field name="texturePriority"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="texturePriority defines relative priority for this texture when allocating texture memory, an important rendering resource in graphics-card hardware."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="textureProperties" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TextureTransform">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html#TextureTransform"
                               appinfo="TextureTransform shifts 2D texture coordinates for positioning, orienting and scaling image textures on geometry.">
            <componentInfo name="Texturing" level="1"/>
            <Inheritance baseType="X3DTextureTransformNode"/>
            <field name="center"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="0 0"
                    description="center point in 2D (s,t) texture coordinates for rotation and scaling."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="rotation"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="single rotation angle of texture about center (opposite effect appears on geometry)."/>
            <field name="scale"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="1 1"
                    description="Non-uniform planar scaling of texture about center (opposite effect appears on geometry)."/>
            <field name="translation"
                    type="SFVec2f"
                    accessType="inputOutput"
                    default="0 0"
                    description="Lateral/vertical shift in 2D (s,t) texture coordinates (opposite effect appears on geometry)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="textureTransform" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TextureTransform3D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texture3D.html#TextureTransform3D"
                               appinfo="TextureTransform3D applies a 3D transformation to texture coordinates.">
            <componentInfo name="Texturing3D" level="1"/>
            <Inheritance baseType="X3DTextureTransformNode"/>
            <field name="center"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="center point in 2D (s,t) texture coordinates for rotation and scaling."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="rotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="rotation angle of texture about center (opposite effect appears on geometry)."/>
            <field name="scale"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    description="Non-uniform planar scaling of texture about center (opposite effect appears on geometry)."/>
            <field name="translation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Lateral/vertical shift in 2D (s,t) texture coordinates (opposite effect appears on geometry)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="textureTransform" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TextureTransformMatrix3D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texture3D.html#TextureTransformMatrix3D"
                               appinfo="TextureTransformMatrix3D applies a 3D transformation to texture coordinates.">
            <componentInfo name="Texturing3D" level="1"/>
            <Inheritance baseType="X3DTextureTransformNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="matrix"
                    type="SFMatrix4f"
                    accessType="inputOutput"
                    default="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"
                    description="matrix is a generalized, unfiltered 4x4 transformation matrix to modify texture (opposite effect appears on geometry)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="textureTransform" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TimeSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/time.html#TimeSensor"
                               appinfo="TimeSensor continuously generates events as time passes.">
            <componentInfo name="Time" level="1"/>
            <Inheritance baseType="X3DTimeDependentNode"/>
            <AdditionalInheritance baseType="X3DSensorNode"/>
            <field name="cycleInterval"
                    type="SFTime"
                    accessType="inputOutput"
                    default="1.0"
                    minInclusive="0"
                    description="cycleInterval is loop duration in seconds."/>
            <field name="cycleTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    description="cycleTime sends a time outputOnly at startTime, and also at the beginning of each new cycle (useful for synchronization with other time-based objects)."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since TimeSensor activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="fraction_changed"
                    type="SFFloat"
                    accessType="outputOnly"
                    description="fraction_changed continuously sends value in range [0,1] showing time progress in the current cycle."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when TimeSensor starts/stops running."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when TimeSensor is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="loop"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Repeat indefinitely when loop=true, repeat only once when loop=false."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and TimeSensor becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and TimeSensor becomes inactive.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= startTime, isActive becomes true and TimeSensor becomes active."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When stopTime becomes &lt;= time now, isActive becomes false and TimeSensor becomes inactive."/>
            <field name="time"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    description="Time continuously sends the absolute time (value 0."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TimeTrigger">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/eventUtilities.html#TimeTrigger"
                               appinfo="TimeTrigger converts boolean true events to time events.">
            <componentInfo name="EventUtilities" level="1"/>
            <Inheritance baseType="X3DTriggerNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="set_boolean"
                    type="SFBool"
                    accessType="inputOnly"
                    description="If input event set_boolean is true, send output triggerTime event."/>
            <field name="triggerTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="triggerTime is output time event, sent when input event set_boolean is true."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ToneMappedVolumeStyle">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#ToneMappedVolumeStyle"
                               appinfo="ToneMappedVolumeStyle specifies that volumetric data is rendered with Gooch shading model of two-toned warm/cool coloring.">
            <componentInfo name="VolumeRendering" level="2"/>
            <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
            <field name="coolColor"
                    type="SFColorRGBA"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="coolColor is used for surfaces facing away from the light direction."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeRenderStyleNode"
                    description="Enables/disables node operation."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="surfaceNormals"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture3DNode"
                    description="The surfaceNormals field contains a 3D texture with at least three component values."/>
            <field name="warmColor"
                    type="SFColorRGBA"
                    accessType="inputOutput"
                    default="1 1 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="warmColor is used for surfaces facing towards the light."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="renderStyle" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="Texture3DContentModel"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TouchSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/pointingDeviceSensor.html#TouchSensor"
                               appinfo="TouchSensor tracks location and state of the pointing device, detecting when a user points at or selects (activates) geometry.">
            <componentInfo name="PointingDeviceSensor" level="1"/>
            <Inheritance baseType="X3DTouchSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of this node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="hitNormal_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="When pointing device selects geometry, send event containing surface normal vector at the hitPoint."/>
            <field name="hitPoint_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="When pointing device selects geometry, send event containing 3D point on surface of underlying geometry, as measured in reference frame for TouchSensor's local coordinate system."/>
            <field name="hitTexCoord_changed"
                    type="SFVec2f"
                    accessType="outputOnly"
                    description="When pointing device selects geometry, send event containing texture coordinates of surface at the hitPoint."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events."/>
            <field name="isOver"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DPointingDeviceSensorNode"
                    description="Hover over geometry by aiming the mouse (or pointing device) to generate isOver events."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="touchTime"
                    type="SFTime"
                    accessType="outputOnly"
                    inheritedFrom="X3DTouchSensorNode"
                    description="Time event generated when sensor is touched by pointing device, and then deselected by the user."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Transform">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/grouping.html#Transform"
                               appinfo="Transform is a Grouping node that can contain most nodes.">
            <componentInfo name="Grouping" level="1"/>
            <Inheritance baseType="X3DGroupingNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="center"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Translation offset from origin of local coordinate system, applied prior to rotation or scaling."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="rotation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Orientation (axis, angle in radians) of children relative to local coordinate system."/>
            <field name="scale"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation."/>
            <field name="scaleOrientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)."/>
            <field name="translation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Position (x, y, z in meters) of children relative to local coordinate system."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children"
                             type="containerFieldChoicesGroupLODShapeTransformSwitch"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TransformSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalSensor.html#TransformSensor"
                               appinfo="TransformSensor generates output events when its targetObject enters, exits, and moves within a region in space (defined by a box).">
            <componentInfo name="EnvironmentalSensor" level="3"/>
            <Inheritance baseType="X3DEnvironmentalSensorNode"/>
            <field name="center"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Translation offset from origin of local coordinate system."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="enterTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="Time event generated when targetObject enters the box region for sensor."/>
            <field name="exitTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="Time event generated when targetObject exits the box region for sensor."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="isActive true/false events are sent when triggering the sensor."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="orientation_changed"
                    type="SFRotation"
                    accessType="outputOnly"
                    description="Sends rotation event relative to center whenever the target object is contained within the box region and results change."/>
            <field name="position_changed"
                    type="SFVec3f"
                    accessType="outputOnly"
                    description="Sends translation event relative to center whenever the target object is contained within the box region and results change."/>
            <field name="size"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    inheritedFrom="X3DEnvironmentalSensorNode"
                    description="size of intersection box, measured from center in meters."/>
            <field name="targetObject"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DGroupingNode|X3DShapeNode"
                    description="targetObject is the movable geometry represented by any valid X3DGroupingNode or X3DShapeNode which may enter or exit the box."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Anchor"/>
               <NodeContentModel name="Billboard"/>
               <NodeContentModel name="Collision"/>
               <NodeContentModel name="Group"/>
               <NodeContentModel name="LOD"/>
               <NodeContentModel name="Shape"/>
               <NodeContentModel name="StaticGroup"/>
               <NodeContentModel name="Switch"/>
               <NodeContentModel name="Transform"/>
               <NodeContentModel name="EspduTransform"/>
               <NodeContentModel name="ReceiverPdu"/>
               <NodeContentModel name="SignalPdu"/>
               <NodeContentModel name="TransmitterPdu"/>
               <NodeContentModel name="CADAssembly"/>
               <NodeContentModel name="CADLayer"/>
               <NodeContentModel name="CADPart"/>
               <NodeContentModel name="GeoLocation"/>
               <NodeContentModel name="GeoLOD"/>
               <NodeContentModel name="GeoTransform"/>
               <NodeContentModel name="HAnimJoint"/>
               <NodeContentModel name="HAnimSegment"/>
               <NodeContentModel name="HAnimSite"/>
               <NodeContentModel name="PickableGroup"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TransmitterPdu">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/dis.html#TransmitterPdu"
                               appinfo="TransmitterPdu is a networked Protocol Data Unit (PDU) information node that provides detailed information about a radio transmitter modeled in a simulation.">
            <componentInfo name="DIS" level="1"/>
            <Inheritance baseType="X3DNetworkSensorNode"/>
            <AdditionalInheritance baseType="X3DBoundedObject"/>
            <field name="address"
                    type="SFString"
                    accessType="inputOutput"
                    default="localhost"
                    description="Multicast network address, or else 'localhost'."/>
            <field name="antennaLocation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="World coordinates for antenna location."/>
            <field name="antennaPatternLength"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="."/>
            <field name="antennaPatternType"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Antenna shape pattern: 0 for omnidirectional, 1 for beam, 2 for spherical harmonic (deprecated), or optional higher value."/>
            <field name="applicationID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID."/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DBoundedObject"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DBoundedObject"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="cryptoKeyID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Nonzero value corresponding to the simulated cryptographic key."/>
            <field name="cryptoSystem"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Indicates type of crypto system being used, even if the encryption equipment is not keyed."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables the sensor node."/>
            <field name="entityID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="EntityID unique ID for entity within that application."/>
            <field name="frequency"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    description="Transmission frequency in Hz."/>
            <field name="geoCoords"
                    type="SFVec3d"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Geographic location (specified in current geoSystem coordinates) for children geometry (specified in relative coordinate system, in meters)."/>
            <field name="geoSystem"
                    type="MFString"
                    accessType="initializeOnly"
                    default="&#34;GD&#34; &#34;WE&#34;"
                    additionalEnumerationValuesAllowed="true"
                    baseType="geoSystemType"
                    description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)."/>
            <field name="inputSource"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Source of transmission input."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="confirm whether there has been a recent network update."/>
            <field name="isNetworkReader"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='remote' (listen to network as copy of remote entity)."/>
            <field name="isNetworkWriter"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='master' (output to network as master entity at writeInterval)."/>
            <field name="isRtpHeaderHeard"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether incoming DIS packets have an RTP header prepended."/>
            <field name="isStandAlone"
                    type="SFBool"
                    accessType="outputOnly"
                    description="Whether networkMode='local' (ignore network but still respond to local events)."/>
            <field name="lengthOfModulationParameters"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="modulationTypeDetail"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumeration containing detailed information depending on the major modulation type."/>
            <field name="modulationTypeMajor"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumeration containing major classification of the modulation type."/>
            <field name="modulationTypeSpreadSpectrum"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Indicates the spread spectrum technique or combination of spread spectrum techniques in use."/>
            <field name="modulationTypeSystem"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Specifies radio system associated with this Transmitter PDU and used to interpret other fields whose values depend on a specific radio system."/>
            <field name="multicastRelayHost"
                    type="SFString"
                    accessType="inputOutput"
                    description="Fallback server address if multicast not available locally."/>
            <field name="multicastRelayPort"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Fallback server port if multicast not available locally."/>
            <field name="networkMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="standAlone"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="networkModeChoices"
                    baseType="xs:NMTOKEN"
                    description="Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network.">
               <enumeration value="standAlone"
                             appinfo="ignore network but still respond to events in local scene."/>
               <enumeration value="networkReader"
                             appinfo="listen to network and read PDU packets at readInterval, act as remotely linked copy of entity."/>
               <enumeration value="networkWriter"
                             appinfo="send PDU packets to network at writeInterval, act as master entity."/>
            </field>
            <field name="port"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Multicast network port, for example: 3000."/>
            <field name="power"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.0"
                    description="Power that radio would be capable of outputting if on and transmitting, independent of actual transmit state of the radio."/>
            <field name="radioEntityTypeCategory"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumeration containing EntityType of transmitter radio."/>
            <field name="radioEntityTypeCountry"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumerations value for country to which the design of the entity or its design specification is attributed."/>
            <field name="radioEntityTypeDomain"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumerations value for domain in which the entity operates: LAND, AIR, SURFACE, SUBSURFACE, SPACE or OTHER."/>
            <field name="radioEntityTypeKind"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumerations value for whether entity is a PLATFORM, MUNITION, LIFE_FORM, ENVIRONMENTAL, CULTURAL_FEATURE, SUPPLY, RADIO, EXPENDABLE, SENSOR_EMITTER or OTHER."/>
            <field name="radioEntityTypeNomenclature"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Integer enumerations value indicating nomenclature (name) for a particular emitter."/>
            <field name="radioEntityTypeNomenclatureVersion"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Named equipment version number."/>
            <field name="radioID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Identifies a particular radio within a given entity."/>
            <field name="readInterval"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0.1"
                    minInclusive="0"
                    description="Seconds between read updates, 0 means no reading."/>
            <field name="relativeAntennaLocation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Relative coordinates for antenna location."/>
            <field name="rtpHeaderExpected"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Whether RTP headers are prepended to DIS PDUs."/>
            <field name="siteID"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Simulation/exercise siteID of the participating LAN or organization."/>
            <field name="timestamp"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    description="DIS timestamp in X3D units (value 0."/>
            <field name="transmitFrequencyBandwidth"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    description="Bandwidth of the particular transmitter measured between the half-power (-3 dB) points (this value represents total bandwidth, not the deviation from the center frequency)."/>
            <field name="transmitState"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="0"
                    description="Specify radio transmission state where enumerations value 0 is for off, value 1 for powered but not transmitting, or value 1 is for powered and transmitting,."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DBoundedObject"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="whichGeometry"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="1"
                    description="Select geometry to render: -1 for no geometry, 0 for text trace, 1 for default geometry, (optional) higher values to render different states."/>
            <field name="writeInterval"
                    type="SFTime"
                    accessType="inputOutput"
                    default="1.0"
                    minInclusive="0"
                    description="Seconds between write updates, 0 means no writing (sending)."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TriangleFanSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#TriangleFanSet"
                               appinfo="TriangleFanSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.">
            <componentInfo name="Rendering" level="3"/>
            <Inheritance baseType="X3DComposedGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="fanCount"
                    type="MFInt32"
                    accessType="inputOutput"
                    minInclusive="3"
                    description="fanCount array provides number of vertices in each fan."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ComposedGeometryContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TriangleSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#TriangleSet"
                               appinfo="TriangleSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.">
            <componentInfo name="Rendering" level="3"/>
            <Inheritance baseType="X3DComposedGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ComposedGeometryContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TriangleSet2D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry2D.html#TriangleSet2D"
                               appinfo="TriangleSet2D is a geometry node that defines a set of filled 2D triangles in X-Y plane.">
            <componentInfo name="Geometry2D" level="1"/>
            <Inheritance baseType="X3DGeometryNode"/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="vertices"
                    type="MFVec2f"
                    accessType="inputOutput"
                    description="2D coordinates of TriangleSet2D vertices."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TriangleStripSet">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html#TriangleStripSet"
                               appinfo="TriangleStripSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.">
            <componentInfo name="Rendering" level="3"/>
            <Inheritance baseType="X3DComposedGeometryNode"/>
            <field name="attrib"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DVertexAttributeNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders."/>
            <field name="ccw"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)."/>
            <field name="color"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DColorNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields."/>
            <field name="colorPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values."/>
            <field name="fogCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="FogCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normal"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DNormalNode"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field."/>
            <field name="normalPerVertex"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)."/>
            <field name="solid"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off)."/>
            <field name="stripCount"
                    type="MFInt32"
                    accessType="inputOutput"
                    minInclusive="3"
                    description="stripCount array provides number of vertices in each strip."/>
            <field name="texCoord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate"
                    inheritedFrom="X3DComposedGeometryNode"
                    description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="geometry" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ComposedGeometryContentModel"
                                   minOccurs="0"
                                   maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="TwoSidedMaterial">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#TwoSidedMaterial"
                               appinfo="TwoSidedMaterial specifies surface rendering properties for associated geometry nodes, for outer (front) and inner (back) sides of polygons.">
            <componentInfo name="Shape" level="4"/>
            <Inheritance baseType="X3DMaterialNode"/>
            <field name="ambientIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.2"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="how much ambient omnidirectional light is reflected from all light sources."/>
            <field name="backAmbientIntensity"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.2"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="how much ambient omnidirectional light is reflected from all light sources."/>
            <field name="backDiffuseColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="0.8 0.8 0.8"
                    minInclusive="0"
                    maxInclusive="1"
                    description="how much direct, angle-dependent light is reflected from all light sources."/>
            <field name="backEmissiveColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="how much glowing light is emitted from this object."/>
            <field name="backShininess"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.2"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="Lower shininess values provide soft specular glows, while higher values result in sharper, smaller highlights."/>
            <field name="backSpecularColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="specular highlights are brightness reflections (example: shiny spots on an apple)."/>
            <field name="backTransparency"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="how &#34;clear&#34; an object is: 1."/>
            <field name="diffuseColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="0.8 0.8 0.8"
                    minInclusive="0"
                    maxInclusive="1"
                    description="how much direct, angle-dependent light is reflected from all light sources."/>
            <field name="emissiveColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="how much glowing light is emitted from this object."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="separateBackColor"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="separateBackColor determines whether separate Material values are used for back faces."/>
            <field name="shininess"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.2"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="Lower shininess values provide soft specular glows, while higher values result in sharper, smaller highlights."/>
            <field name="specularColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="specular highlights are brightness reflections (example: shiny spots on an apple)."/>
            <field name="transparency"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="how &#34;clear&#34; an object is: 1."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="material" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="UniversalJoint">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html#UniversalJoint"
                               appinfo="UniversalJoint is like a BallJoint that constrains an extra degree of rotational freedom.">
            <componentInfo name="RigidBodyPhysics" level="2"/>
            <Inheritance baseType="X3DRigidJointNode"/>
            <field name="anchorPoint"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="anchorPoint is joint center, specified in world coordinates."/>
            <field name="axis1"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 0 0"
                    description="axis1 defines axis vector of joint connection to body1."/>
            <field name="axis2"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    description="axis2 defines axis vector of joint connection to body2."/>
            <field name="body1"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="body1AnchorPoint" type="SFVec3f" accessType="outputOnly"/>
            <field name="body1Axis" type="SFVec3f" accessType="outputOnly"/>
            <field name="body2"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="RigidBody"
                    inheritedFrom="X3DRigidJointNode"
                    description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint."/>
            <field name="body2AnchorPoint" type="SFVec3f" accessType="outputOnly"/>
            <field name="body2Axis" type="SFFloat" accessType="outputOnly"/>
            <field name="forceOutput"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;NONE&#34;"
                    inheritedFrom="X3DRigidJointNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="forceOutputValues"
                    baseType="MFString"
                    description="forceOutput controls which output fields are generated for the next frame.">
               <enumeration value="&#34;ALL&#34;" appinfo="all forceOutput fields computed."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no forceOutput fields computed."/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="stop1Bounce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="stop1Bounce is velocity factor for bounce back once stop point is reached."/>
            <field name="stop1ErrorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    minInclusive="0"
                    maxInclusive="1"
                    description="stop1ErrorCorrection is fraction of error correction performed during time step once stop point is reached."/>
            <field name="stop2Bounce"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="stop2Bounce is velocity factor for bounce back once stop point is reached."/>
            <field name="stop2ErrorCorrection"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.8"
                    minInclusive="0"
                    maxInclusive="1"
                    description="stop2ErrorCorrection is fraction of error correction performed during time step once stop point is reached."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="joints" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="RigidJointNodeContentModel" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="UnlitMaterial">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html#UnlitMaterial"
                               appinfo="UnlitMaterial specifies surface rendering properties for associated geometry nodes.">
            <componentInfo name="Shape" level="1"/>
            <Inheritance baseType="X3DOneSidedMaterialNode"/>
            <field name="emissiveColor"
                    type="SFColor"
                    accessType="inputOutput"
                    default="1 1 1"
                    minInclusive="0"
                    maxInclusive="1"
                    description="how much glowing light is emitted from this object."/>
            <field name="emissiveTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel."/>
            <field name="emissiveTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DOneSidedMaterialNode"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="normalScale"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="0"
                    inheritedFrom="X3DOneSidedMaterialNode"
                    description="normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material.">
               <componentInfo name="Shape" level="2"/>
            </field>
            <field name="normalTexture"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DSingleTextureNode"
                    description="When applying normalScale for this material node, the contained texture modulates the texture across the surface."/>
            <field name="normalTextureMapping"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DOneSidedMaterialNode"
                    baseType="xs:NMTOKEN"
                    description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material."/>
            <field name="transparency"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    baseType="unitIntervalType"
                    description="how &#34;clear&#34; an object is: 1."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="material" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="ImageTexture"/>
               <NodeContentModel name="MovieTexture"/>
               <NodeContentModel name="PixelTexture"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Viewpoint">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html#Viewpoint"
                               appinfo="Viewpoint provides a specific location and direction where the user may view the scene.">
            <componentInfo name="Navigation" level="1"/>
            <Inheritance baseType="X3DViewpointNode"/>
            <field name="bindTime"
                    type="SFTime"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Event sent reporting timestamp when node becomes active/inactive."/>
            <field name="centerOfRotation"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DViewpointNode"
                    description="Text description or navigation hint to describe the significance of this model Viewpoint.">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="farDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DViewpointNode"
                    description="farDistance defines maximum clipping plane distance allowed for object display."/>
            <field name="fieldOfView"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.7854"
                    minExclusive="0"
                    maxExclusive="3.1416"
                    description="Preferred minimum viewing angle from this viewpoint in radians, providing minimum height or minimum width (whichever is smaller).">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isBound"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated."/>
            <field name="jump"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DViewpointNode"
                    description="Transition instantly by jumping, otherwise smoothly adjust offsets in place when changing to this Viewpoint."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="navigationInfo"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="NavigationInfo"
                    inheritedFrom="X3DViewpointNode"
                    description="The navigationInfo field defines a dedicated NavigationInfo node for this X3DViewpointNode."/>
            <field name="nearDistance"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="-1"
                    inheritedFrom="X3DViewpointNode"
                    description="nearDistance defines minimum clipping plane distance necessary for object display."/>
            <field name="orientation"
                    type="SFRotation"
                    accessType="inputOutput"
                    default="0 0 1 0"
                    inheritedFrom="X3DViewpointNode"
                    description="Rotation (axis, angle in radians) of Viewpoint, relative to default -Z axis direction in local coordinate system."/>
            <field name="position"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 10"
                    description="position (x, y, z in meters) relative to local coordinate system."/>
            <field name="retainUserOffsets"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DViewpointNode"
                    description="Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation.">
               <componentInfo name="Navigation" level="2"/>
            </field>
            <field name="set_bind"
                    type="SFBool"
                    accessType="inputOnly"
                    inheritedFrom="X3DBindableNode"
                    description="Sending event set_bind=true makes this node active."/>
            <field name="viewAll"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DViewpointNode"
                    description="Viewpoint is automatically adjusted to view all visible geometry."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="NavigationInfo"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="ViewpointGroup">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html#ViewpointGroup"
                               appinfo="ViewpointGroup can contain Viewpoint, OrthoViewpoint, GeoViewpoint and other ViewpointGroup nodes for better user-navigation support with a shared description on the viewpoint list.">
            <componentInfo name="Navigation" level="3"/>
            <Inheritance baseType="X3DChildNode"/>
            <field name="center"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="center specifies center point of proximity box within which ViewpointGroup is usable and displayed on viewpoint list."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DViewpointNode|ViewpointGroup"
                    description="ViewpointGroup contains Viewpoint, OrthoViewpoint, GeoViewpoint and other ViewpointGroup nodes that each have containerField='children' default value."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    description="Text description or navigation hint to identify this ViewpointGroup."/>
            <field name="displayed"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    description="displayed determines whether this ViewpointGroup is displayed in the current viewpoint list."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="retainUserOffsets"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    description="Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation."/>
            <field name="size"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    description="Size of proximity box around center location within which ViewpointGroup is usable and displayed on viewpoint list."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Viewpoint"/>
               <NodeContentModel name="OrthoViewpoint"/>
               <NodeContentModel name="GeoViewpoint"/>
               <NodeContentModel name="ViewpointGroup"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="Viewport">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layering.html#Viewport"
                               appinfo="Viewport is a Grouping node that can contain most nodes.">
            <componentInfo name="Layering" level="1"/>
            <Inheritance baseType="X3DViewportNode"/>
            <field name="addChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DGroupingNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DGroupingNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode"
                    description="Grouping nodes contain an ordered list of children nodes."/>
            <field name="clipBoundary"
                    type="MFFloat"
                    accessType="inputOutput"
                    default="0 1 0 1"
                    minInclusive="0"
                    maxInclusive="1"
                    description="clipBoundary is specified in fractions of the normal render surface in the sequence left/right/bottom/top."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="removeChildren"
                    type="MFNode"
                    accessType="inputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DGroupingNode">
               <componentInfo name="Grouping" level="2"/>
            </field>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DGroupingNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="viewport" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="VisibilitySensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalSensor.html#VisibilitySensor"
                               appinfo="VisibilitySensor detects when user can see a specific object or region as they navigate the world.">
            <componentInfo name="EnvironmentalSensor" level="2"/>
            <Inheritance baseType="X3DEnvironmentalSensorNode"/>
            <field name="center"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    description="Translation offset from origin of local coordinate system."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="enterTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="Time event generated when user's camera enters visibility region for sensor."/>
            <field name="exitTime"
                    type="SFTime"
                    accessType="outputOnly"
                    description="Time event generated when user's camera exits visibility region for sensor."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="isActive true/false events are sent when triggering the sensor."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="size"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 0 0"
                    minInclusive="0"
                    inheritedFrom="X3DEnvironmentalSensorNode"
                    description="size of visibility box, measured from center in meters."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="VolumeData">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html#VolumeData"
                               appinfo="VolumeData displays a simple non-segmented voxel dataset with a single RenderStyle node.">
            <componentInfo name="VolumeRendering" level="1"/>
            <Inheritance baseType="X3DVolumeDataNode"/>
            <field name="bboxCenter"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="0 0 0"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system."/>
            <field name="bboxDisplay"
                    type="SFBool"
                    accessType="inputOutput"
                    default="false"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Whether to display bounding box for associated geometry, aligned with world coordinates."/>
            <field name="bboxSize"
                    type="SFVec3f"
                    accessType="initializeOnly"
                    default="-1 -1 -1"
                    inheritedFrom="X3DVolumeDataNode"
                    baseType="bboxSizeType"
                    description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost."/>
            <field name="dimensions"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 1 1"
                    minExclusive="0"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Actual-size X-Y-Z dimensions of volume data in local coordinate system."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="renderStyle"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DVolumeRenderStyleNode"
                    description="Single contained X3DVolumeRenderStyleNode node that defines specific rendering technique for this volumetric object."/>
            <field name="visible"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DVolumeDataNode"
                    description="Whether or not renderable content within this node is visually displayed."/>
            <field name="voxels"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DTexture3DNode"
                    description="Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides raw voxel information utilized by corresponding rendering styles."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="VolumeRenderStyleContentModel"/>
               <GroupContentModel name="Texture3DContentModel"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="VolumeEmitter">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#VolumeEmitter"
                               appinfo="VolumeEmitter emits particles from a random position confined within the given closed geometry volume.">
            <componentInfo name="ParticleSystems" level="2"/>
            <Inheritance baseType="X3DParticleEmitterNode"/>
            <field name="coord"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DCoordinateNode"
                    description="Coordinates for the geometry used as the emitting volume."/>
            <field name="coordIndex"
                    type="MFInt32"
                    accessType="initializeOnly"
                    default="-1"
                    minInclusive="-1"
                    description="coordIndex indices are applied to contained Coordinate values in order to define randomly generated initial geometry of the particles."/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="0 1 0"
                    minInclusive="-1"
                    maxInclusive="1"
                    description="Initial direction from which particles emanate."/>
            <field name="internal"
                    type="SFBool"
                    accessType="initializeOnly"
                    default="true"
                    description="TODO, X3D specification is undefined."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="mass"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Basic mass of each particle, defined in mass base units (default is kilograms)."/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="on"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Enables/disables production of particles from this emitter node."/>
            <field name="set_coordIndex"
                    type="MFInt32"
                    accessType="inputOnly"
                    minInclusive="-1"/>
            <field name="speed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement."/>
            <field name="surfaceArea"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Particle surface area in area base units (default is meters squared)."/>
            <field name="variation"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.25"
                    minInclusive="0"
                    inheritedFrom="X3DParticleEmitterNode"
                    description="Multiplier for the randomness used to control the range of possible output values."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="emitter" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <NodeContentModel name="Coordinate"/>
               <NodeContentModel name="CoordinateDouble"/>
               <NodeContentModel name="GeoCoordinate"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="VolumePickSensor">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html#VolumePickSensor"
                               appinfo="VolumePickSensor tests picking intersections using the pickingGeometry against the pickTarget geometry volume.">
            <componentInfo name="Picking" level="3"/>
            <Inheritance baseType="X3DPickSensorNode"/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DSensorNode"
                    description="Author-provided prose that describes intended purpose of the node."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSensorNode"
                    description="Enables/disables node operation."/>
            <field name="intersectionType"
                    type="SFString"
                    accessType="initializeOnly"
                    default="BOUNDS"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="intersectionTypeValues"
                    baseType="xs:NMTOKEN"
                    description="intersectionType specifies precision of the collision computation.">
               <enumeration value="BOUNDS"
                             appinfo="TODO undefined in X3D specification."
                             documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
               <enumeration value="GEOMETRY"
                             appinfo="TODO undefined in X3D specification."
                             documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294"/>
            </field>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DSensorNode"
                    description="isActive indicates when the intersecting object is picked by the picking geometry."/>
            <field name="matchCriterion"
                    type="SFString"
                    accessType="inputOutput"
                    default="MATCH_ANY"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="pickSensorMatchCriterionChoices"
                    baseType="xs:NMTOKEN"
                    description="defines whether the intersection test (i.">
               <enumeration value="MATCH_ANY"
                             appinfo="any match of objectType values is acceptable."/>
               <enumeration value="MATCH_EVERY"
                             appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match."/>
               <enumeration value="MATCH_ONLY_ONE"
                             appinfo="one and only one objectType value can match."/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="objectType"
                    type="MFString"
                    accessType="inputOutput"
                    default="&#34;ALL&#34;"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickableObjectTypeValues"
                    baseType="MFString"
                    description="The objectType field specifies a set of labels used in the picking process.">
               <enumeration value="&#34;ALL&#34;" appinfo="each node is available for picking."/>
               <enumeration value="&#34;NONE&#34;" appinfo="no node is available for picking."/>
               <enumeration value="&#34;TERRAIN&#34;" appinfo="TERRAIN is an example value."/>
            </field>
            <field name="pickedGeometry"
                    type="MFNode"
                    accessType="outputOnly"
                    acceptableNodeTypes="X3DChildNode"
                    inheritedFrom="X3DPickSensorNode"
                    description="Output event containing the node or nodes that have been found to intersect with the picking geometry from the last time this node performed a picking operation, given in the local coordinate system."/>
            <field name="pickingGeometry"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DGeometryNode"
                    inheritedFrom="X3DPickSensorNode"
                    description="pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation."/>
            <field name="pickTarget"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DGroupingNode|X3DShapeNode|Inline"
                    inheritedFrom="X3DPickSensorNode"
                    description="pickTarget specifies the list of nodes against which picking operations are performed."/>
            <field name="sortOrder"
                    type="SFString"
                    accessType="initializeOnly"
                    default="CLOSEST"
                    inheritedFrom="X3DPickSensorNode"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="pickSensorSortOrderValues"
                    baseType="xs:NMTOKEN"
                    description="The sortOrder field determines the order provided for picked output events.">
               <enumeration value="ANY"
                             appinfo="any single object that can satisfy picking conditions."/>
               <enumeration value="CLOSEST"
                             appinfo="return closest object by distance that satisfies conditions of this pick sensor."/>
               <enumeration value="ALL"
                             appinfo="every object that satisfies picking conditions for this pick sensor is returned."/>
               <enumeration value="ALL_SORTED"
                             appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order."/>
            </field>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="GeometryContentModel"/>
               <GroupContentModel name="PickSensorGroupingNodeContentModel"/>
               <NodeContentModel name="Shape"/>
               <NodeContentModel name="ProtoInstance"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="WaveShaper">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#WaveShaper"
                               appinfo="WaveShaper node represents a nonlinear distorter that applies a wave-shaping distortion curve to the signal.">
            <componentInfo name="Sound" level="2"/>
            <Inheritance baseType="X3DSoundProcessingNode"/>
            <field name="channelCount"
                    type="SFInt32"
                    accessType="outputOnly"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="channelCount reports number of channels provided by input nodes."/>
            <field name="channelCountMode"
                    type="SFString"
                    accessType="inputOutput"
                    default="MAX"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelCountModeChoices"
                    baseType="SFString"
                    description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="MAX"
                             alias="max"
                             appinfo="X3D version of &#34;max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="CLAMPED_MAX"
                             alias="clamped-max"
                             appinfo="X3D version of &#34;clamped-max&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
               <enumeration value="EXPLICIT"
                             alias="explicit"
                             appinfo="X3D version of &#34;explicit&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode"/>
            </field>
            <field name="channelInterpretation"
                    type="SFString"
                    accessType="inputOutput"
                    default="SPEAKERS"
                    inheritedFrom="X3DSoundProcessingNode"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="channelInterpretationChoices"
                    baseType="SFString"
                    description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.">
               <enumeration value="SPEAKERS"
                             appinfo="X3D version of &#34;speakers&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
               <enumeration value="DISCRETE"
                             appinfo="X3D version of &#34;discrete&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation"/>
            </field>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper"
                    description="The children field specifies audio-graph sound sources providing input signals for this node."/>
            <field name="description"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Author-provided prose that describes intended purpose of the url asset."/>
            <field name="elapsedTime"
                    type="SFTime"
                    accessType="outputOnly"
                    minInclusive="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="Enables/disables node operation."/>
            <field name="gain"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="1"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="isActive"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isActive true/false events are sent when playback starts/stops."/>
            <field name="isPaused"
                    type="SFBool"
                    accessType="outputOnly"
                    inheritedFrom="X3DTimeDependentNode"
                    description="isPaused true/false events are sent when AudioClip is paused/resumed.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="oversample"
                    type="SFString"
                    accessType="inputOutput"
                    default="NONE"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="waveShaperOversampleChoices"
                    baseType="SFString"
                    description="The oversample field is specifies what type of oversampling (if any) should be used when applying the shaping curve.">
               <enumeration value="NONE"
                             alias="none"
                             appinfo="No oversampling. X3D version of &#34;none&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype"/>
               <enumeration value="2X"
                             alias="2x"
                             appinfo="Double sampling rate. X3D version of &#34;2x&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype"/>
               <enumeration value="4X"
                             alias="4x"
                             appinfo="Quadruple sampling rate. X3D version of &#34;4x&#34; in Web Audio API."
                             documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype"/>
            </field>
            <field name="pauseTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="resumeTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.">
               <componentInfo name="Time" level="2"/>
            </field>
            <field name="startTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="stopTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    inheritedFrom="X3DTimeDependentNode"
                    description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT."/>
            <field name="tailTime"
                    type="SFTime"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    inheritedFrom="X3DSoundProcessingNode"
                    description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="containerFieldChoicesAudioGraph"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="AudioGraphContentModel" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="WindPhysicsModel">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html#WindPhysicsModel"
                               appinfo="WindPhysicsModel applies a wind effect to the particles.">
            <componentInfo name="ParticleSystems" level="1"/>
            <Inheritance baseType="X3DParticlePhysicsModelNode"/>
            <field name="direction"
                    type="SFVec3f"
                    accessType="inputOutput"
                    default="1 0 0"
                    description="direction in which wind is travelling in the form of a normalized, unit vector."/>
            <field name="enabled"
                    type="SFBool"
                    accessType="inputOutput"
                    default="true"
                    inheritedFrom="X3DParticlePhysicsModelNode"
                    description="Enables/disables node operation."/>
            <field name="gustiness"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.1"
                    minInclusive="0"
                    description="gustiness specifies how much wind speed varies from the average speed."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="speed"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0.1"
                    minInclusive="0"
                    description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement."/>
            <field name="turbulence"
                    type="SFFloat"
                    accessType="inputOutput"
                    default="0"
                    minInclusive="0"
                    maxInclusive="1"
                    description="turbulence field specifies how much the wind acts directly in line with the direction, and how much variation is applied in directions other than the wind direction."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="physics" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
      <ConcreteNode name="WorldInfo">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#WorldInfo"
                               appinfo="WorldInfo contains a title and simple persistent metadata information about an X3D scene. This node is strictly for documentation purposes and has no effect on the visual appearance or behaviour of the world.">
            <componentInfo name="Core" level="1"/>
            <Inheritance baseType="X3DInfoNode"/>
            <field name="info"
                    type="MFString"
                    accessType="inputOutput"
                    description="Additional information about this model."/>
            <field name="IS"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="IS"
                    inheritedFrom="X3DNode"/>
            <field name="metadata"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="X3DMetadataObject"
                    inheritedFrom="X3DNode"
                    description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node."/>
            <field name="title"
                    type="SFString"
                    accessType="inputOutput"
                    description="title of this world, placed in window title."/>
            <field name="DEF"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:ID"
                    description="DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <field name="USE"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:IDREF"
                    description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DNode"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <containerField default="children" type="xs:NMTOKEN"/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </ConcreteNode>
   </ConcreteNodes>
   <Statements>
      <Statement name="component">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#Components"
                               appinfo="Functional summary: each added component statement indicates needed scene functionality support above the given X3D profile.">
            <componentInfo name="Core" level="1"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="level"
                    type="SFInt32"
                    accessType="inputOutput"
                    default="1"
                    minInclusive="1"
                    maxInclusive="5"
                    use="required"
                    description="Necessary level of support for this scene, as defined in corresponding Support table for a given node's component."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="componentNameChoices"
                    baseType="xs:NMTOKEN"
                    description="Provides name of this component, as defined in corresponding X3D Specification component Introduction.">
               <enumeration value="Core"
                             appinfo="The Core component supplies the base functionality for the X3D run-time system, including the abstract base node type, field types, the event model, and routing."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html"/>
               <enumeration value="CADGeometry"
                             appinfo="The CADGeometry component is provided for Computer-Aided Design (CAD) nodes."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/CADGeometry.html"/>
               <enumeration value="CubeMapTexturing"
                             appinfo="The Cube Map Environmental Texturing component describes how additional texturing effects are defined to produce environmental effects such as reflections from objects."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalTexturing"/>
               <enumeration value="DIS"
                             appinfo="The Distributed Interactive Simulation (DIS) component provides networked interoperability with the IEEE DIS protocol for sharing state and conducting real-time platform-level simulations across multiple host computers."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/dis.html"/>
               <enumeration value="EnvironmentalEffects"
                             appinfo="Nodes in the Environmental effects component support the creation of realistic environmental effects such as panoramic backgrounds and fog."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalEffects.html"/>
               <enumeration value="EnvironmentalSensor"
                             appinfo="The Environment Sensor nodes emit events indicating activity in the scene environment, usually based on interactions between the viewer and the world."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/environmentalSensor.html"/>
               <enumeration value="EventUtilities"
                             appinfo="The Event Utility nodes provide the capability to filter, trigger, convert, or sequence numerous event-types for common interactive applications without the use of a Script node."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/eventUtilities.html"/>
               <enumeration value="Followers"
                             appinfo="The Follower nodes (Chasers and Dampers) support dynamic creation of smooth parameter transitions at run time."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/followers.html"/>
               <enumeration value="Geometry2D"
                             appinfo="The Geometry2D component defines how two-dimensional geometry is specified and what shapes are available."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry2D.html"/>
               <enumeration value="Geometry3D"
                             appinfo="The Geometry3D component describes how three-dimensional geometry is specified and defines ElevationGrid, Extrusion, IndexedFaceSet, and most primitive geometry nodes (Box, Cone, Cylinder, Sphere)."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geometry3D.html"/>
               <enumeration value="Geospatial"
                             appinfo="The Geospatial component defines how to associate real-world locations in an X3D scene and specifies nodes particularly tuned for geospatial applications."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/geospatial.html"/>
               <enumeration value="Grouping"
                             appinfo="The Grouping component describes how nodes are organized into groups to establish a transformation hierarchy for the X3D scene graph."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/grouping.html"/>
               <enumeration value="HAnim"
                             appinfo="The Humanoid Animation (HAnim) component for X3D defines node bindings and other details for implementing ISO/IEC 19774, the HAnim International Specification. Original name was H-Anim for X3D versions 3.0 through 3.3, both enumeration values HAnim and H-Anim are allowed to pass validation."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html"/>
               <enumeration value="H-Anim"
                             appinfo="Legacy enumeration H-Anim for X3D versions 3.0-3.3 provides backwards compatibility with Humanoid Animation (HAnim) version 1, preferred form of enumeration value is HAnim."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html"/>
               <enumeration value="Interpolation"
                             appinfo="Interpolator nodes provide keyframe-based animation capability."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/interpolators.html"/>
               <enumeration value="KeyDeviceSensor"
                             appinfo="The Key Device Sensor defines how keyboard keystrokes are inserted into an X3D world."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/keyDeviceSensor.html"/>
               <enumeration value="Layering"
                             appinfo="The Layering component describes how to layer a set of subscene layers into a composite scene."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layering.html"/>
               <enumeration value="Layout"
                             appinfo="The Layout component defines how to precisely position content in a scene in relation to the rendered results, especially for integrating 2D content with 3D content."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/layout.html"/>
               <enumeration value="Lighting"
                             appinfo="The Lighting component specifies how light sources are defined and positioned, as well as how lights effect the rendered image."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/lighting.html"/>
               <enumeration value="Navigation"
                             appinfo="The Navigation component specifies how a user can effectively and intuitively move through and around a 3D scene."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/navigation.html"/>
               <enumeration value="Networking"
                             appinfo="The Networking component defines node types and other features used to access file-based and streaming resources on the World Wide Web."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/networking.html"/>
               <enumeration value="NURBS"
                             appinfo="The NURBS component describes Non-uniform Rational B-Spline (NURBS) geometry and interpolation nodes."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/nurbs.html"/>
               <enumeration value="ParticleSystems"
                             appinfo="The Particle Systems component specifies how to model particles and their interactions through the application of basic physics principles to affect motion."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/particleSystems.html"/>
               <enumeration value="Picking"
                             appinfo="The Picking component provides the ability to test for arbitrary object collision and provide basic capabilities to detecting object intersections and interactions."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/picking.html"/>
               <enumeration value="PointingDeviceSensor"
                             appinfo="Pointing device sensor nodes detect pointing events from user-interface devices, defining activities such as a user selecting a piece of geometry."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/pointingDeviceSensor.html"/>
               <enumeration value="TextureProjection"
                             appinfo="TextureProjection nodes project texture images onto geometry in a scene."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/textureProjector.html"/>
               <enumeration value="Rendering"
                             appinfo="The Rendering component includes fundamental rendering primitives such as TriangleSet and PointSet nodes, as well as geometric properties nodes that define how coordinate indices, colors, normals and texture coordinates are specified."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rendering.html"/>
               <enumeration value="RigidBodyPhysics"
                             appinfo="The Rigid Body Physics component describes how to model rigid bodies and their interactions through the application of basic physics principles to effect motion."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/rigidBodyPhysics.html"/>
               <enumeration value="Scripting"
                             appinfo="The Scripting component describes how Script nodes are used to effect changes in X3D worlds."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/scripting.html"/>
               <enumeration value="Shaders"
                             appinfo="The Programmable Shaders component describes how programmable shaders are specified and how they affect the visual appearance of geometry."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shaders.html"/>
               <enumeration value="Shape"
                             appinfo="The Shape component defines nodes for associating geometry with their visible properties and the scene environment."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/shape.html"/>
               <enumeration value="Sound"
                             appinfo="The Sound component defines how sound is delivered to an X3D world as well as how sounds are accessed."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html"/>
               <enumeration value="Text"
                             appinfo="The Text component defines how text strings are rendered in an X3D scene."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/text.html"/>
               <enumeration value="Texturing"
                             appinfo="The Texturing component specifies how 2D texture images are defined and then positioned on associated geometry."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texturing.html"/>
               <enumeration value="Texturing3D"
                             appinfo="The Texturing3D component specifies how 3D volumetric textures describe surface properties as data points in a volume of space, rather than a flat surface."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/texture3D.html"/>
               <enumeration value="Time"
                             appinfo="The Time component defines how time is sensed, computed and associated with events in an X3D scene."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/time.html"/>
               <enumeration value="VolumeRendering"
                             appinfo="The Volume Rendering component provides the ability to specify and render volumetric data sets."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/volume.html"/>
            </field>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
         </InterfaceDefinition>
      </Statement>
      <Statement name="connect">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#IS_ConnectStatementSyntax"
                               appinfo="Functional summary: connect statements define event-routing connections between node fields defined inside a ProtoBody declaration back to corresponding ProtoInterface fields.">
            <componentInfo name="Core" level="2"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="nodeField"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:NMTOKEN"
                    description="Name of field within this node which IS CONNECTed to the ancestor ProtoDeclare field definition."/>
            <field name="protoField"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:NMTOKEN"
                    description="Name of parent ProtoDeclare field definition connecting to field in this node."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
         </InterfaceDefinition>
      </Statement>
      <Statement name="EXPORT">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#EXPORTSemantics"
                               appinfo="Functional summary: EXPORT exposes a local node for ROUTE passing of event values when the current Scene is included via Inline by a parent external world. These connections allow event values to be exchanged via ROUTE statements between a parent model and a child Inline model.">
            <componentInfo name="Networking" level="3"/>
            <field name="AS"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:NMTOKEN"
                    description="rename localDEF node AS a different name when exporting."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="localDEF"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:IDREF"
                    description="localDEF is the DEF name of the local node to be EXPORTed."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
         </InterfaceDefinition>
      </Statement>
      <Statement name="ExternProtoDeclare">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#Externalprototypesemantics"
                               appinfo="ExternProtoDeclare refers to a ProtoDeclare node declaration provided in another file. ExternProtoDeclare interfaces are defined by field statements (and without IS/connect statements).">
            <componentInfo name="Core" level="2"/>
            <field name="appinfo"
                    type="SFString"
                    accessType="inputOutput"
                    description="Application information to provide simple description usable as a tooltip, similar to XML Schema appinfo tag."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="documentation"
                    type="SFString"
                    accessType="inputOutput"
                    description="Documentation url for further information, similar to XML Schema documentation tag."/>
            <field name="field"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="field"
                    description="Include a field statement for each field declaration in the corresponding original ProtoDeclare."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:NMTOKEN"
                    description="name of the ExternProtoDeclare (External Prototype Declaration) being referenced."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="url"
                    type="MFString"
                    accessType="inputOutput"
                    use="required"
                    description="Location and filename of ProtoDeclare source declaration of interest."/>
            <ContentModel>
               <StatementContentModel name="field"/>
            </ContentModel>
         </InterfaceDefinition>
      </Statement>
      <Statement name="field">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#NodeAndFieldStatementSyntax"
                               appinfo="Functional summary: a field statement defines an interface attribute or node. Each field statement can contain either attribute-value or node content.">
            <componentInfo name="Core" level="1"/>
            <field name="accessType"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="accessTypeChoices"
                    baseType="xs:NMTOKEN"
                    description="Event-model semantics for field set/get capabilities.">
               <enumeration value="initializeOnly"
                             appinfo="A field with accessType initializeOnly can be initialized, but cannot send or receive events."/>
               <enumeration value="inputOnly"
                             appinfo="A field with accessType inputOnly cannot be initialized or included in a scene file, but can receive input event values via a ROUTE."/>
               <enumeration value="outputOnly"
                             appinfo="A field with accessType outputOnly cannot be initialized or included in a scene file, but can send output event values via a ROUTE."/>
               <enumeration value="inputOutput"
                             appinfo="A field with accessType inputOutput can be initialized, and can also send or receive events."/>
            </field>
            <field name="appinfo"
                    type="SFString"
                    accessType="inputOutput"
                    description="Application information to provide simple description usable as a tooltip, similar to XML Schema appinfo tag."/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DNode"
                    description="If this field definition has type SFNode or MFNode, then initialization node (or nodes) of any appropriate type may be provided as children of the field definition."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="documentation"
                    type="SFString"
                    accessType="inputOutput"
                    description="Documentation url for further information, similar to XML Schema documentation tag."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:NMTOKEN"
                    description="Name of this field declaration."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="type"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="fieldTypeChoices"
                    baseType="xs:NMTOKEN"
                    description="Base type of this field variable.">
               <enumeration value="SFBool" appinfo="Single Field (singleton) Boolean."/>
               <enumeration value="MFBool" appinfo="Multiple Field (list) Boolean."/>
               <enumeration value="SFColor"
                             appinfo="Single Field (singleton) color value, red-green-blue."/>
               <enumeration value="MFColor"
                             appinfo="Multiple Field (list) color value, red-green-blue."/>
               <enumeration value="SFColorRGBA"
                             appinfo="Single Field (singleton) color value, red-green-blue alpha (opacity)."/>
               <enumeration value="MFColorRGBA"
                             appinfo="Multiple Field (list) color value, red-green-blue alpha (opacity)."/>
               <enumeration value="SFDouble"
                             appinfo="Single Field (singleton) double-precision (64-bit) float."/>
               <enumeration value="MFDouble"
                             appinfo="Multiple Field (list) 2-tuple double-precision (64-bit) float vector."/>
               <enumeration value="SFFloat"
                             appinfo="Single Field (singleton) single-precision (32-bit) float."/>
               <enumeration value="MFFloat"
                             appinfo="Multiple Field (list) single-precision (32-bit) float vector."/>
               <enumeration value="SFImage" appinfo="Single Field (singleton) image value."/>
               <enumeration value="MFImage" appinfo="Multiple Field (list) image values."/>
               <enumeration value="SFInt32" appinfo="Single Field (singleton) 32-bit integer."/>
               <enumeration value="MFInt32" appinfo="Multiple Field (list) 32-bit integer."/>
               <enumeration value="SFNode" appinfo="Single Field (singleton) node."/>
               <enumeration value="MFNode" appinfo="Multiple Field (list) nodes."/>
               <enumeration value="SFRotation"
                             appinfo="Single Field (singleton) rotation value using 3-tuple axis, radian angle."/>
               <enumeration value="MFRotation"
                             appinfo="Multiple Field (list) rotation values using 3-tuple axis, radian angle."/>
               <enumeration value="SFString" appinfo="Single Field (singleton) string value."/>
               <enumeration value="MFString" appinfo="Multiple Field (list) SFString array."/>
               <enumeration value="SFTime"
                             appinfo="Single Field (singleton) time value in seconds."/>
               <enumeration value="MFTime" appinfo="Multiple Field (list) time array in seconds."/>
               <enumeration value="SFVec2d"
                             appinfo="Single Field (singleton) 2-tuple double-precision float vector."/>
               <enumeration value="MFVec2d"
                             appinfo="Multiple Field (list) 2-tuple double-precision float vectors."/>
               <enumeration value="SFVec2f"
                             appinfo="Single Field (singleton) 2-tuple single-precision float vector."/>
               <enumeration value="MFVec2f"
                             appinfo="Multiple Field (list) 2-tuple single-precision float vectors."/>
               <enumeration value="SFVec3d"
                             appinfo="Single Field (singleton) 3-tuple double-precision float vector."/>
               <enumeration value="MFVec3d"
                             appinfo="Multiple Field (list) 3-tuple double-precision float vectors."/>
               <enumeration value="SFVec3f"
                             appinfo="Single Field (singleton) 3-tuple single-precision float vector."/>
               <enumeration value="MFVec3f"
                             appinfo="Multiple Field (list) 3-tuple single-precision float vectors."/>
               <enumeration value="SFVec4d"
                             appinfo="Single Field (singleton) 4-tuple double-precision float vector."/>
               <enumeration value="MFVec4d"
                             appinfo="Multiple Field (list) 4-tuple double-precision float vectors."/>
               <enumeration value="SFVec4f"
                             appinfo="Single Field (singleton) 4-tuple single-precision float vector."/>
               <enumeration value="MFVec4f"
                             appinfo="Multiple Field (list) 4-tuple single-precision float vectors."/>
               <enumeration value="SFMatrix3d"
                             appinfo="Single Field (singleton) 3×3 matrix of double-precision floating point numbers."/>
               <enumeration value="MFMatrix3d"
                             appinfo="Multiple Field (list) 3×3 matrices of double-precision floating point numbers."/>
               <enumeration value="SFMatrix3f"
                             appinfo="Single Field (singleton) 3×3 matrix of single-precision floating point numbers."/>
               <enumeration value="MFMatrix3f"
                             appinfo="Multiple Field (list) 3×3 matrices of double-precision floating point numbers."/>
               <enumeration value="SFMatrix4d"
                             appinfo="Single Field (singleton) 4×4 matrix of double-precision floating point numbers."/>
               <enumeration value="MFMatrix4d"
                             appinfo="Multiple Field (list) 4×4 matric3w of double-precision floating point numbers."/>
               <enumeration value="SFMatrix4f"
                             appinfo="Single Field (singleton) 4×4 matrix of single-precision floating point numbers."/>
               <enumeration value="MFMatrix4f"
                             appinfo="Multiple Field (list) 4×4 matrices of single-precision floating point numbers."/>
            </field>
            <field name="value"
                    type="SFString"
                    accessType="inputOutput"
                    description="Provide default initialization value for this field variable (which may be re-initialized later by instantiation value of a named ProtoInstance fieldValue)."/>
            <ContentModel>
               <GroupContentModel name="SceneGraphFragmentContentModel"/>
            </ContentModel>
         </InterfaceDefinition>
      </Statement>
      <Statement name="fieldValue">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#ProtoInstanceAndFieldValueStatement"
                               appinfo="Functional summary: a fieldValue statement re-initializes the default value of a field in a ProtoInstance. Each fieldValue statement can contain either attribute-value or node content.">
            <componentInfo name="Core" level="2"/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DNode"
                    description="If this field definition has type SFNode or MFNode, then initialization node (or nodes) of any appropriate type may be provided as children of the field definition."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:NMTOKEN"
                    description="Name of the ProtoInstance field being re-initialized (corresponding to field name already defined in ProtoDeclare or ExternProtoDeclare)."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="value"
                    type="SFString"
                    accessType="inputOutput"
                    description="Initial value for this field, which overrides default initialization value defined in original ProtoDeclare field."/>
            <ContentModel>
               <GroupContentModel name="SceneGraphFragmentContentModel"/>
            </ContentModel>
         </InterfaceDefinition>
      </Statement>
      <Statement name="head">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#Header"
                               appinfo="Functional summary: each X3D scene includes a head statement that can contain component, unit and meta statements.">
            <componentInfo name="Core" level="1"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="component"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="component"
                    description="Add component statements to indicate necessary scene functionality above the given profile for this X3D model."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="meta"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="meta"
                    description="Add meta statements to provide metadata information about this X3D model."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="unit"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="unit"
                    description="Add unit statements to define data-conversion factors for typed values defined within a scene."/>
            <ContentModel>
               <StatementContentModel name="component" minOccurs="0" maxOccurs="unbounded"/>
               <StatementContentModel name="unit" minOccurs="0" maxOccurs="unbounded"/>
               <StatementContentModel name="meta" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </Statement>
      <Statement name="IMPORT">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#ImportExportsemantics"
                               appinfo="Functional summary: IMPORT provides ROUTE access to a node that has a corresponding EXPORT statement within an Inline scene. These connections allow event values to be exchanged via ROUTE statements between a parent model and a child Inline model.">
            <componentInfo name="Networking" level="3"/>
            <field name="AS"
                    type="SFString"
                    accessType="inputOutput"
                    baseType="xs:ID"
                    description="map importedDEF name AS a new name in current scene."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="importedDEF"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:NMTOKEN"
                    description="importedDEF is DEF name of the node of interest that is contained in the remote inlineDEF scene."/>
            <field name="inlineDEF"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:IDREF"
                    description="inlineDEF is the DEF name of Inline node in the same scene as this IMPORT statement."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
         </InterfaceDefinition>
      </Statement>
      <Statement name="IS">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#PROTOdefinitionsemantics"
                               appinfo="Functional summary: the IS statement connects node fields defined inside a ProtoBody declaration back to corresponding ProtoInterface fields. IS/connect statements can be added if the parent node is within a ProtoBody and connect statements define correspondences between prototype fields and built-in node fields.">
            <componentInfo name="Core" level="2"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="connect"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="connect"
                    description="When inside a ProtoBody declaration and an IS statement, add a connect statement to define event-routing connections between a parent node's field to a corresponding ProtoInterface field."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <StatementContentModel name="connect"/>
            </ContentModel>
         </InterfaceDefinition>
      </Statement>
      <Statement name="meta">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#Header"
                               appinfo="Functional summary: the meta statement provides metadata information about a scene, where name and content attributes provide attribute=value metadata pairs.">
            <componentInfo name="Core" level="1"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="content"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    description="The content attribute provides metadata information relevant to the name attribute provided."/>
            <field name="dir"
                    type="SFString"
                    accessType="inputOutput"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="metaDirectionChoices"
                    baseType="xs:NMTOKEN"
                    description="Direction for weak/neutral text (ltr=left-to-right, rtl=right-to-left).">
               <enumeration value="rtl" appinfo="right-to-left."/>
               <enumeration value="ltr" appinfo="left-to-right."/>
            </field>
            <field name="http-equiv"
                    type="SFString"
                    accessType="inputOutput"
                    description="The http-equiv attribute provides an HTTP header for the value of the content attribute."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="lang"
                    type="SFString"
                    accessType="inputOutput"
                    description="Language code, as per [IETF BCP47/RFC5646]."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    additionalEnumerationValuesAllowed="true"
                    simpleType="metaNameValues"
                    baseType="xs:NMTOKEN"
                    description="Keyword name of the meta attribute, following the same naming conventions as HTML's meta tag.">
               <enumeration value="accessRights"
                             appinfo="permission required to access resource or security status."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-accessRights"/>
               <enumeration value="author"
                             appinfo="name of individual author."
                             documentation="https://www.w3.org/TR/html5/document-metadata.html#author"/>
               <enumeration value="contributor"
                             appinfo="name of individual contributing to this resource."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-contributor"/>
               <enumeration value="created"
                             appinfo="date of initial version."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-created"/>
               <enumeration value="creator"
                             appinfo="name of original author."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-creator"/>
               <enumeration value="description"
                             appinfo="summary overview describing this resource."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-description"/>
               <enumeration value="disclaimer"
                             appinfo="statement of denial or disavowal regarding potential claims or responsiblity."/>
               <enumeration value="drawing"
                             appinfo="name or reference link to a supporting drawing or sketch file."/>
               <enumeration value="error"
                             appinfo="information about an error (or known problem) that can prevent proper operation."/>
               <enumeration value="generator"
                             appinfo="authoring tool or translation tool."
                             documentation="https://www.w3.org/TR/html5/document-metadata.html#generator"/>
               <enumeration value="hint" appinfo="user hint about resource features or operation."/>
               <enumeration value="identifier"
                             appinfo="url address or unique Uniform Resource Identifier (URI) for resource."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-identifier"/>
               <enumeration value="Image"
                             appinfo="name or reference link to supporting image file."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#dcmitype-Image"/>
               <enumeration value="info" appinfo="additional info of interest."/>
               <enumeration value="information" appinfo="additional information of interest."/>
               <enumeration value="isVersionOf"
                             appinfo="Related resource of which the described resource is a version, edition, or adaptation."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-isVersionOf"/>
               <enumeration value="keywords"
                             appinfo="comma-separated tokens, each of which is a keyword of interest."
                             documentation="https://www.w3.org/TR/html5/document-metadata.html#keywords"/>
               <enumeration value="license"
                             appinfo="content or software license."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-license"/>
               <enumeration value="mediator"
                             appinfo="entity that mediates access to resource and for whom resource is intended or useful."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-mediator"/>
               <enumeration value="modified"
                             appinfo="date of modified version."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-modified"/>
               <enumeration value="movie"
                             appinfo="name or reference link to supporting movie file (note that Dublin Core term is MovingImage)."/>
               <enumeration value="MovingImage"
                             appinfo="name or reference link to supporting movie."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#dcmitype-MovingImage"/>
               <enumeration value="original"
                             appinfo="name or reference link to original file or resource."/>
               <enumeration value="photo"
                             appinfo="name or reference link to supporting photo file (note that Dublin Core term is Image)."/>
               <enumeration value="photograph"
                             appinfo="name or reference link to supporting photograph file (note that Dublin Core term is Image)."/>
               <enumeration value="publisher"
                             appinfo="entity responsible for making the resource available."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-publisher"/>
               <enumeration value="reference"
                             appinfo="name or reference link to supporting reference."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-references"/>
               <enumeration value="requires"
                             appinfo="prerequisites for operation or viewing."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-requires"/>
               <enumeration value="rights"
                             appinfo="intellectual property rights (IPR)."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-rights"/>
               <enumeration value="robots"
                             appinfo="search engine and web-spider guidance value: noindex to block page indexing, nofollow to block following links."
                             documentation="https://developers.google.com/search/reference/robots_meta_tag"/>
               <enumeration value="Sound"
                             appinfo="name or reference link to supporting sound file."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#dcmitype-Sound"/>
               <enumeration value="source"
                             appinfo="related resource from which the described resource is derived."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-source"/>
               <enumeration value="specificationSection"
                             appinfo="title of relevant specification section."/>
               <enumeration value="specificationUrl"
                             appinfo="url for relevant specification section."
                             documentation="https://www.web3d.org/standards"/>
               <enumeration value="subject"
                             appinfo="search-index subject keywords, key phrases, or classification codes."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-subject"/>
               <enumeration value="Text"
                             appinfo="resource consisting primarily of words for reading."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#dcmitype-Text"/>
               <enumeration value="title"
                             appinfo="file name for this resource."
                             documentation="http://www.dublincore.org/documents/dcmi-terms/#terms-title"/>
               <enumeration value="TODO"
                             appinfo="action item &#34;to do&#34; that still needs to be performed."/>
               <enumeration value="translator"
                             appinfo="name of person performing translation from another format or language."/>
               <enumeration value="translated"
                             appinfo="date of translation from another format or language."/>
               <enumeration value="version"
                             appinfo="current version number or ID of this resource."/>
               <enumeration value="warning"
                             appinfo="warning information about a known problem that impedes proper operation."/>
            </field>
            <field name="scheme"
                    type="SFString"
                    accessType="inputOutput"
                    description="The scheme attribute allows authors to provide user agents more context for the correct interpretation of meta information."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
         </InterfaceDefinition>
      </Statement>
      <Statement name="ProtoBody">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#PrototypeAndFieldDeclarationSyntax"
                               appinfo="ProtoBody contains the definition nodes for new Prototype nodes.">
            <componentInfo name="Core" level="2"/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DNode"
                    description="ProtoBody can contain nodes, statements and comments."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="SceneGraphFragmentWithPrototypeDeclarationsContentModel"
                                   maxOccurs="unbounded"/>
               <StatementContentModel name="LayerSet" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </Statement>
      <Statement name="ProtoDeclare">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#PrototypeAndFieldDeclarationSyntax"
                               appinfo="ProtoDeclare defines new Prototype nodes. Nested ProtoDeclares and ProtoInstances are allowed by the specification.">
            <componentInfo name="Core" level="2"/>
            <field name="appinfo"
                    type="SFString"
                    accessType="inputOutput"
                    description="Application information to provide simple description usable as a tooltip, similar to XML Schema appinfo tag."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="documentation"
                    type="SFString"
                    accessType="inputOutput"
                    description="Documentation url for further information, similar to XML Schema documentation tag."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:NMTOKEN"
                    description="name of this prototype being declared."/>
            <field name="ProtoBody"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="ProtoBody"
                    description="Include one ProtoBody statement after the ProtoInterface statement."/>
            <field name="ProtoInterface"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="ProtoInterface"
                    description="Include an optional ProtoInterface statement if this ProtoDeclare has field declarations."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <StatementContentModel name="ProtoInterface" minOccurs="0"/>
               <StatementContentModel name="ProtoBody"/>
            </ContentModel>
         </InterfaceDefinition>
      </Statement>
      <Statement name="ProtoInterface">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#PrototypeAndFieldDeclarationSyntax"
                               appinfo="ProtoInterface defines fields for new Prototype nodes.">
            <componentInfo name="Core" level="2"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="field"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="field"
                    description="Include a field statement for each field declaration in this ProtoDeclare's ProtoInterface."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <StatementContentModel name="field" minOccurs="0" maxOccurs="unbounded"/>
            </ContentModel>
         </InterfaceDefinition>
      </Statement>
      <Statement name="ROUTE">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#ModifyingObjectsRoutes"
                               appinfo="ROUTE connects output fields of event-producing nodes to input fields of event-consuming nodes.">
            <componentInfo name="Core" level="1"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="fromField"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:NMTOKEN"
                    description="fromField is the field name in the source node which is originating an event."/>
            <field name="fromNode"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:IDREF"
                    description="fromNode is the DEF name of the node originating an event."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="toField"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:NMTOKEN"
                    description="toField is the field name in the destination node which is receiving an event."/>
            <field name="toNode"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:IDREF"
                    description="toNode is the DEF name of the destination node receiving an event."/>
         </InterfaceDefinition>
      </Statement>
      <Statement name="Scene">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#Header"
                               appinfo="Scene is the implicit root node of the X3D scene graph.">
            <componentInfo name="Core" level="1"/>
            <field name="children"
                    type="MFNode"
                    accessType="inputOutput"
                    acceptableNodeTypes="X3DChildNode|X3DMetadataObject|LayerSet"
                    description="Scene can contain nodes, statements and comments."/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <ContentModel>
               <GroupContentModel name="ChildContentModelCore"/>
               <GroupContentModel name="GroupingNodeChildContentModel"/>
               <StatementContentModel name="LayerSet" minOccurs="0"/>
            </ContentModel>
         </InterfaceDefinition>
      </Statement>
      <Statement name="unit">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/core.html#UNITStatement"
                               appinfo="Functional summary: unit statement defines data-conversion factors for typed values defined in a scene.">
            <componentInfo name="Core" level="1"/>
            <field name="category"
                    type="SFString"
                    accessType="initializeOnly"
                    use="required"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="unitCategoryChoices"
                    baseType="xs:NMTOKEN"
                    description="Base-unit category as defined in X3D Specification.">
               <enumeration value="angle" appinfo="angle default is radians."/>
               <enumeration value="force" appinfo="force default is newtons."/>
               <enumeration value="length" appinfo="length default is meters."/>
               <enumeration value="mass" appinfo="mass default is kilograms."/>
            </field>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="conversionFactor"
                    type="SFDouble"
                    accessType="inputOutput"
                    default="1.0"
                    minExclusive="0"
                    use="required"
                    description="Positive double-precision factor that converts new base unit to default base unit."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="name"
                    type="SFString"
                    accessType="inputOutput"
                    use="required"
                    baseType="xs:NMTOKEN"
                    description="Author-defined name for this unit conversionFactor value (for example, FeetToMeters)."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
         </InterfaceDefinition>
      </Statement>
      <Statement name="X3D">
         <InterfaceDefinition specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#Header"
                               appinfo="X3D is the root node for an Extensible 3D (X3D) Graphics model.">
            <componentInfo name="Core" level="1"/>
            <field name="class"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKENS"
                    description="The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="head"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="head"
                    description="Include a head element to contain component, unit or meta statements for this X3D model."/>
            <field name="id"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    baseType="xs:NMTOKEN"
                    description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context."/>
            <field name="profile"
                    type="SFString"
                    accessType="inputOutput"
                    default="Full"
                    use="required"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="profileNameChoices"
                    baseType="xs:NMTOKEN"
                    description="profile attribute is required and defines the player or tool support needed for this model.">
               <enumeration value="Core"
                             appinfo="Core Profile includes no nodes and is provided as the basis for custom componentization. Allowed X3D statements for all profiles are: connect ExternProtoDeclare EXPORT field fieldValue IMPORT IS ProtoBody ProtoDeclare ProtoInterface ProtoInstance ROUTE X3D. Allowed X3D nodes for this profile are: MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/coreprofile.html"/>
               <enumeration value="Interchange"
                             appinfo="Interchange Profile equals the minimum subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Appearance Background Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder DirectionalLight Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PointSet PositionInterpolator ScalarInterpolator Shape Sphere TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint WorldInfo."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/interchange.html"/>
               <enumeration value="CADInterchange"
                             appinfo="CADInterchange Profile adds support for CADGeometry component nodes to Interchange Profile. Allowed X3D nodes for this profile are: Anchor Appearance CADAssembly CADFace CADLayer CADPart Billboard Collision Color ColorRGBA Coordinate DirectionalLight FragmentShader Group ImageTexture IndexedLineSet IndexedQuadSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline LineProperties LineSet LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiShader MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal PixelTexture PointSet QuadSet Shader ShaderAppearance Shape TextureCoordinate TextureCoordinateGenerator TextureTransform Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint VertexShader WorldInfo."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/CADInterchange.html"/>
               <enumeration value="Interactive"
                             appinfo="Interactive Profile adds interaction nodes (Anchor, KeySensor) to the minimum subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Anchor Appearance Background BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ScalarInterpolator Shape Sphere SphereSensor SpotLight StringSensor Switch TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor TimeTrigger TouchSensor Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint VisibilitySensor WorldInfo."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/interactive.html"/>
               <enumeration value="Immersive"
                             appinfo="Immersive Profile equals all of the nodes in the VRML97 Specification, plus various X3D node additions including KeySensor, StringSensor and Scene. Allowed X3D nodes for this profile are: Anchor Appearance AudioClip Background Billboard BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger Box Collision Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Extrusion Fog FontStyle Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFan IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineProperties LineSet LoadSensor LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MovieTexture MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet Polyline2D Polypoint2D PositionInterpolator ProximitySensor Rectangle2D ScalarInterpolator Script Shape Sound Sphere SphereSensor SpotLight StringSensor Switch Text TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor TimeTrigger TouchSensor TriangleFanSet TriangleSet TriangleSet2D TriangleStripSet Transform Viewpoint VisibilitySensor WorldInfo."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/immersive.html"/>
               <enumeration value="MedicalInterchange"
                             appinfo="The MedicalInterchange profile adds support for VolumeRendering component to Interchange profile. Allowed X3D nodes for this profile are: Anchor Arc2D ArcClose2D Appearance Background Billboard BlendedVolumeStyle BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger BoundaryEnhancementVolumeStyle Box CartoonVolumeStyle Circle2D ClipPlane Collision Color ColorInterpolator ColorRGBA ComposedVolumeStyle CompositeTexture3D Cone Coordinate CoordinateDouble CoordinateInterpolator Cylinder DirectionalLight Disk2D EdgeEnhancementVolumeStyle FillProperties FontStyle Group ImageTexture ImageTexture3D IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger IsoSurfaceVolumeData LineProperties LineSet LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OctTree OpacityMapVolumeStyle OrientationInterpolator OrthoViewpoint PixelTexture PixelTexture3D PointSet Polyline2D Polypoint2D PositionInterpolator ProjectionVolumeStyle Rectangle2D ScalarInterpolator SegmentedVolumeData ShadedVolumeStyle Shape SilhouetteEnhancementVolumeStyle Sphere StaticGroup Switch Text TextureCoordinate TextureCoordinate3D TextureCoordinate4D TextureCoordinateGenerator TextureMatrixTransform TextureProperties TextureTransform TextureTransform3D TimeSensor TimeTrigger ToneMappedVolumeStyle Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint ViewpointGroup VolumeData WorldInfo."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/MedInterchange.html"/>
               <enumeration value="MPEG4Interactive"
                             appinfo="MPEGInteractive Profile defines base interoperability with MPEG4 standards to a small subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Anchor Appearance Background Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Group ImageTexture IndexedFaceSet IndexedLineSet Inline LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString NavigationInfo NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ScalarInterpolator Shape Sphere SphereSensor SpotLight Switch TextureCoordinate TextureTransform TimeSensor TouchSensor Transform Viewpoint WorldInfo."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/MPEG4interactive.html"/>
               <enumeration value="Full"
                             appinfo="The Full Profile corresponds to all Immersive X3D nodes plus all approved/implemented extensions. All X3D nodes and statements are allowed in this profile."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/fullProfile.html"/>
            </field>
            <field name="Scene"
                    type="SFNode"
                    accessType="inputOutput"
                    default="NULL"
                    acceptableNodeTypes="Scene"
                    description="Include a Scene element to contain scene-graph nodes for this X3D model."/>
            <field name="style"
                    type="SFString"
                    accessType="inputOutput"
                    inheritedFrom="X3DStatement"
                    description="The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets."/>
            <field name="version"
                    type="SFString"
                    accessType="inputOutput"
                    default="4.0"
                    use="required"
                    additionalEnumerationValuesAllowed="false"
                    simpleType="x3dVersionChoices"
                    baseType="xs:NMTOKEN"
                    description="Default is highest value matching schema and DOCTYPE in the scene.">
               <enumeration value="3.0"
                             appinfo="X3D version 3.0 approved by ISO in 2004."
                             documentation="https://www.web3d.org/documents/specifications/19775-1/V3.0/index.html"/>
               <enumeration value="3.1"
                             appinfo="X3D version 3.1 Amendment 1 approved by ISO in 2005. Backwards compatibility maintained with version 3.0."
                             documentation="https://www.web3d.org/documents/specifications/19775-1/V3.1/index.html"/>
               <enumeration value="3.2"
                             appinfo="X3D version 3.2 Amendment 2 approved by ISO in 2007. Backwards compatibility maintained with versions 3.0 and 3.1."
                             documentation="https://www.web3d.org/documents/specifications/19775-1/V3.2/index.html"/>
               <enumeration value="3.3"
                             appinfo="X3D version 3.3 approved by ISO in 2013 as International Standard (IS). Backwards compatibility maintained with versions 3.0, 3.1 and 3.2."
                             documentation="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/X3D.html"/>
               <enumeration value="4.0"
                             appinfo="X3D version 4.0 under final development by Web3D Consortium. Backwards compatibility maintained with versions 3.0, 3.1, 3.2 and 3.3."
                             documentation="https://www.web3d.org/x3d4"/>
            </field>
            <ContentModel>
               <StatementContentModel name="head" minOccurs="0"/>
               <StatementContentModel name="Scene"/>
            </ContentModel>
         </InterfaceDefinition>
      </Statement>
   </Statements>
</X3dUnifiedObjectModel>
