Extensible 3D (X3D) encodings
Part 1: Extensible Markup Language (XML) encoding
Annex A
(informative)
Document Type Definition (DTD)
This annex provides a detailed description of the grammar for each syntactic element in this part of ISO/IEC 19776. Table A.1 contains a table of contents that lists the topics in this clause:
An XML Document Type Definition (DTD) defines syntax of an XML tagset [XML].
The X3D DTD has sufficient expressive power to:
The X3D DTD does not have sufficient expressive power to:
x3d-3.0.dtd is the X3D DTD that validates X3D version 3.0 content:
<!--
# Extensible 3D (X3D) Specification Document Type Definition (DTD) x3d-3.0.dtd
#
# http://www.web3d.org/specifications/x3d-3.0.dtd
#
# current version: 3.0.2
#
# created: 30 April 2005
# revised: 4 May 2008
#
# Author: Don Brutzman
#
# X3D Specification DTDs:
# http://www.web3d.org/specifications/x3d-3.0.dtd
# http://www.web3d.org/specifications/x3d-3.0-InputOutputFields.dtd
# http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPublic.dtd
# http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPrivate.dtd
#
# X3D Revision DTDs:
# http://www.web3d.org/x3d/content/x3d-3.0.dtd
# http://www.web3d.org/x3d/content/x3d-3.0-InputOutputFields.dtd
# http://www.web3d.org/x3d/content/x3d-3.0-Web3dExtensionsPublic.dtd
# http://www.web3d.org/x3d/content/x3d-3.0-Web3dExtensionsPrivate.dtd
#
# Final doctype:
# <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
#
# Transitional doctype:
# <!DOCTYPE X3D PUBLIC "http://www.web3d.org/specifications/x3d-3.0.dtd" "file:///www.web3d.org/specifications/x3d-3.0.dtd">
#
# Typical system location for this resource:
# file://c:/www.web3d.org/specifications/x3d-3.0.dtd
# file:///www.web3d.org/specifications/x3d-3.0.dtd
#
# Change log:
# http://www.web3d.org/specifications/x3d-dtd-changelog.txt
#
# Further information on the Extensible 3D (X3D) specification is available at
# http://www.web3D.org/x3d.html
-->
<!-- Profile: default is Full profile and all components.
Authors can override these default IGNORE/INCLUDE values.
If InterchangeProfile or InteractiveProfile is INCLUDEd, then IGNORE all others. -->
<!ENTITY % ImmersiveProfile "INCLUDE">
<!ENTITY % InterchangeProfile "IGNORE">
<!ENTITY % InteractiveProfile "IGNORE">
<!ENTITY % DISComponent "INCLUDE">
<!ENTITY % GeoSpatialComponent "INCLUDE">
<!ENTITY % HAnimComponent "INCLUDE">
<!ENTITY % NurbsComponent "INCLUDE">
<!ENTITY % Web3dExtensionComponent "INCLUDE">
<!ENTITY % X3dInputOutputFields "INCLUDE">
<!ENTITY % X3dExtensions "IGNORE">
<!ENTITY % profileNames "(Core|Interchange|Interactive|Immersive|Full|MPEG4Interactive)">
<!ENTITY % componentNames "(Core|DIS|EnvironmentalEffects|EnvironmentalSensor|EventUtilities|Geometry2D|Geometry3D|Geospatial|Grouping|H-Anim|Interpolation|KeyDeviceSensor|Lighting|Navigation|Networking|NURBS|PointingDeviceSensor|Rendering|Scripting|Shape|Sound|Text|Texturing|Time)">
<!ENTITY % componentLevels "(1|2|3|4)">
<!ENTITY % X3dFieldTypes "SFBool|MFBool|SFColor|MFColor|SFColorRGBA|MFColorRGBA|SFDouble|MFDouble|SFFloat|MFFloat|SFImage|MFImage|SFInt32|MFInt32|SFNode|MFNode|SFRotation|MFRotation|SFString|MFString|SFTime|MFTime|SFVec2f|MFVec2f|SFVec2d|MFVec2d|SFVec3f|MFVec3f|SFVec3d|MFVec3d ">
<!-- X3D type definitions as DTD types -->
<!ENTITY % SFBool "(true|false)">
<!ENTITY % MFBool "CDATA">
<!ENTITY % SFColor "CDATA">
<!ENTITY % MFColor "CDATA">
<!ENTITY % SFColorRGBA "CDATA">
<!ENTITY % MFColorRGBA "CDATA">
<!ENTITY % SFFloat "CDATA">
<!ENTITY % MFFloat "CDATA">
<!ENTITY % SFDouble "CDATA">
<!ENTITY % MFDouble "CDATA">
<!ENTITY % SFImage "CDATA">
<!ENTITY % MFImage "CDATA">
<!ENTITY % SFInt32 "CDATA">
<!ENTITY % MFInt32 "CDATA">
<!ENTITY % SFRotation "CDATA">
<!ENTITY % MFRotation "CDATA">
<!ENTITY % SFString "CDATA">
<!ENTITY % MFString "CDATA">
<!ENTITY % SFTime "CDATA">
<!ENTITY % MFTime "CDATA">
<!ENTITY % SFVec2f "CDATA">
<!ENTITY % MFVec2f "CDATA">
<!ENTITY % SFVec2d "CDATA">
<!ENTITY % MFVec2d "CDATA">
<!ENTITY % SFVec3f "CDATA">
<!ENTITY % MFVec3f "CDATA">
<!ENTITY % SFVec3d "CDATA">
<!ENTITY % MFVec3d "CDATA">
<!ENTITY % TextureCoordinateGeneratorModes "(SPHERE|CAMERASPACENORMAL|CAMERASPACEPOSITION|CAMERASPACEREFLECTIONVECTOR|SPHERE-LOCAL|COORD|COORD-EYE|NOISE|NOISE-EYE|SPHERE-REFLECT|SPHERE-REFLECT-LOCAL)">
<!-- User needs to append | after listing each new node in any of these extensions.
For an example, see examples/development/ProtoTagDtdDeclarationExamples.x3d -->
<!ENTITY % AppearanceNodeExtensions "">
<!ENTITY % AudioClipNodeExtensions "">
<!ENTITY % BindableNodeExtensions "">
<!ENTITY % ColorNodeExtensions "">
<!ENTITY % CoordinateNodeExtensions "">
<!ENTITY % FontStyleNodeExtensions "">
<!ENTITY % EventUtilityNodeExtensions "">
<!ENTITY % GeometryNodeExtensions "">
<!ENTITY % GroupingNodeExtensions "">
<!ENTITY % InterpolatorNodeExtensions "">
<!ENTITY % LightNodeExtensions "">
<!ENTITY % MaterialNodeExtensions "">
<!ENTITY % MetadataNodeExtensions "">
<!ENTITY % NormalNodeExtensions "">
<!ENTITY % ScriptNodeExtensions "">
<!ENTITY % SensorNodeExtensions "">
<!ENTITY % ShapeNodeExtensions "">
<!ENTITY % SoundNodeExtensions "">
<!-- MovieTexture must be able to appear twice: -->
<!ENTITY % MovieTextureNodeExtensions "">
<!ENTITY % TextureNodeExtensions "">
<!ENTITY % TextureCoordinateNodeExtensions "">
<!ENTITY % TextureTransformNodeExtensions "">
<!ENTITY % NetworkSensorNodeExtensions "">
<!ENTITY % WorldInfoNodeExtensions "">
<!-- Users defining PROTOs do not override any of the following parameter entity declarations. -->
<![%ImmersiveProfile;[
<!ENTITY % WildcardNodes " (ProtoInstance) " >
]]>
<![%InterchangeProfile;[
<!ENTITY % WildcardNodes " " >
]]>
<![%DISComponent;[
<!ENTITY % DISGroupingNodes " EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|" >
]]>
<![%GeoSpatialComponent;[
<!ENTITY % GeoCoordinateNode " GeoCoordinate|" >
<!ENTITY % GeoElevationGridNode " GeoElevationGrid|" >
<!ENTITY % GeoGroupingNodes " GeoLocation|GeoLOD|" >
<!ENTITY % GeoMetadataNode " GeoMetadata|" >
<!ENTITY % GeoOriginNode " GeoOrigin|" >
<!ENTITY % GeoBehaviorNodes " GeoPositionInterpolator|GeoTouchSensor|" >
<!ENTITY % GeoViewpointNode " GeoViewpoint|" >
]]>
<![%HAnimComponent;[
<!ENTITY % HAnimGroupingNodes " HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|" >
<!ENTITY % DisplacerNode " HAnimDisplacer|" >
]]>
<![%NurbsComponent;[
<!ENTITY % NurbsGeometryNodes " NurbsCurve|NurbsCurve2D|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|" >
<!ENTITY % NurbsInterpolators " NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|" >
<!ENTITY % NurbsControlCurveNodes " NurbsCurve2D|Contour2D|ContourPolyline2D " >
]]>
<![%Web3dExtensionComponent;[
<!ENTITY % Web3dExtensionGeometryNodes " XvlShell|" >
]]>
<!-- otherwise set tag lists to null strings if not previously defined -->
<!ENTITY % DISGroupingNodes "">
<!ENTITY % GeoCoordinateNode "">
<!ENTITY % GeoElevationGridNode "">
<!ENTITY % GeoGroupingNodes "">
<!ENTITY % GeoMetadataNode "">
<!ENTITY % GeoOriginNode "">
<!ENTITY % GeoBehaviorNodes "">
<!ENTITY % GeoViewpointNode "">
<!ENTITY % HAnimGroupingNodes "">
<!ENTITY % DisplacerNode "">
<!ENTITY % NurbsGeometryNodes "">
<!ENTITY % NurbsInterpolators "">
<!ENTITY % Web3dExtensionGroupingNodes "">
<!ENTITY % Web3dExtensionGeometryNodes "">
<!-- no further content-model extensions needed -->
<![%InterchangeProfile;[
<!ENTITY % AudioClipNodes "" >
<!ENTITY % FontStyleNodes "" >
<!ENTITY % EventUtilityNodes "" >
<!ENTITY % MovieTextureNodes "" >
<!ENTITY % NormalNodes "" >
<!ENTITY % ScriptNodes "" >
<!ENTITY % SoundNodes "" >
<!ENTITY % TextureCoordinateNodes "" >
<!ENTITY % TextureTransformNodes "" >
]]>
<!-- NetworkSensorNodes used by LoadSensor -->
<!ENTITY % NetworkSensorNodes " %NetworkSensorNodeExtensions; Anchor|AudioClip|GeoMetadata|ImageTexture|Inline|MovieTexture|ProtoInstance|Script ">
<![%ImmersiveProfile;[
<!ENTITY % AudioClipNodes " %AudioClipNodeExtensions; AudioClip " >
<!ENTITY % FontStyleNodes " %FontStyleNodeExtensions; FontStyle " >
<!ENTITY % EventUtilityNodes " %EventUtilityNodeExtensions; BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger " >
<!ENTITY % MovieTextureNodes " %MovieTextureNodeExtensions; MovieTexture " >
<!ENTITY % NormalNodes " %NormalNodeExtensions; Normal " >
<!ENTITY % ScriptNodes " %ScriptNodeExtensions; Script " >
<!ENTITY % SoundNodes " %SoundNodeExtensions; Sound " >
<!ENTITY % TextureCoordinateNodes " %TextureCoordinateNodeExtensions; TextureCoordinate|TextureCoordinateGenerator|MultiTextureCoordinate|NurbsTextureCoordinate " >
<!ENTITY % TextureTransformNodes " %TextureTransformNodeExtensions; TextureTransform|MultiTextureTransform " >
]]>
<![%InterchangeProfile;[
<!ENTITY % AppearanceNodes " Appearance " >
<!ENTITY % BehaviorLeafNodes " CoordinateInterpolator|KeySensor|OrientationInterpolator|PositionInterpolator|ScalarInterpolator|TimeSensor|TouchSensor " >
<!ENTITY % BindableNodes " Background|NavigationInfo|Viewpoint " >
<!ENTITY % ColorNodes " Color|ColorRGBA " >
<!ENTITY % CoordinateNodes " Coordinate|CoordinateDouble " >
<!ENTITY % GeometryNodes " IndexedFaceSet|IndexedLineSet|LineSet|PointSet " >
<!ENTITY % GroupingNodes " Anchor|Group|Inline|Transform " >
<!ENTITY % LightNodes " DirectionalLight " >
<!ENTITY % MaterialNodes " Material " >
<!ENTITY % ShapeNodes " Shape " >
<!ENTITY % Texture2DNodes " ImageTexture " >
<!ENTITY % WorldInfoNodes " WorldInfo " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % AppearanceNodes " %AppearanceNodeExtensions; Appearance " >
<!ENTITY % BehaviorLeafNodes " %InterpolatorNodeExtensions; %SensorNodeExtensions; %ScriptNodeExtensions; %GeoBehaviorNodes; %DisplacerNode; %NurbsInterpolators; %EventUtilityNodes;|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % BindableNodes " %BindableNodeExtensions; %GeoViewpointNode; Background|Fog|NavigationInfo|TextureBackground|Viewpoint " >
<!ENTITY % ColorNodes " %ColorNodeExtensions; Color|ColorRGBA " >
<!ENTITY % CoordinateNodes " %CoordinateNodeExtensions; %GeoCoordinateNode; Coordinate|CoordinateDouble " >
<!ENTITY % Geometry2DNodes " Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D " >
<!ENTITY % GeometryNodes " %GeometryNodeExtensions; %GeoElevationGridNode; %NurbsGeometryNodes; %Web3dExtensionGeometryNodes; %Geometry2DNodes;|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet " >
<!ENTITY % GroupingNodes " %GroupingNodeExtensions; %DISGroupingNodes; %GeoGroupingNodes; %HAnimGroupingNodes; %Web3dExtensionGroupingNodes; Anchor|Billboard|Collision|Group|Inline|LOD|StaticGroup|Switch|Transform " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % LightNodes " %LightNodeExtensions; DirectionalLight|SpotLight|PointLight " >
<!ENTITY % MaterialNodes " %MaterialNodeExtensions; Material " >
<!ENTITY % ShapeNodes " %ShapeNodeExtensions; Shape " >
<!ENTITY % Texture2DNodes " %TextureNodeExtensions; ImageTexture|MovieTexture|MultiTexture|PixelTexture " >
<!ENTITY % MultiTextureChildTextures " %TextureNodeExtensions; ImageTexture|MovieTexture|PixelTexture " >
<!ENTITY % WorldInfoNodes " %WorldInfoNodeExtensions; %GeoMetadataNode; WorldInfo " >
]]>
<![%InterchangeProfile;[
<!ENTITY % GeometricPropertyNodes " %ColorNodes; " >
<!ENTITY % AppearanceChildNodes " %MaterialNodes; " >
<!ENTITY % SceneLeafNodes " %LightNodes;|%ShapeNodes;|%WorldInfoNodes; " >
<!ENTITY % MetadataNodes " %MetadataNodeExtensions; MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString ">
<!ENTITY % ProtoNodes "" >
]]>
<![%ImmersiveProfile;[
<!ENTITY % GeometricPropertyNodes " %CoordinateNodes;|%ColorNodes;|%NormalNodes;|%TextureCoordinateNodes; " >
<!ENTITY % AppearanceChildNodes " %MaterialNodes;|%Texture2DNodes;|%TextureTransformNodes; " >
<!ENTITY % SceneLeafNodes " %GeoOriginNode; %LightNodes;|%ShapeNodes;|%SoundNodes;|%WorldInfoNodes; " >
<!ENTITY % OtherLeafNodes " AudioClip|LineProperties|FillProperties " >
<!ENTITY % MetadataNodes " %MetadataNodeExtensions; MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString ">
<!ENTITY % ProtoNodes " %OtherLeafNodes;|%AppearanceNodes;|%AppearanceChildNodes;|%BehaviorLeafNodes;|%BindableNodes;|%FontStyleNodes;|%GeometricPropertyNodes;|%GeometryNodes;|%GroupingNodes;|%MetadataNodes;|%SceneLeafNodes;|ProtoDeclare|ExternProtoDeclare|ProtoInstance " >
]]>
<!ENTITY % ChildrenNodes " %BehaviorLeafNodes;|%BindableNodes;|%GroupingNodes;|%SceneLeafNodes;|ROUTE|EXPORT|IMPORT " >
<![%InterchangeProfile;[
<!ENTITY % SceneNodes " %ChildrenNodes;|%WildcardNodes; " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % SceneNodes " ExternProtoDeclare|ProtoDeclare|%ChildrenNodes;|%WildcardNodes; " >
]]>
<!-- SensorNodes not used (yet, anyway) in tagset content-model definitions. -->
<!ENTITY % SensorNodes " Anchor|Collision|CylinderSensor|KeySensor|PlaneSensor|ProximitySensor|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor ">
<!ENTITY % DragSensors " CylinderSensor|PlaneSensor|SphereSensor ">
<!ENTITY % EnvironmentalSensorNodes " Collision|ProximitySensor|TimeSensor|VisibilitySensor ">
<!ENTITY % PointingDeviceSensors " Anchor|CylinderSensor|PlaneSensor|SphereSensor|TouchSensor ">
<!ENTITY % KeyDeviceSensors " ">
<!ENTITY % InterpolatorNodes " ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|NormalInterpolator|OrientationInterpolator|PositionInterpolator|PositionInterpolator2D|ScalarInterpolator ">
<!ENTITY % TimeDependentNodes " AudioClip|MovieTexture|TimeSensor ">
<!-- ***** X3D DTD ***** -->
<![%ImmersiveProfile;[
<!ELEMENT Anchor (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Anchor
description %SFString; #IMPLIED
parameter %MFString; #IMPLIED
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%InterchangeProfile;[
<!ELEMENT Anchor (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* >
<!ATTLIST Anchor
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%ImmersiveProfile;[
<!-- Complete, unordered, concisely enumerated version of Appearance by Heiko Grussbach. Prepended either-order FillProperties/LineProperties. -->
<!ELEMENT Appearance (IS?, (%MetadataNodes;)?,
( (FillProperties, LineProperties?)|(LineProperties, FillProperties)? )?,
( ((%MaterialNodes;), (
((%Texture2DNodes;),((%TextureTransformNodes;)|%WildcardNodes;)?) |
((%TextureTransformNodes;),((%Texture2DNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%Texture2DNodes;)|(%TextureTransformNodes;)|%WildcardNodes;)?) )? )
|((%Texture2DNodes;), (
((%MaterialNodes;),((%TextureTransformNodes;)|%WildcardNodes;)?) |
((%TextureTransformNodes;),((%MaterialNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%MaterialNodes;)|(%TextureTransformNodes;)|%WildcardNodes;)?) )? )
|((%TextureTransformNodes;), (
((%MaterialNodes;),((%Texture2DNodes;)|%WildcardNodes;)?) |
((%Texture2DNodes;),((%MaterialNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%MaterialNodes;)|(%Texture2DNodes;)|%WildcardNodes;)?) )? )
|(%WildcardNodes;, (
((%MaterialNodes;),((%Texture2DNodes;)|(%TextureTransformNodes;)|%WildcardNodes;)?) |
((%Texture2DNodes;),((%MaterialNodes;)|(%TextureTransformNodes;)|%WildcardNodes;)?) |
((%TextureTransformNodes;),((%MaterialNodes;)|(%Texture2DNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%MaterialNodes;)|(%Texture2DNodes;)|(%TextureTransformNodes;)|%WildcardNodes;)?) )? )
)? ) >
]]>
<![%InterchangeProfile;[
<!ELEMENT Appearance ( (%MetadataNodes;)?,
( ((%MaterialNodes;), (%Texture2DNodes;)? )
|((%Texture2DNodes;), (%MaterialNodes;)? )
)? ) >
]]>
<!ATTLIST Appearance
containerField NMTOKEN "appearance"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT AudioClip ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST AudioClip
description %SFString; #IMPLIED
loop %SFBool; "false"
pitch %SFFloat; "1.0"
startTime %SFTime; "0"
stopTime %SFTime; "0"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
url %MFString; #IMPLIED
containerField NMTOKEN "source"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Background ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Background
groundAngle %MFFloat; #IMPLIED
groundColor %MFColor; #IMPLIED
backUrl %MFString; #IMPLIED
bottomUrl %MFString; #IMPLIED
frontUrl %MFString; #IMPLIED
leftUrl %MFString; #IMPLIED
rightUrl %MFString; #IMPLIED
topUrl %MFString; #IMPLIED
skyAngle %MFFloat; #IMPLIED
skyColor %MFColor; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT Billboard (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Billboard
axisOfRotation %SFVec3f; "0 1 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanFilter ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanFilter
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanSequencer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanSequencer
key %MFFloat; #IMPLIED
keyValue %MFBool; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanToggle ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanToggle
toggle %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanTrigger
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!-- Geometry2D nodes -->
<!ELEMENT Arc2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Arc2D
radius %SFFloat; "1"
startAngle %SFFloat; "0"
endAngle %SFFloat; "1.570796"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ArcClose2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ArcClose2D
radius %SFFloat; "1"
startAngle %SFFloat; "0"
endAngle %SFFloat; "1.570796"
closureType (PIE|CHORD) "PIE"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Circle2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Circle2D
radius %SFFloat; "1"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Disk2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Disk2D
innerRadius %SFFloat; "0"
outerRadius %SFFloat; "1"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Polyline2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Polyline2D
lineSegments %MFVec2f; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Polypoint2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Polypoint2D
point %MFVec2f; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Rectangle2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Rectangle2D
size %SFVec2f; "2 2"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TriangleSet2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TriangleSet2D
vertices %MFVec2f; #IMPLIED
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT Box ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Box
size %SFVec3f; "2 2 2"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Collision ( (IS?), (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Collision
enabled %SFBool; "true"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<!ELEMENT Color ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Color
color %MFColor; #IMPLIED
class CDATA #IMPLIED
containerField NMTOKEN "color"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ColorRGBA ((IS?), (%MetadataNodes;)?)>
<!ATTLIST ColorRGBA
color %MFColorRGBA; #IMPLIED
containerField NMTOKEN "color"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT component EMPTY>
<!ATTLIST component
name %componentNames; #REQUIRED
level %componentLevels; #REQUIRED>
<![%ImmersiveProfile;[
<!ELEMENT ColorInterpolator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ColorInterpolator
key %MFFloat; #IMPLIED
keyValue %MFColor; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Cone ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Cone
bottomRadius %SFFloat; "1"
height %SFFloat; "2"
side %SFBool; "true"
bottom %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Coordinate ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Coordinate
point %MFVec3f; #IMPLIED
containerField NMTOKEN "coord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CoordinateDouble ((IS?), (%MetadataNodes;)?)>
<!ATTLIST CoordinateDouble
point %MFVec3d; #IMPLIED
containerField NMTOKEN "coord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CoordinateInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST CoordinateInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT CoordinateInterpolator2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST CoordinateInterpolator2D
key %MFFloat; #IMPLIED
keyValue %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Cylinder ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Cylinder
bottom %SFBool; "true"
height %SFFloat; "2"
radius %SFFloat; "1"
side %SFBool; "true"
top %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CylinderSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST CylinderSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
diskAngle %SFFloat; "0.26179167"
maxAngle %SFFloat; "-1"
minAngle %SFFloat; "0"
offset %SFFloat; "0"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT DirectionalLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST DirectionalLight
ambientIntensity %SFFloat; "0"
color %SFColor; "1 1 1"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
on %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%InterchangeProfile;[
<!ELEMENT DirectionalLight (%MetadataNodes;)? >
<!ATTLIST DirectionalLight
color %SFColor; "1 1 1"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
on %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!-- Complete, concisely enumerated unordered version of ElevationGrid by Heiko Grussbach -->
<!ELEMENT ElevationGrid (IS?, (%MetadataNodes;)?, (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
|((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
|((%TextureCoordinateNodes;), (((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
|(%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
)? ) >
<!ATTLIST ElevationGrid
height %MFFloat; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
creaseAngle %SFFloat; "0"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
xDimension %SFInt32; "0"
xSpacing %SFFloat; "1.0"
zDimension %SFInt32; "0"
zSpacing %SFFloat; "1.0"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ExternProtoDeclare ( field* ) >
<!ATTLIST ExternProtoDeclare
name NMTOKEN #REQUIRED
url %MFString; #REQUIRED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!ELEMENT Extrusion ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Extrusion
beginCap %SFBool; "true"
ccw %SFBool; "true"
convex %SFBool; "true"
creaseAngle %SFFloat; "0.0"
crossSection %MFVec2f; "1 1 1 -1 -1 -1 -1 1 1 1"
endCap %SFBool; "true"
orientation %MFRotation; "0 0 1 0"
scale %MFVec2f; "1 1"
solid %SFBool; "true"
spine %MFVec3f; "0 0 0 0 1 0"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- field is only used in a Script, ProtoDeclare or ExternProtoDeclare.
Initialization values for simple types go in the value attribute.
Contained content tags are only for initialization of SFNode or MFNode values. -->
<!ELEMENT field ( %ProtoNodes; )* >
<!ATTLIST field
name NMTOKEN #REQUIRED
accessType (inputOnly|outputOnly|initializeOnly|inputOutput) #REQUIRED
type ( %X3dFieldTypes; ) #REQUIRED
value CDATA #IMPLIED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!-- fieldValue resets default field values inside a ProtoInstance.
Initialization values for simple types go in the value attribute. Otherwise
contained-content tags are used for initialization of SFNode or MFNode values. -->
<!ELEMENT fieldValue ( %ProtoNodes; )* >
<!ATTLIST fieldValue
name NMTOKEN #REQUIRED
value CDATA #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT FillProperties ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST FillProperties
filled %SFBool; "true"
hatched %SFBool; "true"
hatchStyle %SFInt32; "1"
hatchColor %SFColor; "1 1 1"
containerField NMTOKEN "fillProperties"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Fog ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Fog
color %SFColor; "1 1 1"
fogType (LINEAR|EXPONENTIAL) "LINEAR"
visibilityRange %SFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT FontStyle ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST FontStyle
family %MFString; '"SERIF"'
horizontal %SFBool; "true"
justify %MFString; '"BEGIN"'
language %SFString; #IMPLIED
leftToRight %SFBool; "true"
size %SFFloat; "1.0"
spacing %SFFloat; "1.0"
style (PLAIN|BOLD|ITALIC|BOLDITALIC) "PLAIN"
topToBottom %SFBool; "true"
containerField NMTOKEN "fontStyle"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Minimum supported values:
family ' "SERIF" "SANS" "TYPEWRITER" '
justify ' "FIRST" "BEGIN" "MIDDLE" "END" ' -->
]]>
<!ELEMENT Group (IS?, (%MetadataNodes;)?, (%ChildrenNodes;|%WildcardNodes;)*) >
<!ATTLIST Group
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ImageTexture ((IS?), (%MetadataNodes;)?)>
<!ATTLIST ImageTexture
url %MFString; #IMPLIED
repeatS %SFBool; "true"
repeatT %SFBool; "true"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Complete, unordered, concisely enumerated version of IndexedFaceSet content model by Heiko Grussbach -->
<!ENTITY % ColorCoordinateNormalTextureCoordinateContentModel "(IS?, (%MetadataNodes;)?, (
((%ColorNodes;), (
((%CoordinateNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%CoordinateNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%CoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%CoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%CoordinateNodes;), (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%NormalNodes;), (
((%ColorNodes;), ( ((%CoordinateNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%TextureCoordinateNodes;), (
((%ColorNodes;), ( ((%CoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? ) )? )
|(%WildcardNodes;, (
((%ColorNodes;), ( ((%CoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
)? )">
<![%ImmersiveProfile;[
<!ELEMENT IndexedFaceSet ( %ColorCoordinateNormalTextureCoordinateContentModel; ) >
<!ELEMENT IndexedLineSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
<!ELEMENT LineSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
]]>
<![%InterchangeProfile;[
<!ELEMENT IndexedFaceSet ( (%MetadataNodes;)?, ((%ColorNodes;), Coordinate?)|(Coordinate, (%ColorNodes;)?) )? >
<!ELEMENT IndexedLineSet ( (%MetadataNodes;)?, ( Color, Coordinate? )|( Coordinate, Color?) )? >
<!ELEMENT LineSet ( (%MetadataNodes;)?, ( Color, Coordinate? )|( Coordinate, Color?) )? >
]]>
<!ATTLIST IndexedFaceSet
ccw %SFBool; "true"
colorIndex %MFInt32; #IMPLIED
colorPerVertex %SFBool; "true"
convex %SFBool; "true"
coordIndex %MFInt32; #IMPLIED
creaseAngle %SFFloat; "0"
normalIndex %MFInt32; #IMPLIED
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
texCoordIndex %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ATTLIST IndexedLineSet
colorIndex %MFInt32; #IMPLIED
colorPerVertex %SFBool; "true"
coordIndex %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ATTLIST LineSet
vertexCount %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Inline ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Inline
load %SFBool; "true"
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT EXPORT EMPTY>
<!ATTLIST EXPORT
localDEF IDREF #REQUIRED
AS NMTOKEN #IMPLIED>
<!ELEMENT IMPORT EMPTY>
<!ATTLIST IMPORT
InlineDEF IDREF #REQUIRED
importedDEF NMTOKEN #REQUIRED
AS ID #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT IntegerSequencer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST IntegerSequencer
key %MFFloat; #IMPLIED
keyValue %MFInt32; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IntegerTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST IntegerTrigger
integerKey %SFInt32; "-1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IS (connect)+ >
<!ELEMENT connect EMPTY >
<!ATTLIST connect
nodeField NMTOKEN #REQUIRED
protoField NMTOKEN #REQUIRED>
]]>
<!ELEMENT KeySensor ((IS?), (%MetadataNodes;)?)>
<!ATTLIST KeySensor
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT LineProperties ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST LineProperties
applied %SFBool; "true"
linetype %SFInt32; "1"
linewidthScaleFactor %SFFloat; "0"
containerField NMTOKEN "lineProperties"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT LoadSensor (IS?, (%MetadataNodes;)?, (%NetworkSensorNodes;|%WildcardNodes;)*)>
<!ATTLIST LoadSensor
enabled %SFBool; "true"
timeOut %SFTime; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT LOD (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST LOD
center %SFVec3f; "0 0 0"
range %MFFloat; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Material ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Material
ambientIntensity %SFFloat; "0.2"
diffuseColor %SFColor; "0.8 0.8 0.8"
emissiveColor %SFColor; "0 0 0"
shininess %SFFloat; "0.2"
specularColor %SFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "material"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%InterchangeProfile;[
<!ELEMENT Material ( (%MetadataNodes;)? ) >
<!ATTLIST Material
diffuseColor %SFColor; "0.8 0.8 0.8"
emissiveColor %SFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "material"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- *** XHTML exerpts to define meta tag *** -->
<!-- i18n, language, meta tag definitions from XHTML 1.0
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd -->
<!ENTITY % LanguageCode "NMTOKEN">
<!-- a language code, as per [IETF RFC3066/BCP47] ftp://ftp.isi.edu/in-notes/bcp/bcp47.txt -->
<!-- internationalization attributes
lang language code (backwards compatible)
xml:lang language code (as per XML 1.0 spec)
dir direction for weak/neutral text
-->
<!ENTITY % i18n "lang %LanguageCode; #IMPLIED
xml:lang %LanguageCode; #IMPLIED
dir (ltr|rtl) #IMPLIED">
<!ELEMENT head (component*, meta*)>
<!-- generic metadata information, matches HTML usage, made attribute 'name' required -->
<!ELEMENT meta EMPTY>
<!ATTLIST meta
http-equiv CDATA #IMPLIED
name CDATA #REQUIRED
content CDATA #REQUIRED
scheme CDATA #IMPLIED
%i18n; >
<!-- formal X3D Metadata nodes -->
<!ELEMENT MetadataDouble (IS?, (%MetadataNodes;|%WildcardNodes;)?)>
<!ATTLIST MetadataDouble
name %SFString; #IMPLIED
value %MFDouble; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MetadataFloat (IS?, (%MetadataNodes;|%WildcardNodes;)?)>
<!ATTLIST MetadataFloat
name %SFString; #IMPLIED
value %MFFloat; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MetadataInteger (IS?, (%MetadataNodes;|%WildcardNodes;)?)>
<!ATTLIST MetadataInteger
name %SFString; #IMPLIED
value %MFInt32; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MetadataString (IS?, (%MetadataNodes;|%WildcardNodes;)?)>
<!ATTLIST MetadataString
name %SFString; #IMPLIED
value %MFString; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- containerField discriminates whether child Metadata node(s) are 'metadata' or 'value' fields.
NMTOKEN vice enumeration, since containerField might have another value as field in a ProtoInstance. -->
<!ELEMENT MetadataSet (IS?, (%MetadataNodes;|%WildcardNodes;)*)>
<!ATTLIST MetadataSet
reference %SFString; #IMPLIED
name %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!-- FAQ: MovieTexture
containerField='source' when used as a Sound source,
containerField='texture' when used as a Appearance texture source-->
<!ELEMENT MovieTexture ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST MovieTexture
loop %SFBool; "false"
speed %SFFloat; "1.0"
startTime %SFTime; "0"
stopTime %SFTime; "0"
url %MFString; #IMPLIED
repeatS %SFBool; "true"
repeatT %SFBool; "true"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTexture ( (IS?), (%MetadataNodes;)?, (%MultiTextureChildTextures;|%WildcardNodes; )* ) >
<!ATTLIST MultiTexture
mode %MFString; #IMPLIED
source %MFString; #IMPLIED
function %MFString; #IMPLIED
color %SFColor; "1 1 1"
alpha %SFFloat; "1.0"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTextureCoordinate ((IS?), (%MetadataNodes;)?, (TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)* ) >
<!ATTLIST MultiTextureCoordinate
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT NavigationInfo ((IS?), (%MetadataNodes;)?)>
<!ATTLIST NavigationInfo
avatarSize %MFFloat; "0.25 1.6 0.75"
headlight %SFBool; "true"
speed %SFFloat; "1"
type %MFString; ""EXAMINE" "ANY""
transitionType %MFString; ""ANIMATE""
visibilityLimit %SFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT Normal ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Normal
vector %MFVec3f; #IMPLIED
containerField NMTOKEN "normal"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NormalInterpolator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST NormalInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT OrientationInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST OrientationInterpolator
key %MFFloat; #IMPLIED
keyValue %MFRotation; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT PixelTexture ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PixelTexture
image %SFImage; "0 0 0"
repeatS %SFBool; "true"
repeatT %SFBool; "true"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PlaneSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PlaneSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
enabled %SFBool; "true"
maxPosition %SFVec2f; "-1 -1"
minPosition %SFVec2f; "0 0"
offset %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PointLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PointLight
ambientIntensity %SFFloat; "0"
attenuation %SFVec3f; "1 0 0"
color %SFColor; "1 1 1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
on %SFBool; "true"
radius %SFFloat; "100"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PointSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
]]>
<![%InterchangeProfile;[
<!ELEMENT PointSet ( (%MetadataNodes;)?, ( ( Color, Coordinate? )|( Coordinate, Color? ) )? ) >
]]>
<!ATTLIST PointSet
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PositionInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST PositionInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT PositionInterpolator2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PositionInterpolator2D
key %MFFloat; #IMPLIED
keyValue %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT ProtoInterface ( field* ) >
<!-- choice of required first node contained in ProtoBody constrained by valid ( %ProtoNodes; ) rather than %SceneNodes; ) > -->
<!ELEMENT ProtoBody ( ( %ProtoNodes; ), ( %SceneNodes; )* ) >
<!ELEMENT ProtoDeclare (ProtoInterface? , ProtoBody) > <!-- (|( field*, ( %ProtoNodes; ), ( %SceneNodes; )* )) -->
<!ATTLIST ProtoDeclare
name NMTOKEN #REQUIRED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!ELEMENT ProtoInstance ( fieldValue* , (IS?) ) >
<!-- ( %SceneNodes; )* --><!-- direct children disallowed, let fieldValue name="children" handle them -->
<!ATTLIST ProtoInstance
name NMTOKEN #REQUIRED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ProximitySensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ProximitySensor
center %SFVec3f; "0 0 0"
size %SFVec3f; "0 0 0"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT ROUTE EMPTY>
<!ATTLIST ROUTE
fromNode IDREF #REQUIRED
fromField NMTOKEN #REQUIRED
toNode IDREF #REQUIRED
toField NMTOKEN #REQUIRED>
<!ELEMENT ScalarInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST ScalarInterpolator
key %MFFloat; #IMPLIED
keyValue %MFFloat; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Scene ((%MetadataNodes;)?, (%SceneNodes;)*)>
<!-- Script is similar to PROTO regarding user definition of multiple fields -->
<![%ImmersiveProfile;[
<!-- script code should be included as CDATA sections. watch out on content-model order, originally ( #PCDATA|field )* -->
<!ELEMENT Script ( #PCDATA|%MetadataNodes;|field|IS )* >
<!ATTLIST Script
url %MFString; #IMPLIED
directOutput %SFBool; "false"
mustEvaluate %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Shape (IS?, (%MetadataNodes;)?, (
( (%AppearanceNodes;), (( %GeometryNodes; )|%WildcardNodes;)? ) |
( ( %GeometryNodes; ), ((%AppearanceNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, (( %GeometryNodes; )|(%AppearanceNodes;)|%WildcardNodes;)? )
)? ) >
]]>
<![%InterchangeProfile;[
<!ELEMENT Shape ( (%MetadataNodes;)?,
( (%AppearanceNodes;), ( %GeometryNodes; )? ) |
( ( %GeometryNodes; ), (%AppearanceNodes;)? )
)? >
]]>
<!ATTLIST Shape
containerField NMTOKEN "children"
class CDATA #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT Sound (IS?, (%MetadataNodes;)?, ( %AudioClipNodes;|%MovieTextureNodes;|%WildcardNodes; )? ) >
<!ATTLIST Sound
direction %SFVec3f; "0 0 1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
maxBack %SFFloat; "10"
maxFront %SFFloat; "10"
minBack %SFFloat; "1"
minFront %SFFloat; "1"
priority %SFFloat; "0"
spatialize %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Sphere ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Sphere
radius %SFFloat; "1"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT SphereSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SphereSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
enabled %SFBool; "true"
offset %SFRotation; "0 1 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT SpotLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SpotLight
ambientIntensity %SFFloat; "0"
attenuation %SFVec3f; "1 0 0"
beamWidth %SFFloat; "1.570796"
color %SFColor; "1 1 1"
cutOffAngle %SFFloat; "0.785398"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
on %SFBool; "true"
radius %SFFloat; "100"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT StaticGroup (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST StaticGroup
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT StringSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST StringSensor
enabled %SFBool; "true"
deletionAllowed %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Switch (IS?, (%MetadataNodes;)?, (%ChildrenNodes;|%WildcardNodes;)*)>
<!ATTLIST Switch
whichChoice %SFInt32; "-1"
containerField NMTOKEN "children"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT Text (IS?, (%MetadataNodes;)?, ( (%FontStyleNodes;)?|%WildcardNodes; ) ) >
<!ATTLIST Text
string %MFString; #IMPLIED
length %MFFloat; #IMPLIED
maxExtent %SFFloat; "0.0"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- backTexture, bottomTexture, frontTexture, leftTexture, rightTexture, topTexture; could use rule for 0..6 children here -->
<!ELEMENT TextureBackground (IS?, (%MetadataNodes;)?, (%Texture2DNodes;)* )>
<!ATTLIST TextureBackground
groundAngle %MFFloat; #IMPLIED
groundColor %MFColor; #IMPLIED
skyAngle %MFFloat; #IMPLIED
skyColor %MFColor; "0 0 0"
transparency %MFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<!ELEMENT TextureCoordinate ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TextureCoordinate
point %MFVec2f; #IMPLIED
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT TextureCoordinateGenerator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureCoordinateGenerator
mode %TextureCoordinateGeneratorModes; "SPHERE"
parameter %MFFloat; #IMPLIED
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureTransform ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureTransform
center %SFVec2f; "0 0"
rotation %SFFloat; "0"
scale %SFVec2f; "1 1"
translation %SFVec2f; "0 0"
containerField NMTOKEN "textureTransform"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTextureTransform ((IS?), (TextureTransform|ProtoInstance)* ) >
<!ATTLIST MultiTextureTransform
containerField NMTOKEN "textureTransform"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT TimeSensor ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TimeSensor
cycleInterval %SFTime; "1.0"
enabled %SFBool; "true"
loop %SFBool; "false"
startTime %SFTime; "0"
stopTime %SFTime; "0"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT TimeTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TimeTrigger
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TouchSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TouchSensor
description %SFString; #IMPLIED
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Transform (IS?, (%MetadataNodes;)?, (%ChildrenNodes;|%WildcardNodes;)*)>
<!ATTLIST Transform
center %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IndexedTriangleFanSet %ColorCoordinateNormalTextureCoordinateContentModel;>
<!ATTLIST IndexedTriangleFanSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IndexedTriangleSet %ColorCoordinateNormalTextureCoordinateContentModel;>
<!ATTLIST IndexedTriangleSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IndexedTriangleStripSet %ColorCoordinateNormalTextureCoordinateContentModel;>
<!ATTLIST IndexedTriangleStripSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TriangleFanSet %ColorCoordinateNormalTextureCoordinateContentModel;>
<!ATTLIST TriangleFanSet
fanCount %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TriangleSet %ColorCoordinateNormalTextureCoordinateContentModel;>
<!ATTLIST TriangleSet
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TriangleStripSet %ColorCoordinateNormalTextureCoordinateContentModel;>
<!ATTLIST TriangleStripSet
stripCount %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Viewpoint ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Viewpoint
fieldOfView %SFFloat; "0.785398"
jump %SFBool; "true"
orientation %SFRotation; "0 0 1 0"
position %SFVec3f; "0 0 10"
description %SFString; #IMPLIED
centerOfRotation %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- centerOfRotation point relates to NavigationInfo EXAMINE mode. -->
<![%ImmersiveProfile;[
<!ELEMENT VisibilitySensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST VisibilitySensor
center %SFVec3f; "0 0 0"
enabled %SFBool; "true"
size %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT WorldInfo ((IS?), (%MetadataNodes;)?)>
<!ATTLIST WorldInfo
info %MFString; #IMPLIED
title %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT X3D (head?, Scene)>
<!ATTLIST X3D
xmlns:xsd CDATA "http://www.w3.org/2001/XMLSchema-instance"
xsd:noNamespaceSchemaLocation CDATA "http://www.web3d.org/specifications/x3d-3.0.xsd"
profile %profileNames; #REQUIRED
version (3.0) #REQUIRED>
<!-- EspduTransform includes DIS CollisionPdu DetonatePdu FirePdu -->
<![%DISComponent;[
<!ELEMENT EspduTransform (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST EspduTransform
enabled %SFBool; "true"
marking %SFString; #IMPLIED
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
forceID %SFInt32; "0"
entityKind %SFInt32; "0"
entityDomain %SFInt32; "0"
entityCountry %SFInt32; "0"
entityCategory %SFInt32; "0"
entitySubCategory %SFInt32; "0"
entitySpecific %SFInt32; "0"
entityExtra %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
center %SFVec3f; "0 0 0"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
deadReckoning %SFInt32; "0"
linearVelocity %SFVec3f; "0 0 0"
linearAcceleration %SFVec3f; "0 0 0"
fired1 %SFBool; "false"
fired2 %SFBool; "false"
collisionType %SFInt32; "0"
detonationLocation %SFVec3f; "0 0 0"
detonationRelativeLocation %SFVec3f; "0 0 0"
detonationResult %SFInt32; "0"
eventApplicationID %SFInt32; "1"
eventEntityID %SFInt32; "0"
eventNumber %SFInt32; "0"
eventSiteID %SFInt32; "0"
munitionStartPoint %SFVec3f; "0 0 0"
munitionEndPoint %SFVec3f; "0 0 0"
warhead %SFInt32; "0"
fuse %SFInt32; "0"
munitionQuantity %SFInt32; "0"
firingRate %SFInt32; "0"
firingRange %SFFloat; "0"
munitionSiteID %SFInt32; "0"
munitionApplicationID %SFInt32; "1"
munitionEntityID %SFInt32; "0"
fireMissionIndex %SFInt32; "0"
articulationParameterCount %SFInt32; "0"
articulationParameterDesignatorArray %MFInt32; #IMPLIED
articulationParameterChangeIndicatorArray %MFInt32; #IMPLIED
articulationParameterIdPartAttachedToArray %MFInt32; #IMPLIED
articulationParameterTypeArray %MFInt32; #IMPLIED
articulationParameterArray %MFFloat; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT ReceiverPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ReceiverPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
receivedPower %SFFloat; "0.0"
receiverState %SFInt32; "0"
transmitterSiteID %SFInt32; "0"
transmitterApplicationID %SFInt32; "0"
transmitterEntityID %SFInt32; "0"
transmitterRadioID %SFInt32; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT SignalPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SignalPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
encodingScheme %SFInt32; "0"
tdlType %SFInt32; "0"
sampleRate %SFInt32; "0"
samples %SFInt32; "0"
dataLength %SFInt32; "0"
data %MFInt32; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT TransmitterPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TransmitterPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
antennaLocation %SFVec3f; "0 0 0"
antennaPatternLength %SFInt32; "0"
antennaPatternType %SFInt32; "0"
cryptoKeyID %SFInt32; "0"
cryptoSystem %SFInt32; "0"
frequency %SFInt32; "0"
inputSource %SFInt32; "0"
lengthOfModulationParameters %SFInt32; "0"
modulationTypeDetail %SFInt32; "0"
modulationTypeMajor %SFInt32; "0"
modulationTypeSpreadSpectrum %SFInt32; "0"
modulationTypeSystem %SFInt32; "0"
power %SFFloat; "0.0"
radioEntityTypeCategory %SFInt32; "0"
radioEntityTypeCountry %SFInt32; "0"
radioEntityTypeDomain %SFInt32; "0"
radioEntityTypeKind %SFInt32; "0"
radioEntityTypeNomenclature %SFInt32; "0"
radioEntityTypeNomenclatureVersion %SFInt32; "0"
relativeAntennaLocation %SFVec3f; "0 0 0"
transmitFrequencyBandwidth %SFFloat; "0.0"
transmitState %SFInt32; "0"
containerField NMTOKEN "children"
class CDATA ""
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%GeoSpatialComponent;[
<!ELEMENT GeoCoordinate ( IS?, (%MetadataNodes;)?, GeoOrigin? ) > <!-- X3DCoordinateNodeType -->
<!ATTLIST GeoCoordinate
geoSystem %MFString; '"GD" "WE"'
point %MFVec3d; #IMPLIED
containerField NMTOKEN "coord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- need to restrict GeoOrigin to first element, or relax schema restriction -->
<!ELEMENT GeoElevationGrid (IS?, (%MetadataNodes;)?, (
((%ColorNodes;), (
(GeoOrigin, ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( (GeoOrigin,((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
(GeoOrigin,((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( (GeoOrigin,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|(GeoOrigin, (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%NormalNodes;), (
((%ColorNodes;), ( (GeoOrigin,((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),(GeoOrigin|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%TextureCoordinateNodes;), (
((%ColorNodes;), ( (GeoOrigin,((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),(GeoOrigin|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? ) )? )
|(%WildcardNodes;, (
((%ColorNodes;), ( (GeoOrigin,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
)? ) >
<!ATTLIST GeoElevationGrid
geoSystem %MFString; '"GD" "WE"'
geoGridOrigin %SFVec3d; "0 0 0"
xDimension %SFInt32; "0"
xSpacing %SFDouble; "1.0"
yScale %SFFloat; "1.0"
zDimension %SFInt32; "0"
zSpacing %SFDouble; "1.0"
height %MFDouble; "0 0"
normalPerVertex %SFBool; "true"
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
creaseAngle %SFFloat; "0"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoLocation (IS?, (%MetadataNodes;)?,
( %ChildrenNodes;|%WildcardNodes; )*, (GeoOrigin, ( %ChildrenNodes;|%WildcardNodes; )* )? ) >
<!ATTLIST GeoLocation
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoLOD (IS?, (%MetadataNodes;)?,
( %ChildrenNodes;|%WildcardNodes; )*, (GeoOrigin, ( %ChildrenNodes;|%WildcardNodes; )* )? ) >
<!ATTLIST GeoLOD
geoSystem %MFString; '"GD" "WE"'
rootUrl %MFString; #IMPLIED
child1Url %MFString; #IMPLIED
child2Url %MFString; #IMPLIED
child3Url %MFString; #IMPLIED
child4Url %MFString; #IMPLIED
range %SFFloat; "10"
center %SFVec3d; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoMetadata ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST GeoMetadata
url %MFString; #IMPLIED
data IDREFS #IMPLIED
summary %MFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!--
title %SFString; #IMPLIED
description %SFString; #IMPLIED
coordinateSystem %SFString; #IMPLIED
horizontalDatum %SFString; #IMPLIED
verticalDatum %SFString; #IMPLIED
ellipsoid %SFString; #IMPLIED
extent %SFString; #IMPLIED
resolution %SFString; #IMPLIED
originator %SFString; #IMPLIED
copyright %SFString; #IMPLIED
date %SFString; #IMPLIED
metadataFormat %SFString; #IMPLIED
dataUrl %SFString; #IMPLIED
dataFormat %SFString; #IMPLIED
-->
<!ELEMENT GeoOrigin ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST GeoOrigin
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
rotateYUp %SFBool; "false"
containerField NMTOKEN "geoOrigin"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoPositionInterpolator ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoPositionInterpolator
geoSystem %MFString; '"GD" "WE"'
key %MFFloat; #IMPLIED
keyValue %MFVec3d; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoTouchSensor ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoTouchSensor
geoSystem %MFString; '"GD" "WE"'
enabled %SFBool; "true"
description %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoViewpoint ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoViewpoint
geoSystem %MFString; '"GD" "WE"'
description %SFString; #IMPLIED
position %SFVec3d; "0 0 100000"
orientation %SFRotation; "0 0 1 0"
fieldOfView %SFFloat; "0.785398"
jump %SFBool; "true"
navType %MFString; '"EXAMINE" "ANY"'
headlight %SFBool; "true"
speedFactor %SFFloat; "1.0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- Note that setting JointNames as enumerations does not permit validation of other names. -->
<![%HAnimComponent;[
<!ENTITY % JointNames "(
c1|c2|c3|c4|c5|c6|c7|jaw|HumanoidRoot|l_acromioclavicular|l_ankle|l_calf|
l_clavicle|l_elbow|l_eyeball|l_eyeball_joint|l_eyebrow|l_eyebrow_joint|
l_eyelid|l_eyelid_joint|l_forearm|l_forefoot|l_hand|l_hindfoot|l_hip|
l_index_distal|l_index_metacarpal|l_index_middle|l_index_proximal|
l_index0|l_index1|l_index2|l_index3|l_knee|l_metatarsal|l_middistal|
l_middle_distal|l_middle_metacarpal|l_middle_middle|l_middle_proximal|
l_middle0|l_middle1|l_middle2|l_middle3|l_midproximal|l_midtarsal|
l_pinky_distal|l_pinky_metacarpal|l_pinky_middle|l_pinky_proximal|
l_pinky0|l_pinky1|l_pinky2|l_pinky3|l_ring_distal|l_ring_metacarpal|
l_ring_middle|l_ring_proximal|l_ring0|l_ring1|l_ring2|l_ring3|l_scapula|
l_shoulder|l_sternoclavicular|l_subtalar|l_thigh|l_thumb_distal|
l_thumb_metacarpal|l_thumb_proximal|l_thumb1|l_thumb2|l_thumb3|
l_upperarm|l_wrist|l1|l2|l3|l4|l5|pelvis|r_acromioclavicular|r_ankle|
r_calf|r_clavicle|r_elbow|r_eyeball|r_eyeball_joint|r_eyebrow|
r_eyebrow_joint|r_eyelid|r_eyelid_joint|r_forearm|r_forefoot|r_hand|
r_hindfoot|r_hip|r_index_distal|r_index_metacarpal|r_index_middle|
r_index_proximal|r_index0|r_index1|r_index2|r_index3|r_knee|r_metatarsal|
r_middistal|r_middle_distal|r_middle_metacarpal|r_middle_middle|
r_middle_proximal|r_middle0|r_middle1|r_middle2|r_middle3|r_midproximal|
r_midtarsal|r_pinky_distal|r_pinky_metacarpal|r_pinky_middle|
r_pinky_proximal|r_pinky0|r_pinky1|r_pinky2|r_pinky3|r_ring_distal|
r_ring_metacarpal|r_ring_middle|r_ring_proximal|r_ring0|r_ring1|r_ring2|
r_ring3|r_scapula|r_shoulder|r_sternoclavicular|r_subtalar|r_thigh|
r_thumb_distal|r_thumb_metacarpal|r_thumb_proximal|r_thumb1|r_thumb2|
r_thumb3|r_upperarm|r_wrist|sacroiliac|sacrum|skull|skullbase|
t1|t2|t3|t4|t5|t6|t7|t8|t9|t10|t11|t12|temporomandibular|
vc1|vc2|vc3|vc4|vc5|vc6|vc7|vl1|vl2|vl3|vl4|vl5|
vt1|vt2|vt3|vt4|vt5|vt6|vt7|vt8|vt9|vt10|vt11|vt12)" >
<!ELEMENT HAnimDisplacer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST HAnimDisplacer
name %SFString; #IMPLIED
coordIndex %MFInt32; #IMPLIED
displacements %MFVec3f; #IMPLIED
weight %SFFloat; "0.0"
containerField NMTOKEN "displacers"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT HAnimHumanoid (IS?, (%MetadataNodes;)?,
(HAnimJoint*, HAnimSegment*, HAnimSite*, (%CoordinateNodes;)?, (%NormalNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) ) >
<!-- skeleton/joints, segments, sites, skinCoord, skinNormal, skin/viewpoints -->
<!-- note that joints, segments and sites should be USE nodes. skin Shapes will USE preceding skinCoord, skinNormal definitions. -->
<!ATTLIST HAnimHumanoid
name %SFString; #IMPLIED
version %SFString; #IMPLIED
info %MFString; #IMPLIED
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- not treated as separate attributes, instead these are
encoded as "attribute=value" SFString entries in the
MFString info field.
humanoidVersion %SFString; #IMPLIED
authorName %SFString; #IMPLIED
authorEmail %SFString; #IMPLIED
copyright %SFString; #IMPLIED
creationDate %SFString; #IMPLIED
usageRestrictions %SFString; #IMPLIED
age %SFString; #IMPLIED
gender %SFString; #IMPLIED
height %SFString; #IMPLIED
weight %SFString; #IMPLIED
-->
<![%HAnimComponent;[
<!ELEMENT HAnimJoint (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|HAnimDisplacer|%WildcardNodes; )* ) >
<!ATTLIST HAnimJoint
name %JointNames; #IMPLIED
ulimit %MFFloat; #IMPLIED
llimit %MFFloat; #IMPLIED
limitOrientation %SFRotation; "0 0 1 0"
skinCoordIndex %MFInt32; #IMPLIED
skinCoordWeight %MFFloat; #IMPLIED
stiffness %MFFloat; "0 0 0"
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Multiple HAnimDisplacer nodes must appear consecutively inside HAnimSegment -->
<!ELEMENT HAnimSegment (IS?, (%MetadataNodes;)?, (
((%ChildrenNodes;|%WildcardNodes;)*, ((Coordinate, HAnimDisplacer*)|(HAnimDisplacer+, Coordinate?))? ) |
(Coordinate, (((%ChildrenNodes;)*, HAnimDisplacer*)|(HAnimDisplacer+, (%ChildrenNodes;|%WildcardNodes;)*))? ) |
(HAnimDisplacer+, ((Coordinate, (%ChildrenNodes;|%WildcardNodes;)*)|((%ChildrenNodes;|%WildcardNodes;)*, Coordinate?))? )?
) ) >
<!ATTLIST HAnimSegment
name %JointNames; #IMPLIED
mass %SFFloat; "0"
centerOfMass %SFVec3f; "0 0 0"
momentsOfInertia %MFFloat; "0 0 0 0 0 0 0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT HAnimSite (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST HAnimSite
name %SFString; #IMPLIED
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%NurbsComponent;[
<!ELEMENT Contour2D (IS?, (%MetadataNodes;)?, ( %NurbsControlCurveNodes;|%WildcardNodes; )* ) >
<!ATTLIST Contour2D
containerField NMTOKEN "trimmingContour"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ContourPolyline2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ContourPolyline2D
point %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- child CoordinateNode has containerField controlPoint -->
<!ELEMENT NurbsCurve ( (IS?), (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )? ) >
<!ATTLIST NurbsCurve
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
tessellation %SFInt32; "0"
closed %SFBool; "false"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsCurve2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST NurbsCurve2D
controlPoint %MFVec2d; #IMPLIED
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
tessellation %SFInt32; "0"
closed %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsOrientationInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsOrientationInterpolator
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsPositionInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsPositionInterpolator
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSurfaceInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsSurfaceInterpolator
weight %MFDouble; #IMPLIED
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSet (IS?, (%MetadataNodes;)?, (NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|%WildcardNodes; )* ) >
<!ATTLIST NurbsSet
tessellationScale %SFFloat; "1.0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsPatchSurface (IS?, (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )?, ( %TextureCoordinateNodes;|NurbsTextureCoordinate)? ) >
<!ATTLIST NurbsPatchSurface
uClosed %SFBool; "false"
vClosed %SFBool; "false"
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
uTessellation %SFInt32; "0"
vTessellation %SFInt32; "0"
weight %MFDouble; #IMPLIED
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsTrimmedSurface (IS?, (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )?, ( %TextureCoordinateNodes;|NurbsTextureCoordinate)?, Contour2D* ) >
<!ATTLIST NurbsTrimmedSurface
uClosed %SFBool; "false"
vClosed %SFBool; "false"
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
uTessellation %SFInt32; "0"
vTessellation %SFInt32; "0"
weight %MFDouble; #IMPLIED
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSweptSurface (IS?, (%MetadataNodes;)?, (NurbsCurve|%WildcardNodes; )?, ( %NurbsControlCurveNodes;|%WildcardNodes; )? ) >
<!ATTLIST NurbsSweptSurface
ccw %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSwungSurface (IS?, (%MetadataNodes;)?, ( ( %NurbsControlCurveNodes;|%WildcardNodes; ), ( %NurbsControlCurveNodes;|%WildcardNodes; )? )? ) >
<!ATTLIST NurbsSwungSurface
ccw %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsTextureCoordinate ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsTextureCoordinate
controlPoint %MFVec2f; #IMPLIED
weight %MFFloat; #IMPLIED
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- Finally, Web3dExtensionComponent from separate DTDs. Note that Web3dExtensionComponent
content-model extensions needed to be added at beginning, prior to node-type definitions. -->
<![%Web3dExtensionComponent;[
<!ENTITY % Web3dExtensionsPublicDTD SYSTEM "x3d-3.0-Web3dExtensionsPublic.dtd">
<!ENTITY % Web3dExtensionsPrivateDTD SYSTEM "x3d-3.0-Web3dExtensionsPrivate.dtd">
%Web3dExtensionsPublicDTD;
%Web3dExtensionsPrivateDTD;
]]>
x3d-3.0-InputOutputFields.dtd extends the X3D version 3.0 DTD by also
including fields with accessType inputOnly and outputOnly.
Although X3D scene files cannot validly set values for any of these attributes,
the DTD defines names and relationships of all fields and can be used by
DTD-aware processing tools.
<!-- # # X3D InputOutputFields DTD: # # http://www.web3d.org/specifications/x3d-3.0-InputOutputFields.dtd # # current version: 3.0.7 # # revised: 19 December 2005 # # Author: Don Brutzman # # Purpose: the primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by field definitions in x3d-3.0-InputOutputFields.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.0.dtd # http://www.web3d.org/specifications/x3d-3.0-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.0-Web3dExtensions.dtd # # Typical system location for this resource is adjacent to x3d-3.0.dtd: # file://c:/www.web3d.org/specifications/x3d-3.0-InputOutputFields.dtd # file:///www.web3d.org/specifications/x3d-3.0-InputOutputFields.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # # Note on typing: # CDATA used for %SFBool; definitions to allow #FIXED "" initialization, # since DTD rules otherwise require enumeration values to be # initialized to true|false. # --> <!ATTLIST AudioClip elapsedTime %SFTime; #FIXED "" duration_changed %SFTime; #FIXED "" isPaused CDATA #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST Background set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST BooleanFilter set_boolean CDATA #FIXED "" inputTrue CDATA #FIXED "" inputFalse CDATA #FIXED "" inputNegate CDATA #FIXED ""> <!-- value_changed is CDATA instead of %SFBool% in order to set empty value on an enumeration --> <!ATTLIST BooleanSequencer set_fraction %SFFloat; #FIXED "" value_changed CDATA #FIXED "" previous CDATA #FIXED "" next CDATA #FIXED ""> <!ATTLIST BooleanToggle set_boolean CDATA #FIXED ""> <!ATTLIST BooleanTrigger set_triggerTime %SFTime; #FIXED "" triggerTrue CDATA #FIXED ""> <!ATTLIST Collision collideTime %SFTime; #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST ColorInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFColor; #FIXED ""> <!ATTLIST CoordinateInterpolator set_fraction %SFFloat; #FIXED "" value_changed %MFVec3f; #FIXED ""> <!ATTLIST CoordinateInterpolator2D set_fraction %SFFloat; #FIXED "" value_changed %MFVec2f; #FIXED ""> <!ATTLIST CylinderSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" rotation_changed %SFRotation; #FIXED "" trackPoint_changed %SFVec3f; #FIXED ""> <!ATTLIST ElevationGrid set_height %MFFloat; #FIXED ""> <!ATTLIST Extrusion set_crossSection %MFVec2f; #FIXED "" set_orientation %MFRotation; #FIXED "" set_scale %MFVec2f; #FIXED "" set_spine %MFVec3f; #FIXED ""> <!ATTLIST Fog set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST IndexedFaceSet set_colorIndex %MFInt32; #FIXED "" set_coordIndex %MFInt32; #FIXED "" set_normalIndex %MFInt32; #FIXED "" set_texCoordIndex %MFInt32; #FIXED ""> <!ATTLIST IndexedLineSet set_colorIndex %MFInt32; #FIXED "" set_coordIndex %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleFanSet set_index %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleSet set_index %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleStripSet set_index %MFInt32; #FIXED ""> <!ATTLIST IntegerSequencer set_fraction %SFFloat; #FIXED "" value_changed %SFInt32; #FIXED "" previous CDATA #FIXED "" next CDATA #FIXED ""> <!ATTLIST IntegerTrigger set_boolean CDATA #FIXED "" triggerValue %SFInt32; #FIXED ""> <!ATTLIST KeySensor isActive CDATA #FIXED "" keyPress %SFString; #FIXED "" keyRelease %SFString; #FIXED "" actionKeyPress %SFInt32; #FIXED "" actionKeyRelease %SFInt32; #FIXED "" altKey CDATA #FIXED "" controlKey CDATA #FIXED "" shiftKey CDATA #FIXED ""> <!ATTLIST LoadSensor isActive CDATA #FIXED "" isLoaded CDATA #FIXED "" loadTime %SFTime; #FIXED "" progress %SFFloat; #FIXED ""> <!ATTLIST MovieTexture elapsedTime %SFTime; #FIXED "" duration_changed %SFTime; #FIXED "" isPaused CDATA #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST NavigationInfo set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST NormalInterpolator set_fraction %SFFloat; #FIXED "" value_changed %MFVec3f; #FIXED ""> <!ATTLIST OrientationInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFRotation; #FIXED ""> <!ATTLIST PlaneSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" trackPoint_changed %SFVec3f; #FIXED "" translation_changed %SFVec3f; #FIXED ""> <!ATTLIST PositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED ""> <!ATTLIST PositionInterpolator2D set_fraction %SFFloat; #FIXED "" value_changed %SFVec2f; #FIXED ""> <!ATTLIST ProximitySensor isActive CDATA #FIXED "" position_changed %SFVec3f; #FIXED "" orientation_changed %SFRotation; #FIXED "" centerOfRotation_changed %SFVec3f; #FIXED "" enterTime %SFTime; #FIXED "" exitTime %SFTime; #FIXED ""> <!ATTLIST ScalarInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFFloat; #FIXED ""> <!ATTLIST SphereSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" rotation_changed %SFRotation; #FIXED "" trackPoint_changed %SFVec3f; #FIXED ""> <!ATTLIST StringSensor isActive CDATA #FIXED "" enteredText %SFString; #FIXED "" finalText %SFString; #FIXED ""> <!ATTLIST TextureBackground set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST TimeSensor elapsedTime %SFTime; #FIXED "" cycleTime %SFTime; #FIXED "" fraction_changed %SFFloat; #FIXED "" isActive CDATA #FIXED "" isPaused CDATA #FIXED "" time %SFTime; #FIXED ""> <!ATTLIST TimeTrigger set_boolean CDATA #FIXED "" triggerTime %SFTime; #FIXED ""> <!ATTLIST TouchSensor hitNormal_changed %SFVec3f; #FIXED "" hitPoint_changed %SFVec3f; #FIXED "" hitTexCoord_changed %SFVec2f; #FIXED "" isActive CDATA #FIXED "" isOver CDATA #FIXED "" touchTime %SFTime; #FIXED ""> <!ATTLIST Viewpoint set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST VisibilitySensor enterTime %SFTime; #FIXED "" exitTime %SFTime; #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST EspduTransform isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" set_articulationParameterValue0 %SFFloat; #FIXED "" set_articulationParameterValue1 %SFFloat; #FIXED "" set_articulationParameterValue2 %SFFloat; #FIXED "" set_articulationParameterValue3 %SFFloat; #FIXED "" set_articulationParameterValue4 %SFFloat; #FIXED "" set_articulationParameterValue5 %SFFloat; #FIXED "" set_articulationParameterValue6 %SFFloat; #FIXED "" set_articulationParameterValue7 %SFFloat; #FIXED "" articulationParameterValue0_changed %SFFloat; #FIXED "" articulationParameterValue1_changed %SFFloat; #FIXED "" articulationParameterValue2_changed %SFFloat; #FIXED "" articulationParameterValue3_changed %SFFloat; #FIXED "" articulationParameterValue4_changed %SFFloat; #FIXED "" articulationParameterValue5_changed %SFFloat; #FIXED "" articulationParameterValue6_changed %SFFloat; #FIXED "" articulationParameterValue7_changed %SFFloat; #FIXED "" isCollided CDATA #FIXED "" collideTime %SFTime; #FIXED "" isDetonated CDATA #FIXED "" detonateTime %SFTime; #FIXED "" firedTime %SFTime; #FIXED "" > <!ATTLIST ReceiverPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST SignalPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST TransmitterPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST GeoElevationGrid set_height %MFDouble; #FIXED ""> <!ATTLIST GeoPositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED "" geovalue_changed %SFVec3d; #FIXED ""> <!ATTLIST GeoTouchSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" touchTime %SFTime; #FIXED "" hitGeoCoord_changed %SFVec3d; #FIXED "" hitNormal_changed %SFVec3f; #FIXED "" hitPoint_changed %SFVec3f; #FIXED "" hitTexCoord_changed %SFVec2f; #FIXED ""> <!ATTLIST GeoViewpoint set_bind CDATA #FIXED "" set_orientation %SFRotation; #FIXED "" set_position %SFVec3d; #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST NurbsOrientationInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFRotation; #FIXED ""> <!ATTLIST NurbsPositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED ""> <!ATTLIST NurbsSurfaceInterpolator set_fraction %SFVec2f; #FIXED "" normal_changed %SFVec3f; #FIXED "" position_changed %SFVec3f; #FIXED "">
The public X3D DTD extension will be used to contain approved extensions that have not yet been included in Part 1 of ISO/IEC 19775. The form of the public X3D DTD extension is depicted below:
<!-- # # X3D Web3D Extensions Public DTD: # # http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPublic.dtd # # current version: 3.0.2 # # created: 12 October 2003 # # revised: 16 September 2004 # # Maintainer: Don Brutzman # # Purpose: support Web3D Consortium extensions to the X3D tagset. # The primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by node definitions in x3d-3.0-Web3dExtensionsPublic.dtd # and x3d-3.0-Web3dExtensionsPrivate.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.0.dtd # http://www.web3d.org/specifications/x3d-3.0-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPublic.dtd # http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPrivate.dtd # # Web3D extensions update URL: # http://www.web3d.org/x3d/content/x3d-3.0-Web3dExtensionsPublic.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # --> <!-- ================================================================= --> <!ENTITY % LatticeXvlComponent "INCLUDE"> <!-- LatticeXVL 1.0 Document Type Definition (DTD) Description: Define the XVL tag and attribute profile for X3D. This X3D native node corresponds to a VRML ExternProto declaration. Elements in this tagset are enabled by setting the XvlProfile entity to "INCLUDE" at the top of an X3D scene file, as shown in several examples such as examples/LatticeXvl/XvlShellAll.x3d. This flag then triggers inclusion of the XVL tags in the x3d-3.0.dtd tagset. Status: Complete Authors: Lattice Technology, Inc. proposed the Xvl extensions, Makito Seki produced XML encoding of XVL nodes for X3D with additional work by Marc Jablonski and Don Brutzman Reference: LatticeXvl extension for X3D http://www.web3d.org/x3d/content/examples/LatticeXvl/doc/proposal/LatticeProposal.html http://www.Xvl3D.com Issues: Mark Jablonski maintains the list. Created: 10 May 2001 --> <![%LatticeXvlComponent;[ <!-- for future: G1T1 level --> <!ENTITY % XvlG1T1ShellTypes "" > <!-- Types of XVL Shells --> <!ENTITY % XvlShell.shellTypes " %XvlG1T1ShellTypes; POLYGON_MESH | LATTICE_MESH " > <!ELEMENT XvlShell (IS?, (%MetadataNodes;)?, ( ( (%TextureCoordinateNodes;), ((%CoordinateNodes;) | %WildcardNodes;) ) | ( (%CoordinateNodes;), ((%TextureCoordinateNodes;) | %WildcardNodes;)? ) | ( %WildcardNodes;, ((%TextureCoordinateNodes;) | (%CoordinateNodes;) | %WildcardNodes;)?) )? )> <!ATTLIST XvlShell shellType ( %XvlShell.shellTypes; ) #IMPLIED numberOfDivisions %SFInt32; #IMPLIED vertexRound %MFFloat; #IMPLIED edgeBeginCoordIndex %MFInt32; #IMPLIED edgeEndCoordIndex %MFInt32; #IMPLIED edgeRound %MFFloat; #IMPLIED edgeBeginVector %MFVec3f; #IMPLIED edgeEndVector %MFVec3f; #IMPLIED faceCoordIndex %MFInt32; #IMPLIED faceTexCoordIndex %MFInt32; #IMPLIED faceEmpty %MFBool; #IMPLIED faceHidden %MFBool; #IMPLIED containerField NMTOKEN "geometry" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!-- ================================================================= -->
The private X3D DTD extension will be used to contain X3D extensions that have not been approved but may exist for testing future development. The form of the private X3D DTD extension is depicted below:
<!-- # # X3D Web3D Extensions Private DTD: # # http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPrivate.dtd # # current version: 3.0.2 # # created: 12 October 2003 # # revised: 16 September 2004 # # Maintainer: Don Brutzman # # Purpose: support Web3D Consortium extensions to the X3D tagset. # The primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by node definitions in x3d-3.0-Web3dExtensionsPublic.dtd # and x3d-3.0-Web3dExtensionsPrivate.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.0.dtd # http://www.web3d.org/specifications/x3d-3.0-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPublic.dtd # http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPrivate.dtd # # Web3D extensions update URL: # http://www.web3d.org/x3d/content/x3d-3.0-Web3dExtensionsPublic.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # --> <!-- ================================================================= --> <!-- Enter ELEMENT and ATTLIST definitions here --> <!-- ================================================================= -->
x3d-3.1.dtd is the X3D DTD that validates X3D version 3.1 content:
<!--
# Extensible 3D (X3D) Specification Document Type Definition (DTD) x3d-3.1.dtd
#
# http://www.web3d.org/specifications/x3d-3.1.dtd
#
# current version: 3.1.2
#
# created: 30 April 2005
# revised: 9 October 2007
#
# Author: Don Brutzman
#
# X3D Specification DTDs:
# http://www.web3d.org/specifications/x3d-3.1.dtd
# http://www.web3d.org/specifications/x3d-3.1-InputOutputFields.dtd
# http://www.web3d.org/specifications/x3d-3.1-Web3dExtensionsPublic.dtd
# http://www.web3d.org/specifications/x3d-3.1-Web3dExtensionsPrivate.dtd
#
# X3D Revision DTDs:
# http://www.web3d.org/x3d/content/x3d-3.1.dtd
# http://www.web3d.org/x3d/content/x3d-3.1-InputOutputFields.dtd
# http://www.web3d.org/x3d/content/x3d-3.1-Web3dExtensionsPublic.dtd
# http://www.web3d.org/x3d/content/x3d-3.1-Web3dExtensionsPrivate.dtd
#
# Final doctype:
# <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN" "http://www.web3d.org/specifications/x3d-3.1.dtd">
#
# Transitional doctype:
# <!DOCTYPE X3D PUBLIC "http://www.web3d.org/specifications/x3d-3.1.dtd" "file:///www.web3d.org/specifications/x3d-3.1.dtd">
#
# Typical system location for this resource:
# file://c:/www.web3d.org/specifications/x3d-3.1.dtd
# file:///www.web3d.org/specifications/x3d-3.1.dtd
#
# Change log:
# http://www.web3d.org/specifications/x3d-dtd-changelog.txt
#
# Further information on the Extensible 3D (X3D) specification is available at
# http://www.web3D.org/x3d.html
-->
<!-- Profile: default is Full profile and all components.
Authors can override these default IGNORE/INCLUDE values.
If InterchangeProfile or InteractiveProfile is INCLUDEd, then IGNORE all others. -->
<!ENTITY % ImmersiveProfile "INCLUDE">
<!ENTITY % InterchangeProfile "IGNORE">
<!ENTITY % InteractiveProfile "IGNORE">
<!ENTITY % CadComponent "INCLUDE">
<!ENTITY % CubeMapTexturingComponent "INCLUDE">
<!ENTITY % DISComponent "INCLUDE">
<!ENTITY % GeoSpatialComponent "INCLUDE">
<!ENTITY % HAnimComponent "INCLUDE">
<!ENTITY % NurbsComponent "INCLUDE">
<!ENTITY % ShadersComponent "INCLUDE">
<!ENTITY % Texture3DComponent "INCLUDE">
<!ENTITY % Web3dExtensionComponent "INCLUDE">
<!ENTITY % X3dInputOutputFields "INCLUDE">
<!ENTITY % X3dExtensions "IGNORE">
<!ENTITY % profileNames "(Core|Interchange|CADInterchange|Interactive|Immersive|Full|MPEG4Interactive)">
<!ENTITY % componentNames "(Core|CADGeometry|CubeMapTexturing|DIS|EnvironmentalEffects|EnvironmentalSensor|EventUtilities|Geometry2D|Geometry3D|Geospatial|Grouping|H-Anim|Interpolation|KeyDeviceSensor|Lighting|Navigation|Networking|NURBS|PointingDeviceSensor|Rendering|Scripting|Shaders|Shape|Sound|Text|Texturing|Texturing3D|Time)">
<!ENTITY % componentLevels "(1|2|3|4)">
<!ENTITY % X3dFieldTypes "SFBool|MFBool|SFColor|MFColor|SFColorRGBA|MFColorRGBA|SFDouble|MFDouble|SFFloat|MFFloat|SFImage|MFImage|SFInt32|MFInt32|SFNode|MFNode|SFRotation|MFRotation|SFString|MFString|SFTime|MFTime|SFVec2f|MFVec2f|SFVec2d|MFVec2d|SFVec3f|MFVec3f|SFVec3d|MFVec3d|SFMatrix3d|MFMatrix3d|SFMatrix3f|MFMatrix3f|SFMatrix4d|MFMatrix4d|SFMatrix4f|MFMatrix4f|SFVec4d|MFVec4d|SFVec4f|MFVec4f">
<!-- X3D type definitions as DTD types -->
<!ENTITY % SFBool "(true|false)">
<!ENTITY % MFBool "CDATA">
<!ENTITY % SFColor "CDATA">
<!ENTITY % MFColor "CDATA">
<!ENTITY % SFColorRGBA "CDATA">
<!ENTITY % MFColorRGBA "CDATA">
<!ENTITY % SFFloat "CDATA">
<!ENTITY % MFFloat "CDATA">
<!ENTITY % SFDouble "CDATA">
<!ENTITY % MFDouble "CDATA">
<!ENTITY % SFImage "CDATA">
<!ENTITY % MFImage "CDATA">
<!ENTITY % SFInt32 "CDATA">
<!ENTITY % MFInt32 "CDATA">
<!ENTITY % SFRotation "CDATA">
<!ENTITY % MFRotation "CDATA">
<!ENTITY % SFString "CDATA">
<!ENTITY % MFString "CDATA">
<!ENTITY % SFTime "CDATA">
<!ENTITY % MFTime "CDATA">
<!ENTITY % SFVec2f "CDATA">
<!ENTITY % MFVec2f "CDATA">
<!ENTITY % SFVec2d "CDATA">
<!ENTITY % MFVec2d "CDATA">
<!ENTITY % SFVec3f "CDATA">
<!ENTITY % MFVec3f "CDATA">
<!ENTITY % SFVec3d "CDATA">
<!ENTITY % MFVec3d "CDATA">
<!ENTITY % SFVec4f "CDATA">
<!ENTITY % MFVec4f "CDATA">
<!ENTITY % SFVec4d "CDATA">
<!ENTITY % MFVec4d "CDATA">
<!ENTITY % SFMatrix3f "CDATA">
<!ENTITY % MFMatrix3f "CDATA">
<!ENTITY % SFMatrix3d "CDATA">
<!ENTITY % MFMatrix3d "CDATA">
<!ENTITY % SFMatrix4f "CDATA">
<!ENTITY % MFMatrix4f "CDATA">
<!ENTITY % SFMatrix4d "CDATA">
<!ENTITY % MFMatrix4d "CDATA">
<!ENTITY % TextureCoordinateGeneratorModes "(SPHERE|CAMERASPACENORMAL|CAMERASPACEPOSITION|CAMERASPACEREFLECTIONVECTOR|SPHERE-LOCAL|COORD|COORD-EYE|NOISE|NOISE-EYE|SPHERE-REFLECT|SPHERE-REFLECT-LOCAL)">
<!-- User needs to append | after listing each new node in any of these extensions.
For an example, see examples/development/ProtoTagDtdDeclarationExamples.x3d -->
<!ENTITY % AppearanceNodeExtensions "">
<!ENTITY % AudioClipNodeExtensions "">
<!ENTITY % BindableNodeExtensions "">
<!ENTITY % ColorNodeExtensions "">
<!ENTITY % CoordinateNodeExtensions "">
<!ENTITY % FontStyleNodeExtensions "">
<!ENTITY % EventUtilityNodeExtensions "">
<!ENTITY % GeometryNodeExtensions "">
<!ENTITY % GroupingNodeExtensions "">
<!ENTITY % InterpolatorNodeExtensions "">
<!ENTITY % LightNodeExtensions "">
<!ENTITY % MaterialNodeExtensions "">
<!ENTITY % MetadataNodeExtensions "">
<!ENTITY % NormalNodeExtensions "">
<!ENTITY % ScriptNodeExtensions "">
<!ENTITY % SensorNodeExtensions "">
<!ENTITY % ShapeNodeExtensions "">
<!ENTITY % SoundNodeExtensions "">
<!-- MovieTexture must be able to appear twice: -->
<!ENTITY % MovieTextureNodeExtensions "">
<!ENTITY % TextureNodeExtensions "">
<!ENTITY % TextureCoordinateNodeExtensions "">
<!ENTITY % TextureTransformNodeExtensions "">
<!ENTITY % NetworkSensorNodeExtensions "">
<!ENTITY % WorldInfoNodeExtensions "">
<!-- Users defining PROTOs do not override any of the following parameter entity declarations. -->
<![%ImmersiveProfile;[
<!ENTITY % WildcardNodes " (ProtoInstance) " >
]]>
<![%InterchangeProfile;[
<!ENTITY % WildcardNodes " " >
]]>
<![%DISComponent;[
<!ENTITY % DISGroupingNodes " EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|" >
]]>
<![%GeoSpatialComponent;[
<!ENTITY % GeoCoordinateNode " GeoCoordinate|" >
<!ENTITY % GeoElevationGridNode " GeoElevationGrid|" >
<!ENTITY % GeoGroupingNodes " GeoLocation|GeoLOD|" >
<!ENTITY % GeoMetadataNode " GeoMetadata|" >
<!ENTITY % GeoOriginNode " GeoOrigin|" >
<!ENTITY % GeoBehaviorNodes " GeoPositionInterpolator|GeoTouchSensor|" >
<!ENTITY % GeoViewpointNode " GeoViewpoint|" >
]]>
<![%HAnimComponent;[
<!ENTITY % HAnimGroupingNodes " HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|" >
<!ENTITY % DisplacerNode " HAnimDisplacer|" >
]]>
<![%NurbsComponent;[
<!ENTITY % NurbsGeometryNodes " NurbsCurve|NurbsCurve2D|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|" >
<!ENTITY % NurbsInterpolators " NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|" >
<!ENTITY % NurbsControlCurveNodes " NurbsCurve2D|Contour2D|ContourPolyline2D " >
]]>
<![%CadComponent;[
<!ENTITY % CadGeometryNodes " QuadSet|IndexedQuadSet|" >
<!ENTITY % CadGroupingNodes " CADAssembly|CADLayer|" >
]]>
<![%CubeMapTexturingComponent;[
<!ENTITY % CubeMapTextureNodes " ComposedCubeMapTexture|GeneratedCubeMapTexture|ImageCubeMapTexture " >
]]>
<![%ShadersComponent;[
<!ENTITY % ShaderNodes " ComposedShader|PackagedShader|ProgramShader " >
<!ENTITY % ShaderAttributeNodes " FloatVertexAttribute|Matrix3VertexAttribute|Matrix4VertexAttribute" >
]]>
<![%Texture3DComponent;[
<!ENTITY % Texture3DTextureNodes " Composed3DTexture|Image3DTexture|Pixel3DTexture " >
<!ENTITY % Texture3DTextureCoordinateNodes " TextureCoordinate3D|TextureCoordinate4D| " >
<!ENTITY % Texture3DTextureTransformNodes " TextureMatrixTransform|TextureTransform3D " >
]]>
<![%Web3dExtensionComponent;[
<!ENTITY % Web3dExtensionGeometryNodes " XvlShell|" >
]]>
<!-- otherwise set tag lists to null strings if not previously defined -->
<!ENTITY % DISGroupingNodes "">
<!ENTITY % GeoCoordinateNode "">
<!ENTITY % GeoElevationGridNode "">
<!ENTITY % GeoGroupingNodes "">
<!ENTITY % GeoMetadataNode "">
<!ENTITY % GeoOriginNode "">
<!ENTITY % GeoBehaviorNodes "">
<!ENTITY % GeoViewpointNode "">
<!ENTITY % HAnimGroupingNodes "">
<!ENTITY % DisplacerNode "">
<!ENTITY % NurbsGeometryNodes "">
<!ENTITY % NurbsInterpolators "">
<!ENTITY % CadGroupingNodes "">
<!ENTITY % CadGeometryNodes "">
<!ENTITY % CubeMapTextureNodes "">
<!ENTITY % ShaderNodes "">
<!ENTITY % ShaderAttributeNodes "">
<!ENTITY % Texture3DTextureNodes "" >
<!ENTITY % Texture3DTextureCoordinateNodes "" >
<!ENTITY % Texture3DTextureTransformNodes "" >
<!ENTITY % Web3dExtensionGroupingNodes "">
<!ENTITY % Web3dExtensionGeometryNodes "">
<!-- no further content-model extensions needed -->
<![%InterchangeProfile;[
<!ENTITY % AudioClipNodes "" >
<!ENTITY % FontStyleNodes "" >
<!ENTITY % EventUtilityNodes "" >
<!ENTITY % MovieTextureNodes "" >
<!ENTITY % NormalNodes "" >
<!ENTITY % ScriptNodes "" >
<!ENTITY % SoundNodes "" >
<!ENTITY % TextureCoordinateNodes "" >
<!ENTITY % TextureTransformNodes "" >
]]>
<!-- NetworkSensorNodes used by LoadSensor -->
<!ENTITY % NetworkSensorNodes " %NetworkSensorNodeExtensions; Anchor|AudioClip|GeoMetadata|ImageCubeMapTexture|ImageTexture|Image3DTexture|Inline|MovieTexture|PackagedShader|ProtoInstance|Script|ShaderPart|ShaderProgram ">
<![%ImmersiveProfile;[
<!ENTITY % AudioClipNodes " %AudioClipNodeExtensions; AudioClip " >
<!ENTITY % FontStyleNodes " %FontStyleNodeExtensions; FontStyle " >
<!ENTITY % EventUtilityNodes " %EventUtilityNodeExtensions; BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger " >
<!ENTITY % MovieTextureNodes " %MovieTextureNodeExtensions; MovieTexture " >
<!ENTITY % NormalNodes " %NormalNodeExtensions; Normal " >
<!ENTITY % ScriptNodes " %ScriptNodeExtensions; Script " >
<!ENTITY % SoundNodes " %SoundNodeExtensions; Sound " >
<!ENTITY % TextureCoordinateNodes " %TextureCoordinateNodeExtensions; %Texture3DTextureCoordinateNodes; TextureCoordinate|TextureCoordinateGenerator|MultiTextureCoordinate|NurbsTextureCoordinate " >
<!ENTITY % TextureTransformNodes " %TextureTransformNodeExtensions; TextureTransform|MultiTextureTransform " >
<!ENTITY % AllTextureTransformNodes " %TextureTransformNodes;|%Texture3DTextureTransformNodes; " >
]]>
<![%InterchangeProfile;[
<!ENTITY % AppearanceNodes " Appearance " >
<!ENTITY % BehaviorLeafNodes " CoordinateInterpolator|KeySensor|OrientationInterpolator|PositionInterpolator|ScalarInterpolator|TimeSensor|TouchSensor " >
<!ENTITY % BindableNodes " Background|NavigationInfo|Viewpoint " >
<!ENTITY % ColorNodes " Color|ColorRGBA " >
<!ENTITY % CoordinateNodes " Coordinate|CoordinateDouble|FogCoordinate " >
<!ENTITY % GeometryNodes " IndexedFaceSet|IndexedLineSet|LineSet|PointSet " >
<!ENTITY % GroupingNodes " Anchor|Group|Inline|Transform " >
<!ENTITY % LightNodes " DirectionalLight " >
<!ENTITY % MaterialNodes " Material " >
<!ENTITY % ShapeNodes " Shape " >
<!ENTITY % Texture2DNodes " ImageTexture " >
<!ENTITY % WorldInfoNodes " WorldInfo " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % AppearanceNodes " %AppearanceNodeExtensions; Appearance " >
<!ENTITY % BehaviorLeafNodes " %InterpolatorNodeExtensions; %SensorNodeExtensions; %ScriptNodeExtensions; %GeoBehaviorNodes; %DisplacerNode; %NurbsInterpolators; %EventUtilityNodes;|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % BindableNodes " %BindableNodeExtensions; %GeoViewpointNode; Background|Fog|NavigationInfo|TextureBackground|Viewpoint " >
<!ENTITY % ColorNodes " %ColorNodeExtensions; Color|ColorRGBA " >
<!ENTITY % CoordinateNodes " %CoordinateNodeExtensions; %GeoCoordinateNode; Coordinate|CoordinateDouble " >
<!ENTITY % Geometry2DNodes " Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D " >
<!ENTITY % GeometryNodes " %GeometryNodeExtensions; %GeoElevationGridNode; %NurbsGeometryNodes; %CadGeometryNodes; %Web3dExtensionGeometryNodes; %Geometry2DNodes;|Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet " >
<!ENTITY % GroupingNodes " %GroupingNodeExtensions; %DISGroupingNodes; %GeoGroupingNodes; %HAnimGroupingNodes; %CadGroupingNodes; %Web3dExtensionGroupingNodes; Anchor|Billboard|Collision|Group|Inline|LOD|StaticGroup|Switch|Transform " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % LightNodes " %LightNodeExtensions; DirectionalLight|SpotLight|PointLight " >
<!ENTITY % MaterialNodes " %MaterialNodeExtensions; Material " >
<!ENTITY % ShapeNodes " %ShapeNodeExtensions; Shape " >
<!ENTITY % Texture2DNodes " %TextureNodeExtensions; ImageTexture|MovieTexture|MultiTexture|PixelTexture " >
<!ENTITY % AllTextureNodes " %Texture2DNodes;|%CubeMapTextureNodes;|%Texture3DTextureNodes; " >
<!ENTITY % MultiTextureChildTextures " %TextureNodeExtensions; ImageTexture|MovieTexture|PixelTexture " >
<!ENTITY % WorldInfoNodes " %WorldInfoNodeExtensions; %GeoMetadataNode; WorldInfo " >
]]>
<![%InterchangeProfile;[
<!ENTITY % ComposedGeometryNodes " %ColorNodes; " >
<!ENTITY % AppearanceChildNodes " %MaterialNodes; " >
<!ENTITY % SceneLeafNodes " %LightNodes;|%ShapeNodes;|%WorldInfoNodes; " >
<!ENTITY % MetadataNodes " %MetadataNodeExtensions; MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString ">
<!ENTITY % ProtoNodes "" >
]]>
<![%ImmersiveProfile;[
<!ENTITY % ComposedGeometryNodes " %ShaderAttributeNodes;|%CoordinateNodes;|%ColorNodes;|%NormalNodes;|%TextureCoordinateNodes;|FogCoordinate " >
<!ENTITY % AppearanceChildNodes " LineProperties|FillProperties|%MaterialNodes;|%Texture2DNodes;|%CubeMapTextureNodes;|%ShaderNodes;|%Texture3DTextureNodes;|%TextureTransformNodes;|%Texture3DTextureTransformNodes; " >
<!ENTITY % SceneLeafNodes " %GeoOriginNode; %LightNodes;|%ShapeNodes;|%SoundNodes;|%WorldInfoNodes; " >
<!ENTITY % OtherLeafNodes " AudioClip|LineProperties|FillProperties " >
<!ENTITY % MetadataNodes " %MetadataNodeExtensions; MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString ">
<!ENTITY % ProtoNodes " %OtherLeafNodes;|%AppearanceNodes;|%AppearanceChildNodes;|%BehaviorLeafNodes;|%BindableNodes;|%CubeMapTextureNodes;|%FontStyleNodes;|%ComposedGeometryNodes;|%GeometryNodes;|%GroupingNodes;|ShaderPart|ShaderProgram|%MetadataNodes;|%SceneLeafNodes;|%Texture3DTextureNodes;|%Texture3DTextureTransformNodes;|ProtoDeclare|ExternProtoDeclare|ProtoInstance " >
]]>
<!ENTITY % ChildrenNodes " %BehaviorLeafNodes;|%BindableNodes;|%GroupingNodes;|%SceneLeafNodes;|ROUTE|EXPORT|IMPORT " >
<![%InterchangeProfile;[
<!ENTITY % SceneNodes " %ChildrenNodes;|%WildcardNodes; " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % SceneNodes " ExternProtoDeclare|ProtoDeclare|%ChildrenNodes;|%WildcardNodes; " >
]]>
<!-- SensorNodes not used (yet, anyway) in tagset content-model definitions. -->
<!ENTITY % SensorNodes " Anchor|Collision|CylinderSensor|KeySensor|PlaneSensor|ProximitySensor|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor ">
<!ENTITY % DragSensors " CylinderSensor|PlaneSensor|SphereSensor ">
<!ENTITY % EnvironmentalSensorNodes " Collision|ProximitySensor|TimeSensor|VisibilitySensor ">
<!ENTITY % PointingDeviceSensors " Anchor|CylinderSensor|PlaneSensor|SphereSensor|TouchSensor ">
<!ENTITY % KeyDeviceSensors " ">
<!ENTITY % InterpolatorNodes " ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|NormalInterpolator|OrientationInterpolator|PositionInterpolator|PositionInterpolator2D|ScalarInterpolator ">
<!ENTITY % TimeDependentNodes " AudioClip|MovieTexture|TimeSensor ">
<!-- ***** X3D DTD ***** -->
<![%ImmersiveProfile;[
<!ELEMENT Anchor (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Anchor
description %SFString; #IMPLIED
parameter %MFString; #IMPLIED
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%InterchangeProfile;[
<!ELEMENT Anchor (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* >
<!ATTLIST Anchor
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%InterchangeProfile;[
<!ELEMENT Appearance ( (%MetadataNodes;)?,
( ((%MaterialNodes;), (%Texture2DNodes;)? )
|((%Texture2DNodes;), (%MaterialNodes;)? )
)? ) >
]]>
<!ELEMENT Appearance (IS?, (%MetadataNodes;)?, (%AppearanceChildNodes;|%WildcardNodes;)* ) >
<!ATTLIST Appearance
containerField NMTOKEN "appearance"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT AudioClip ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST AudioClip
description %SFString; #IMPLIED
loop %SFBool; "false"
pitch %SFFloat; "1.0"
startTime %SFTime; "0"
stopTime %SFTime; "0"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
url %MFString; #IMPLIED
containerField NMTOKEN "source"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Background ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Background
groundAngle %MFFloat; #IMPLIED
groundColor %MFColor; #IMPLIED
backUrl %MFString; #IMPLIED
bottomUrl %MFString; #IMPLIED
frontUrl %MFString; #IMPLIED
leftUrl %MFString; #IMPLIED
rightUrl %MFString; #IMPLIED
topUrl %MFString; #IMPLIED
skyAngle %MFFloat; #IMPLIED
skyColor %MFColor; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT Billboard (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Billboard
axisOfRotation %SFVec3f; "0 1 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanFilter ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanFilter
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanSequencer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanSequencer
key %MFFloat; #IMPLIED
keyValue %MFBool; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanToggle ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanToggle
toggle %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanTrigger
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!-- Geometry2D nodes -->
<!ELEMENT Arc2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Arc2D
radius %SFFloat; "1"
startAngle %SFFloat; "0"
endAngle %SFFloat; "1.570796"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ArcClose2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ArcClose2D
radius %SFFloat; "1"
startAngle %SFFloat; "0"
endAngle %SFFloat; "1.570796"
closureType (PIE|CHORD) "PIE"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Circle2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Circle2D
radius %SFFloat; "1"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Disk2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Disk2D
innerRadius %SFFloat; "0"
outerRadius %SFFloat; "1"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Polyline2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Polyline2D
lineSegments %MFVec2f; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Polypoint2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Polypoint2D
point %MFVec2f; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Rectangle2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Rectangle2D
size %SFVec2f; "2 2"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TriangleSet2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TriangleSet2D
vertices %MFVec2f; #IMPLIED
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT Box ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Box
size %SFVec3f; "2 2 2"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Collision ( (IS?), (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Collision
enabled %SFBool; "true"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<!ELEMENT Color ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Color
color %MFColor; #IMPLIED
class CDATA #IMPLIED
containerField NMTOKEN "color"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ColorRGBA ((IS?), (%MetadataNodes;)?)>
<!ATTLIST ColorRGBA
color %MFColorRGBA; #IMPLIED
containerField NMTOKEN "color"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT component EMPTY>
<!ATTLIST component
name %componentNames; #REQUIRED
level %componentLevels; #REQUIRED>
<![%ImmersiveProfile;[
<!ELEMENT ColorInterpolator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ColorInterpolator
key %MFFloat; #IMPLIED
keyValue %MFColor; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Cone ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Cone
bottomRadius %SFFloat; "1"
height %SFFloat; "2"
side %SFBool; "true"
bottom %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Coordinate ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Coordinate
point %MFVec3f; #IMPLIED
containerField NMTOKEN "coord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CoordinateDouble ((IS?), (%MetadataNodes;)?)>
<!ATTLIST CoordinateDouble
point %MFVec3d; #IMPLIED
containerField NMTOKEN "coord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CoordinateInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST CoordinateInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT CoordinateInterpolator2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST CoordinateInterpolator2D
key %MFFloat; #IMPLIED
keyValue %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Cylinder ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Cylinder
bottom %SFBool; "true"
height %SFFloat; "2"
radius %SFFloat; "1"
side %SFBool; "true"
top %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CylinderSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST CylinderSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
diskAngle %SFFloat; "0.26179167"
maxAngle %SFFloat; "-1"
minAngle %SFFloat; "0"
offset %SFFloat; "0"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT DirectionalLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST DirectionalLight
ambientIntensity %SFFloat; "0"
color %SFColor; "1 1 1"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
on %SFBool; "true"
global %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%InterchangeProfile;[
<!ELEMENT DirectionalLight (%MetadataNodes;)? >
<!ATTLIST DirectionalLight
color %SFColor; "1 1 1"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
on %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!-- Complete, concisely enumerated unordered version of ElevationGrid by Heiko Grussbach -->
<!ELEMENT ElevationGrid (IS?, (%MetadataNodes;)?, (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
|((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
|((%TextureCoordinateNodes;), (((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
|(%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
)?, (FogCoordinate)? ) >
<!ATTLIST ElevationGrid
height %MFFloat; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
creaseAngle %SFFloat; "0"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
xDimension %SFInt32; "0"
xSpacing %SFFloat; "1.0"
zDimension %SFInt32; "0"
zSpacing %SFFloat; "1.0"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ExternProtoDeclare ( field* ) >
<!ATTLIST ExternProtoDeclare
name NMTOKEN #REQUIRED
url %MFString; #REQUIRED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!ELEMENT Extrusion ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Extrusion
beginCap %SFBool; "true"
ccw %SFBool; "true"
convex %SFBool; "true"
creaseAngle %SFFloat; "0.0"
crossSection %MFVec2f; "1 1 1 -1 -1 -1 -1 1 1 1"
endCap %SFBool; "true"
orientation %MFRotation; "0 0 1 0"
scale %MFVec2f; "1 1"
solid %SFBool; "true"
spine %MFVec3f; "0 0 0 0 1 0"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- field is only used in a Script, ProtoDeclare or ExternProtoDeclare.
Initialization values for simple types go in the value attribute.
Contained content tags are only for initialization of SFNode or MFNode values. -->
<!ELEMENT field ( %ProtoNodes; )* >
<!ATTLIST field
name NMTOKEN #REQUIRED
accessType (inputOnly|outputOnly|initializeOnly|inputOutput) #REQUIRED
type ( %X3dFieldTypes; ) #REQUIRED
value CDATA #IMPLIED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!-- fieldValue resets default field values inside a ProtoInstance.
Initialization values for simple types go in the value attribute. Otherwise
contained-content tags are used for initialization of SFNode or MFNode values. -->
<!ELEMENT fieldValue ( %ProtoNodes; )* >
<!ATTLIST fieldValue
name NMTOKEN #REQUIRED
value CDATA #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT FillProperties ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST FillProperties
filled %SFBool; "true"
hatched %SFBool; "true"
hatchStyle %SFInt32; "1"
hatchColor %SFColor; "1 1 1"
containerField NMTOKEN "fillProperties"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Fog ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Fog
color %SFColor; "1 1 1"
fogType (LINEAR|EXPONENTIAL) "LINEAR"
visibilityRange %SFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT FontStyle ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST FontStyle
family %MFString; '"SERIF"'
horizontal %SFBool; "true"
justify %MFString; '"BEGIN"'
language %SFString; #IMPLIED
leftToRight %SFBool; "true"
size %SFFloat; "1.0"
spacing %SFFloat; "1.0"
style (PLAIN|BOLD|ITALIC|BOLDITALIC) "PLAIN"
topToBottom %SFBool; "true"
containerField NMTOKEN "fontStyle"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Minimum supported values:
family ' "SERIF" "SANS" "TYPEWRITER" '
justify ' "FIRST" "BEGIN" "MIDDLE" "END" ' -->
]]>
<!ELEMENT Group (IS?, (%MetadataNodes;)?, (%ChildrenNodes;|%WildcardNodes;)*) >
<!ATTLIST Group
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ImageTexture ((IS?), (%MetadataNodes;)?)>
<!ATTLIST ImageTexture
url %MFString; #IMPLIED
repeatS %SFBool; "true"
repeatT %SFBool; "true"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Complete, unordered, concisely enumerated version of IndexedFaceSet content model by Heiko Grussbach -->
<!ENTITY % ColorCoordinateNormalTextureCoordinateContentModel "(IS?, (%MetadataNodes;)?, (
((%ColorNodes;), (
((%CoordinateNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%CoordinateNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%CoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%CoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%CoordinateNodes;), (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%NormalNodes;), (
((%ColorNodes;), ( ((%CoordinateNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%TextureCoordinateNodes;), (
((%ColorNodes;), ( ((%CoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? ) )? )
|(%WildcardNodes;, (
((%ColorNodes;), ( ((%CoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
)?, (FogCoordinate)? )">
<![%ImmersiveProfile;[
<!ELEMENT IndexedFaceSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*) >
<!ELEMENT IndexedLineSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
<!ELEMENT LineSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
]]>
<![%InterchangeProfile;[
<!ELEMENT IndexedFaceSet ( (%MetadataNodes;)?, ((%ColorNodes;), Coordinate?)|(Coordinate, (%ColorNodes;)?) )? >
<!ELEMENT IndexedLineSet ( (%MetadataNodes;)?, ( Color, Coordinate? )|( Coordinate, Color?) )? >
<!ELEMENT LineSet ( (%MetadataNodes;)?, ( Color, Coordinate? )|( Coordinate, Color?) )? >
]]>
<!ATTLIST IndexedFaceSet
ccw %SFBool; "true"
colorIndex %MFInt32; #IMPLIED
colorPerVertex %SFBool; "true"
convex %SFBool; "true"
coordIndex %MFInt32; #IMPLIED
creaseAngle %SFFloat; "0"
normalIndex %MFInt32; #IMPLIED
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
texCoordIndex %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ATTLIST IndexedLineSet
colorIndex %MFInt32; #IMPLIED
colorPerVertex %SFBool; "true"
coordIndex %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ATTLIST LineSet
vertexCount %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Inline ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Inline
load %SFBool; "true"
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT EXPORT EMPTY>
<!ATTLIST EXPORT
localDEF IDREF #REQUIRED
AS NMTOKEN #IMPLIED>
<!ELEMENT IMPORT EMPTY>
<!ATTLIST IMPORT
inlineDEF IDREF #REQUIRED
importedDEF NMTOKEN #REQUIRED
AS ID #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT IntegerSequencer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST IntegerSequencer
key %MFFloat; #IMPLIED
keyValue %MFInt32; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IntegerTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST IntegerTrigger
integerKey %SFInt32; "-1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IS (connect)+ >
<!ELEMENT connect EMPTY >
<!ATTLIST connect
nodeField NMTOKEN #REQUIRED
protoField NMTOKEN #REQUIRED>
]]>
<!ELEMENT KeySensor ((IS?), (%MetadataNodes;)?)>
<!ATTLIST KeySensor
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT LineProperties ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST LineProperties
applied %SFBool; "true"
linetype %SFInt32; "1"
linewidthScaleFactor %SFFloat; "0"
containerField NMTOKEN "lineProperties"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT LoadSensor (IS?, (%MetadataNodes;)?, (%NetworkSensorNodes;|%WildcardNodes;)*)>
<!ATTLIST LoadSensor
enabled %SFBool; "true"
timeOut %SFTime; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT LOD (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST LOD
forceTransitions %SFBool; "false"
center %SFVec3f; "0 0 0"
range %MFFloat; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Material ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Material
ambientIntensity %SFFloat; "0.2"
diffuseColor %SFColor; "0.8 0.8 0.8"
emissiveColor %SFColor; "0 0 0"
shininess %SFFloat; "0.2"
specularColor %SFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "material"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%InterchangeProfile;[
<!ELEMENT Material ( (%MetadataNodes;)? ) >
<!ATTLIST Material
diffuseColor %SFColor; "0.8 0.8 0.8"
emissiveColor %SFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "material"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- *** XHTML exerpts to define meta tag *** -->
<!-- i18n, language, meta tag definitions from XHTML 1.0
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd -->
<!ENTITY % LanguageCode "NMTOKEN">
<!-- a language code, as per [IETF RFC3066/BCP47] ftp://ftp.isi.edu/in-notes/bcp/bcp47.txt -->
<!-- internationalization attributes
lang language code (backwards compatible)
xml:lang language code (as per XML 1.0 spec)
dir direction for weak/neutral text
-->
<!ENTITY % i18n "lang %LanguageCode; #IMPLIED
xml:lang %LanguageCode; #IMPLIED
dir (ltr|rtl) #IMPLIED">
<!ELEMENT head (component*, meta*)>
<!-- generic metadata information, matches HTML usage, made attribute 'name' required -->
<!ELEMENT meta EMPTY>
<!ATTLIST meta
http-equiv CDATA #IMPLIED
name CDATA #REQUIRED
content CDATA #REQUIRED
scheme CDATA #IMPLIED
%i18n; >
<!-- formal X3D Metadata nodes -->
<!ELEMENT MetadataDouble (IS?, (%MetadataNodes;|%WildcardNodes;)?)>
<!ATTLIST MetadataDouble
name %SFString; #IMPLIED
value %MFDouble; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MetadataFloat (IS?, (%MetadataNodes;|%WildcardNodes;)?)>
<!ATTLIST MetadataFloat
name %SFString; #IMPLIED
value %MFFloat; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MetadataInteger (IS?, (%MetadataNodes;|%WildcardNodes;)?)>
<!ATTLIST MetadataInteger
name %SFString; #IMPLIED
value %MFInt32; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MetadataString (IS?, (%MetadataNodes;|%WildcardNodes;)?)>
<!ATTLIST MetadataString
name %SFString; #IMPLIED
value %MFString; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- containerField discriminates whether child Metadata node(s) are 'metadata' or 'value' fields.
NMTOKEN vice enumeration, since containerField might have another value as field in a ProtoInstance. -->
<!ELEMENT MetadataSet (IS?, (%MetadataNodes;|%WildcardNodes;)*)>
<!ATTLIST MetadataSet
reference %SFString; #IMPLIED
name %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!-- FAQ: MovieTexture
containerField='source' when used as a Sound source,
containerField='texture' when used as a Appearance texture source-->
<!ELEMENT MovieTexture ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST MovieTexture
loop %SFBool; "false"
speed %SFFloat; "1.0"
startTime %SFTime; "0"
stopTime %SFTime; "0"
url %MFString; #IMPLIED
repeatS %SFBool; "true"
repeatT %SFBool; "true"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTexture ( (IS?), (%MetadataNodes;)?, (%MultiTextureChildTextures;|%WildcardNodes; )* ) >
<!ATTLIST MultiTexture
mode %MFString; #IMPLIED
source %MFString; #IMPLIED
function %MFString; #IMPLIED
color %SFColor; "1 1 1"
alpha %SFFloat; "1.0"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTextureCoordinate ((IS?), (%MetadataNodes;)?, (TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)* ) >
<!ATTLIST MultiTextureCoordinate
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT NavigationInfo ((IS?), (%MetadataNodes;)?)>
<!ATTLIST NavigationInfo
avatarSize %MFFloat; "0.25 1.6 0.75"
headlight %SFBool; "true"
speed %SFFloat; "1"
type %MFString; ""EXAMINE" "ANY""
transitionType %MFString; ""ANIMATE""
transitionTime %MFFloat; "1.0"
visibilityLimit %SFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT Normal ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Normal
vector %MFVec3f; #IMPLIED
containerField NMTOKEN "normal"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NormalInterpolator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST NormalInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT OrientationInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST OrientationInterpolator
key %MFFloat; #IMPLIED
keyValue %MFRotation; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT PixelTexture ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PixelTexture
image %SFImage; "0 0 0"
repeatS %SFBool; "true"
repeatT %SFBool; "true"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PlaneSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PlaneSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
enabled %SFBool; "true"
maxPosition %SFVec2f; "-1 -1"
minPosition %SFVec2f; "0 0"
offset %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PointLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PointLight
ambientIntensity %SFFloat; "0"
attenuation %SFVec3f; "1 0 0"
color %SFColor; "1 1 1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
on %SFBool; "true"
radius %SFFloat; "100"
global %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PointSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
]]>
<![%InterchangeProfile;[
<!ELEMENT PointSet ( (%MetadataNodes;)?, ( ( Color, Coordinate? )|( Coordinate, Color? ) )? ) >
]]>
<!ATTLIST PointSet
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PositionInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST PositionInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT PositionInterpolator2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PositionInterpolator2D
key %MFFloat; #IMPLIED
keyValue %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT ProtoInterface ( field* ) >
<!-- choice of required first node contained in ProtoBody constrained by valid ( %ProtoNodes; ) rather than %SceneNodes; ) > -->
<!ELEMENT ProtoBody ( ( %ProtoNodes; ), ( %SceneNodes; )* ) >
<!ELEMENT ProtoDeclare (ProtoInterface? , ProtoBody) > <!-- (|( field*, ( %ProtoNodes; ), ( %SceneNodes; )* )) -->
<!ATTLIST ProtoDeclare
name NMTOKEN #REQUIRED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!ELEMENT ProtoInstance ( fieldValue* , (IS?) ) >
<!-- ( %SceneNodes; )* --><!-- direct children disallowed, let fieldValue name="children" handle them -->
<!ATTLIST ProtoInstance
name NMTOKEN #REQUIRED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ProximitySensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ProximitySensor
center %SFVec3f; "0 0 0"
size %SFVec3f; "0 0 0"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT ROUTE EMPTY>
<!ATTLIST ROUTE
fromNode IDREF #REQUIRED
fromField NMTOKEN #REQUIRED
toNode IDREF #REQUIRED
toField NMTOKEN #REQUIRED>
<!ELEMENT ScalarInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST ScalarInterpolator
key %MFFloat; #IMPLIED
keyValue %MFFloat; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Scene ((%MetadataNodes;)?, (%SceneNodes;)*)>
<!-- Script is similar to PROTO regarding user definition of multiple fields -->
<![%ImmersiveProfile;[
<!-- script code should be included as CDATA sections. watch out on content-model order, originally ( #PCDATA|field )* -->
<!ELEMENT Script ( #PCDATA|%MetadataNodes;|field|IS )* >
<!ATTLIST Script
url %MFString; #IMPLIED
directOutput %SFBool; "false"
mustEvaluate %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Shape (IS?, (%MetadataNodes;)?, (
( (%AppearanceNodes;), (( %GeometryNodes; )|%WildcardNodes;)? ) |
( ( %GeometryNodes; ), ((%AppearanceNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, (( %GeometryNodes; )|(%AppearanceNodes;)|%WildcardNodes;)? )
)? ) >
]]>
<![%InterchangeProfile;[
<!ELEMENT Shape ( (%MetadataNodes;)?,
( (%AppearanceNodes;), ( %GeometryNodes; )? ) |
( ( %GeometryNodes; ), (%AppearanceNodes;)? )
)? >
]]>
<!ATTLIST Shape
containerField NMTOKEN "children"
class CDATA #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT Sound (IS?, (%MetadataNodes;)?, ( %AudioClipNodes;|%MovieTextureNodes;|%WildcardNodes; )? ) >
<!ATTLIST Sound
direction %SFVec3f; "0 0 1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
maxBack %SFFloat; "10"
maxFront %SFFloat; "10"
minBack %SFFloat; "1"
minFront %SFFloat; "1"
priority %SFFloat; "0"
spatialize %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Sphere ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Sphere
radius %SFFloat; "1"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT SphereSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SphereSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
enabled %SFBool; "true"
offset %SFRotation; "0 1 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT SpotLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SpotLight
ambientIntensity %SFFloat; "0"
attenuation %SFVec3f; "1 0 0"
beamWidth %SFFloat; "1.570796"
color %SFColor; "1 1 1"
cutOffAngle %SFFloat; "0.785398"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
on %SFBool; "true"
radius %SFFloat; "100"
global %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT StaticGroup (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST StaticGroup
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT StringSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST StringSensor
enabled %SFBool; "true"
deletionAllowed %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Switch (IS?, (%MetadataNodes;)?, (%ChildrenNodes;|%WildcardNodes;)*)>
<!ATTLIST Switch
whichChoice %SFInt32; "-1"
containerField NMTOKEN "children"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT Text (IS?, (%MetadataNodes;)?, ( (%FontStyleNodes;)?|%WildcardNodes; ) ) >
<!ATTLIST Text
string %MFString; #IMPLIED
length %MFFloat; #IMPLIED
maxExtent %SFFloat; "0.0"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- backTexture, bottomTexture, frontTexture, leftTexture, rightTexture, topTexture; could use rule for 0..6 children here -->
<!ELEMENT TextureBackground (IS?, (%MetadataNodes;)?, (%Texture2DNodes;)* )>
<!ATTLIST TextureBackground
groundAngle %MFFloat; #IMPLIED
groundColor %MFColor; #IMPLIED
skyAngle %MFFloat; #IMPLIED
skyColor %MFColor; "0 0 0"
transparency %MFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<!ELEMENT TextureCoordinate ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TextureCoordinate
point %MFVec2f; #IMPLIED
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT TextureCoordinateGenerator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureCoordinateGenerator
mode %TextureCoordinateGeneratorModes; "SPHERE"
parameter %MFFloat; #IMPLIED
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureTransform ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureTransform
center %SFVec2f; "0 0"
rotation %SFFloat; "0"
scale %SFVec2f; "1 1"
translation %SFVec2f; "0 0"
containerField NMTOKEN "textureTransform"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTextureTransform ((IS?), (TextureTransform|ProtoInstance)* ) >
<!ATTLIST MultiTextureTransform
containerField NMTOKEN "textureTransform"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT TimeSensor ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TimeSensor
cycleInterval %SFTime; "1.0"
enabled %SFBool; "true"
loop %SFBool; "false"
startTime %SFTime; "0"
stopTime %SFTime; "0"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<![%ImmersiveProfile;[
<!ELEMENT TimeTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TimeTrigger
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TouchSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TouchSensor
description %SFString; #IMPLIED
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Transform (IS?, (%MetadataNodes;)?, (%ChildrenNodes;|%WildcardNodes;)*)>
<!ATTLIST Transform
center %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IndexedTriangleFanSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*)>
<!ATTLIST IndexedTriangleFanSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IndexedTriangleSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*)>
<!ATTLIST IndexedTriangleSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IndexedTriangleStripSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*)>
<!ATTLIST IndexedTriangleStripSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TriangleFanSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*)>
<!ATTLIST TriangleFanSet
fanCount %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TriangleSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*)>
<!ATTLIST TriangleSet
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TriangleStripSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*)>
<!ATTLIST TriangleStripSet
stripCount %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Viewpoint ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Viewpoint
fieldOfView %SFFloat; "0.785398"
jump %SFBool; "true"
orientation %SFRotation; "0 0 1 0"
position %SFVec3f; "0 0 10"
description %SFString; #IMPLIED
centerOfRotation %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- centerOfRotation point relates to NavigationInfo EXAMINE mode. -->
<![%ImmersiveProfile;[
<!ELEMENT VisibilitySensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST VisibilitySensor
center %SFVec3f; "0 0 0"
enabled %SFBool; "true"
size %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT WorldInfo ((IS?), (%MetadataNodes;)?)>
<!ATTLIST WorldInfo
info %MFString; #IMPLIED
title %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT X3D (head?, Scene)>
<!ATTLIST X3D
xmlns:xsd CDATA "http://www.w3.org/2001/XMLSchema-instance"
xsd:noNamespaceSchemaLocation CDATA "http://www.web3d.org/specifications/x3d-3.1.xsd"
profile %profileNames; #REQUIRED
version (3.0|3.1) #REQUIRED>
<!-- EspduTransform includes DIS CollisionPdu DetonatePdu FirePdu -->
<![%DISComponent;[
<!ELEMENT EspduTransform (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST EspduTransform
enabled %SFBool; "true"
marking %SFString; #IMPLIED
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
forceID %SFInt32; "0"
entityKind %SFInt32; "0"
entityDomain %SFInt32; "0"
entityCountry %SFInt32; "0"
entityCategory %SFInt32; "0"
entitySubCategory %SFInt32; "0"
entitySpecific %SFInt32; "0"
entityExtra %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
center %SFVec3f; "0 0 0"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
deadReckoning %SFInt32; "0"
linearVelocity %SFVec3f; "0 0 0"
linearAcceleration %SFVec3f; "0 0 0"
fired1 %SFBool; "false"
fired2 %SFBool; "false"
collisionType %SFInt32; "0"
detonationLocation %SFVec3f; "0 0 0"
detonationRelativeLocation %SFVec3f; "0 0 0"
detonationResult %SFInt32; "0"
eventApplicationID %SFInt32; "1"
eventEntityID %SFInt32; "0"
eventNumber %SFInt32; "0"
eventSiteID %SFInt32; "0"
munitionStartPoint %SFVec3f; "0 0 0"
munitionEndPoint %SFVec3f; "0 0 0"
warhead %SFInt32; "0"
fuse %SFInt32; "0"
munitionQuantity %SFInt32; "0"
firingRate %SFInt32; "0"
firingRange %SFFloat; "0"
munitionSiteID %SFInt32; "0"
munitionApplicationID %SFInt32; "1"
munitionEntityID %SFInt32; "0"
fireMissionIndex %SFInt32; "0"
articulationParameterCount %SFInt32; "0"
articulationParameterDesignatorArray %MFInt32; #IMPLIED
articulationParameterChangeIndicatorArray %MFInt32; #IMPLIED
articulationParameterIdPartAttachedToArray %MFInt32; #IMPLIED
articulationParameterTypeArray %MFInt32; #IMPLIED
articulationParameterArray %MFFloat; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT ReceiverPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ReceiverPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
receivedPower %SFFloat; "0.0"
receiverState %SFInt32; "0"
transmitterSiteID %SFInt32; "0"
transmitterApplicationID %SFInt32; "0"
transmitterEntityID %SFInt32; "0"
transmitterRadioID %SFInt32; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT SignalPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SignalPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
encodingScheme %SFInt32; "0"
tdlType %SFInt32; "0"
sampleRate %SFInt32; "0"
samples %SFInt32; "0"
dataLength %SFInt32; "0"
data %MFInt32; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT TransmitterPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TransmitterPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
antennaLocation %SFVec3f; "0 0 0"
antennaPatternLength %SFInt32; "0"
antennaPatternType %SFInt32; "0"
cryptoKeyID %SFInt32; "0"
cryptoSystem %SFInt32; "0"
frequency %SFInt32; "0"
inputSource %SFInt32; "0"
lengthOfModulationParameters %SFInt32; "0"
modulationTypeDetail %SFInt32; "0"
modulationTypeMajor %SFInt32; "0"
modulationTypeSpreadSpectrum %SFInt32; "0"
modulationTypeSystem %SFInt32; "0"
power %SFFloat; "0.0"
radioEntityTypeCategory %SFInt32; "0"
radioEntityTypeCountry %SFInt32; "0"
radioEntityTypeDomain %SFInt32; "0"
radioEntityTypeKind %SFInt32; "0"
radioEntityTypeNomenclature %SFInt32; "0"
radioEntityTypeNomenclatureVersion %SFInt32; "0"
relativeAntennaLocation %SFVec3f; "0 0 0"
transmitFrequencyBandwidth %SFFloat; "0.0"
transmitState %SFInt32; "0"
containerField NMTOKEN "children"
class CDATA ""
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%GeoSpatialComponent;[
<!ELEMENT GeoCoordinate ( IS?, (%MetadataNodes;)?, GeoOrigin? ) > <!-- X3DCoordinateNodeType -->
<!ATTLIST GeoCoordinate
geoSystem %MFString; '"GD" "WE"'
point %MFVec3d; #IMPLIED
containerField NMTOKEN "coord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- need to restrict GeoOrigin to first element, or relax schema restriction -->
<!ELEMENT GeoElevationGrid (IS?, (%MetadataNodes;)?, (
((%ColorNodes;), (
(GeoOrigin, ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( (GeoOrigin,((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
(GeoOrigin,((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( (GeoOrigin,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|(GeoOrigin, (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%NormalNodes;), (
((%ColorNodes;), ( (GeoOrigin,((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),(GeoOrigin|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%TextureCoordinateNodes;), (
((%ColorNodes;), ( (GeoOrigin,((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),(GeoOrigin|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? ) )? )
|(%WildcardNodes;, (
((%ColorNodes;), ( (GeoOrigin,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
)? ) >
<!ATTLIST GeoElevationGrid
geoSystem %MFString; '"GD" "WE"'
geoGridOrigin %SFVec3d; "0 0 0"
xDimension %SFInt32; "0"
xSpacing %SFDouble; "1.0"
yScale %SFFloat; "1.0"
zDimension %SFInt32; "0"
zSpacing %SFDouble; "1.0"
height %MFDouble; "0 0"
normalPerVertex %SFBool; "true"
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
creaseAngle %SFFloat; "0"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoLocation (IS?, (%MetadataNodes;)?,
( %ChildrenNodes;|%WildcardNodes; )*, (GeoOrigin, ( %ChildrenNodes;|%WildcardNodes; )* )? ) >
<!ATTLIST GeoLocation
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoLOD (IS?, (%MetadataNodes;)?,
( %ChildrenNodes;|%WildcardNodes; )*, (GeoOrigin, ( %ChildrenNodes;|%WildcardNodes; )* )? ) >
<!ATTLIST GeoLOD
geoSystem %MFString; '"GD" "WE"'
rootUrl %MFString; #IMPLIED
child1Url %MFString; #IMPLIED
child2Url %MFString; #IMPLIED
child3Url %MFString; #IMPLIED
child4Url %MFString; #IMPLIED
range %SFFloat; "10"
center %SFVec3d; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoMetadata ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST GeoMetadata
url %MFString; #IMPLIED
data IDREFS #IMPLIED
summary %MFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!--
title %SFString; #IMPLIED
description %SFString; #IMPLIED
coordinateSystem %SFString; #IMPLIED
horizontalDatum %SFString; #IMPLIED
verticalDatum %SFString; #IMPLIED
ellipsoid %SFString; #IMPLIED
extent %SFString; #IMPLIED
resolution %SFString; #IMPLIED
originator %SFString; #IMPLIED
copyright %SFString; #IMPLIED
date %SFString; #IMPLIED
metadataFormat %SFString; #IMPLIED
dataUrl %SFString; #IMPLIED
dataFormat %SFString; #IMPLIED
-->
<!ELEMENT GeoOrigin ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST GeoOrigin
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
rotateYUp %SFBool; "false"
containerField NMTOKEN "geoOrigin"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoPositionInterpolator ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoPositionInterpolator
geoSystem %MFString; '"GD" "WE"'
key %MFFloat; #IMPLIED
keyValue %MFVec3d; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoTouchSensor ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoTouchSensor
geoSystem %MFString; '"GD" "WE"'
enabled %SFBool; "true"
description %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoViewpoint ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoViewpoint
geoSystem %MFString; '"GD" "WE"'
description %SFString; #IMPLIED
position %SFVec3d; "0 0 100000"
orientation %SFRotation; "0 0 1 0"
fieldOfView %SFFloat; "0.785398"
jump %SFBool; "true"
navType %MFString; '"EXAMINE" "ANY"'
headlight %SFBool; "true"
speedFactor %SFFloat; "1.0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- Note that setting JointNames as enumerations does not permit validation of other names. -->
<![%HAnimComponent;[
<!ENTITY % JointNames "(
c1|c2|c3|c4|c5|c6|c7|jaw|HumanoidRoot|l_acromioclavicular|l_ankle|l_calf|
l_clavicle|l_elbow|l_eyeball|l_eyeball_joint|l_eyebrow|l_eyebrow_joint|
l_eyelid|l_eyelid_joint|l_forearm|l_forefoot|l_hand|l_hindfoot|l_hip|
l_index_distal|l_index_metacarpal|l_index_middle|l_index_proximal|
l_index0|l_index1|l_index2|l_index3|l_knee|l_metatarsal|l_middistal|
l_middle_distal|l_middle_metacarpal|l_middle_middle|l_middle_proximal|
l_middle0|l_middle1|l_middle2|l_middle3|l_midproximal|l_midtarsal|
l_pinky_distal|l_pinky_metacarpal|l_pinky_middle|l_pinky_proximal|
l_pinky0|l_pinky1|l_pinky2|l_pinky3|l_ring_distal|l_ring_metacarpal|
l_ring_middle|l_ring_proximal|l_ring0|l_ring1|l_ring2|l_ring3|l_scapula|
l_shoulder|l_sternoclavicular|l_subtalar|l_thigh|l_thumb_distal|
l_thumb_metacarpal|l_thumb_proximal|l_thumb1|l_thumb2|l_thumb3|
l_upperarm|l_wrist|l1|l2|l3|l4|l5|pelvis|r_acromioclavicular|r_ankle|
r_calf|r_clavicle|r_elbow|r_eyeball|r_eyeball_joint|r_eyebrow|
r_eyebrow_joint|r_eyelid|r_eyelid_joint|r_forearm|r_forefoot|r_hand|
r_hindfoot|r_hip|r_index_distal|r_index_metacarpal|r_index_middle|
r_index_proximal|r_index0|r_index1|r_index2|r_index3|r_knee|r_metatarsal|
r_middistal|r_middle_distal|r_middle_metacarpal|r_middle_middle|
r_middle_proximal|r_middle0|r_middle1|r_middle2|r_middle3|r_midproximal|
r_midtarsal|r_pinky_distal|r_pinky_metacarpal|r_pinky_middle|
r_pinky_proximal|r_pinky0|r_pinky1|r_pinky2|r_pinky3|r_ring_distal|
r_ring_metacarpal|r_ring_middle|r_ring_proximal|r_ring0|r_ring1|r_ring2|
r_ring3|r_scapula|r_shoulder|r_sternoclavicular|r_subtalar|r_thigh|
r_thumb_distal|r_thumb_metacarpal|r_thumb_proximal|r_thumb1|r_thumb2|
r_thumb3|r_upperarm|r_wrist|sacroiliac|sacrum|skull|skullbase|
t1|t2|t3|t4|t5|t6|t7|t8|t9|t10|t11|t12|temporomandibular|
vc1|vc2|vc3|vc4|vc5|vc6|vc7|vl1|vl2|vl3|vl4|vl5|
vt1|vt2|vt3|vt4|vt5|vt6|vt7|vt8|vt9|vt10|vt11|vt12)" >
<!ELEMENT HAnimDisplacer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST HAnimDisplacer
name %SFString; #IMPLIED
coordIndex %MFInt32; #IMPLIED
displacements %MFVec3f; #IMPLIED
weight %SFFloat; "0.0"
containerField NMTOKEN "displacers"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT HAnimHumanoid (IS?, (%MetadataNodes;)?,
(HAnimJoint*, HAnimSegment*, HAnimSite*, (%CoordinateNodes;)?, (%NormalNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) ) >
<!-- skeleton/joints, segments, sites, skinCoord, skinNormal, skin/viewpoints -->
<!-- note that joints, segments and sites should be USE nodes. skin Shapes will USE preceding skinCoord, skinNormal definitions. -->
<!ATTLIST HAnimHumanoid
name %SFString; #IMPLIED
version %SFString; #IMPLIED
info %MFString; #IMPLIED
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- not treated as separate attributes, instead these are
encoded as "attribute=value" SFString entries in the
MFString info field.
humanoidVersion %SFString; #IMPLIED
authorName %SFString; #IMPLIED
authorEmail %SFString; #IMPLIED
copyright %SFString; #IMPLIED
creationDate %SFString; #IMPLIED
usageRestrictions %SFString; #IMPLIED
age %SFString; #IMPLIED
gender %SFString; #IMPLIED
height %SFString; #IMPLIED
weight %SFString; #IMPLIED
-->
<![%HAnimComponent;[
<!ELEMENT HAnimJoint (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|HAnimDisplacer|%WildcardNodes; )* ) >
<!ATTLIST HAnimJoint
name %JointNames; #IMPLIED
ulimit %MFFloat; #IMPLIED
llimit %MFFloat; #IMPLIED
limitOrientation %SFRotation; "0 0 1 0"
skinCoordIndex %MFInt32; #IMPLIED
skinCoordWeight %MFFloat; #IMPLIED
stiffness %MFFloat; "0 0 0"
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Multiple HAnimDisplacer nodes must appear consecutively inside HAnimSegment -->
<!ELEMENT HAnimSegment (IS?, (%MetadataNodes;)?, (
((%ChildrenNodes;|%WildcardNodes;)*, ((Coordinate, HAnimDisplacer*)|(HAnimDisplacer+, Coordinate?))? ) |
(Coordinate, (((%ChildrenNodes;)*, HAnimDisplacer*)|(HAnimDisplacer+, (%ChildrenNodes;|%WildcardNodes;)*))? ) |
(HAnimDisplacer+, ((Coordinate, (%ChildrenNodes;|%WildcardNodes;)*)|((%ChildrenNodes;|%WildcardNodes;)*, Coordinate?))? )?
) ) >
<!ATTLIST HAnimSegment
name %JointNames; #IMPLIED
mass %SFFloat; "0"
centerOfMass %SFVec3f; "0 0 0"
momentsOfInertia %MFFloat; "0 0 0 0 0 0 0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT HAnimSite (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST HAnimSite
name %SFString; #IMPLIED
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%NurbsComponent;[
<!ELEMENT Contour2D (IS?, (%MetadataNodes;)?, ( %NurbsControlCurveNodes;|%WildcardNodes; )* ) >
<!ATTLIST Contour2D
containerField NMTOKEN "trimmingContour"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ContourPolyline2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ContourPolyline2D
point %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- child CoordinateNode has containerField controlPoint -->
<!ELEMENT NurbsCurve ( (IS?), (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )? ) >
<!ATTLIST NurbsCurve
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
tessellation %SFInt32; "0"
closed %SFBool; "false"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsCurve2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST NurbsCurve2D
controlPoint %MFVec2d; #IMPLIED
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
tessellation %SFInt32; "0"
closed %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsOrientationInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsOrientationInterpolator
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsPositionInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsPositionInterpolator
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSurfaceInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsSurfaceInterpolator
weight %MFDouble; #IMPLIED
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSet (IS?, (%MetadataNodes;)?, (NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|%WildcardNodes; )* ) >
<!ATTLIST NurbsSet
tessellationScale %SFFloat; "1.0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsPatchSurface (IS?, (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )?, ( %TextureCoordinateNodes;|NurbsTextureCoordinate)? ) >
<!ATTLIST NurbsPatchSurface
uClosed %SFBool; "false"
vClosed %SFBool; "false"
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
uTessellation %SFInt32; "0"
vTessellation %SFInt32; "0"
weight %MFDouble; #IMPLIED
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsTrimmedSurface (IS?, (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )?, ( %TextureCoordinateNodes;|NurbsTextureCoordinate)?, Contour2D* ) >
<!ATTLIST NurbsTrimmedSurface
uClosed %SFBool; "false"
vClosed %SFBool; "false"
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
uTessellation %SFInt32; "0"
vTessellation %SFInt32; "0"
weight %MFDouble; #IMPLIED
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSweptSurface (IS?, (%MetadataNodes;)?, (NurbsCurve|%WildcardNodes; )?, ( %NurbsControlCurveNodes;|%WildcardNodes; )? ) >
<!ATTLIST NurbsSweptSurface
ccw %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSwungSurface (IS?, (%MetadataNodes;)?, ( ( %NurbsControlCurveNodes;|%WildcardNodes; ), ( %NurbsControlCurveNodes;|%WildcardNodes; )? )? ) >
<!ATTLIST NurbsSwungSurface
ccw %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsTextureCoordinate ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsTextureCoordinate
controlPoint %MFVec2f; #IMPLIED
weight %MFFloat; #IMPLIED
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%CadComponent;[
<!ELEMENT CADAssembly (IS?, (%MetadataNodes;)?, (%ChildrenNodes;|CADPart|%WildcardNodes;)*)>
<!ATTLIST CADAssembly
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
name %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CADFace (IS?, (%MetadataNodes;)?, (Shape|LOD|%WildcardNodes;)*)>
<!ATTLIST CADFace
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
name %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CADLayer (IS?, (%MetadataNodes;)?, (%ChildrenNodes;|%WildcardNodes;)*)>
<!ATTLIST CADLayer
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
name %SFString; #IMPLIED
visible %MFBool; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CADPart (IS?, (%MetadataNodes;)?, (CADFace|%WildcardNodes;)*)>
<!ATTLIST CADPart
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
center %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
name %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT QuadSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*)>
<!ATTLIST QuadSet
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IndexedQuadSet ( (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*) ) >
<!ATTLIST IndexedQuadSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%CubeMapTexturingComponent;[
<!-- containerField values: front back left right top bottom. could use rule for 0..6 children here -->
<!ELEMENT ComposedCubeMapTexture (IS?, (%MetadataNodes;)?, (%Texture2DNodes;)* )>
<!ATTLIST ComposedCubeMapTexture
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT GeneratedCubeMapTexture (IS?, (%MetadataNodes;)? )>
<!ATTLIST GeneratedCubeMapTexture
update (NONE|NEXT_FRAME_ONLY|ALWAYS) "NONE"
size %SFInt32; "128"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT ImageCubeMapTexture (IS?, (%MetadataNodes;)? )>
<!ATTLIST ImageCubeMapTexture
url %MFString; #IMPLIED
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<!-- parent content model and default containerField names for most ShadersComponent nodes is not clear.. -->
<![%ShadersComponent;[
<!ELEMENT ComposedShader ( (IS?), (%MetadataNodes;)?, (ShaderPart|%WildcardNodes;)*, (field)* ) >
<!ATTLIST ComposedShader
language %SFString; #IMPLIED
containerField CDATA "shaders"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT FloatVertexAttribute ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST FloatVertexAttribute
value %MFFloat; #IMPLIED
name %SFString; #IMPLIED
numComponents (1|2|3|4) "4"
containerField CDATA "attrib"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Matrix3VertexAttribute ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Matrix3VertexAttribute
value %MFMatrix3f; #IMPLIED
name %SFString; #IMPLIED
containerField CDATA "attrib"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Matrix4VertexAttribute ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Matrix4VertexAttribute
value %MFMatrix4f; #IMPLIED
name %SFString; #IMPLIED
containerField CDATA "attrib"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PackagedShader ( (IS?), (%MetadataNodes;)?, (field)* ) >
<!ATTLIST PackagedShader
language %SFString; #IMPLIED
containerField CDATA "shaders"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ProgramShader ( (IS?), (%MetadataNodes;)?, (ShaderProgram|%WildcardNodes;)*, (field)* ) >
<!ATTLIST ProgramShader
language %SFString; #IMPLIED
containerField CDATA "shaders"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ShaderPart ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ShaderPart
url %MFString; #IMPLIED
type ( VERTEX|FRAGMENT ) #IMPLIED
containerField NMTOKEN "parts"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ShaderProgram ( (IS?), (%MetadataNodes;)?, (field)* ) >
<!ATTLIST ShaderProgram
url %MFString; #IMPLIED
type ( VERTEX|FRAGMENT ) #IMPLIED
containerField NMTOKEN "programs"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%Texture3DComponent;[
<!ELEMENT Composed3DTexture ((IS?), (%MetadataNodes;)?, (%Texture2DNodes;)*)>
<!ATTLIST Composed3DTexture
repeatS %SFBool; "false"
repeatT %SFBool; "false"
repeatR %SFBool; "false"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Image3DTexture ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Image3DTexture
url %MFString; #IMPLIED
repeatS %SFBool; "false"
repeatT %SFBool; "false"
repeatR %SFBool; "false"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Pixel3DTexture ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Pixel3DTexture
image %MFInt32; "0 0 0 0"
repeatS %SFBool; "false"
repeatT %SFBool; "false"
repeatR %SFBool; "false"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureCoordinate3D ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TextureCoordinate3D
point %MFVec3f; #IMPLIED
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureCoordinate4D ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TextureCoordinate4D
point %MFVec4f; #IMPLIED
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureMatrixTransform ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureMatrixTransform
matrix %SFMatrix4f; "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"
containerField NMTOKEN "textureTransform"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureTransform3D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureTransform3D
center %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
translation %SFVec3f; "0 0 0"
containerField NMTOKEN "textureTransform"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT LocalFog ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST LocalFog
enabled %SFBool; "true"
color %SFColor; "1 1 1"
fogType (LINEAR|EXPONENTIAL) "LINEAR"
visibilityRange %SFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT FogCoordinate ((IS?), (%MetadataNodes;)?)>
<!ATTLIST FogCoordinate
depth %MFVec3f; #IMPLIED
containerField NMTOKEN "fogCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- Finally, Web3dExtensionComponent from separate DTDs. Note that Web3dExtensionComponent
content-model extensions needed to be added at beginning, prior to node-type definitions. -->
<![%Web3dExtensionComponent;[
<!ENTITY % Web3dExtensionsPublicDTD SYSTEM "x3d-3.1-Web3dExtensionsPublic.dtd">
<!ENTITY % Web3dExtensionsPrivateDTD SYSTEM "x3d-3.1-Web3dExtensionsPrivate.dtd">
%Web3dExtensionsPublicDTD;
%Web3dExtensionsPrivateDTD;
]]>
x3d-3.1-InputOutputFields.dtd extends the X3D version 3.1 DTD by also
including fields with accessType inputOnly and outputOnly.
Although X3D scene files cannot validly set values for any of these attributes,
the DTD defines names and relationships of all fields and can be used by
DTD-aware processing tools.
<!-- # # X3D InputOutputFields DTD: # # http://www.web3d.org/specifications/x3d-3.1-InputOutputFields.dtd # # current version: 3.1.0 # # revised: 2 September 2007 # # Author: Don Brutzman # # Purpose: the primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by field definitions in x3d-3.1-InputOutputFields.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.1.dtd # http://www.web3d.org/specifications/x3d-3.1-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.1-Web3dExtensions.dtd # # Typical system location for this resource is adjacent to x3d-3.1.dtd: # file://c:/www.web3d.org/specifications/x3d-3.1-InputOutputFields.dtd # file:///www.web3d.org/specifications/x3d-3.1-InputOutputFields.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # # Note on typing: # CDATA used for %SFBool; definitions to allow #FIXED "" initialization, # since DTD rules otherwise require enumeration values to be # initialized to true|false. # --> <!ATTLIST AudioClip elapsedTime %SFTime; #FIXED "" duration_changed %SFTime; #FIXED "" isPaused CDATA #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST Background set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST BooleanFilter set_boolean CDATA #FIXED "" inputTrue CDATA #FIXED "" inputFalse CDATA #FIXED "" inputNegate CDATA #FIXED ""> <!-- value_changed is CDATA instead of %SFBool% in order to set empty value on an enumeration --> <!ATTLIST BooleanSequencer set_fraction %SFFloat; #FIXED "" value_changed CDATA #FIXED "" previous CDATA #FIXED "" next CDATA #FIXED ""> <!ATTLIST BooleanToggle set_boolean CDATA #FIXED ""> <!ATTLIST BooleanTrigger set_triggerTime %SFTime; #FIXED "" triggerTrue CDATA #FIXED ""> <!ATTLIST Collision collideTime %SFTime; #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST ColorInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFColor; #FIXED ""> <!ATTLIST CoordinateInterpolator set_fraction %SFFloat; #FIXED "" value_changed %MFVec3f; #FIXED ""> <!ATTLIST CoordinateInterpolator2D set_fraction %SFFloat; #FIXED "" value_changed %MFVec2f; #FIXED ""> <!ATTLIST CylinderSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" rotation_changed %SFRotation; #FIXED "" trackPoint_changed %SFVec3f; #FIXED ""> <!ATTLIST ElevationGrid set_height %MFFloat; #FIXED ""> <!ATTLIST Extrusion set_crossSection %MFVec2f; #FIXED "" set_orientation %MFRotation; #FIXED "" set_scale %MFVec2f; #FIXED "" set_spine %MFVec3f; #FIXED ""> <!ATTLIST Fog set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST IndexedFaceSet set_colorIndex %MFInt32; #FIXED "" set_coordIndex %MFInt32; #FIXED "" set_normalIndex %MFInt32; #FIXED "" set_texCoordIndex %MFInt32; #FIXED ""> <!ATTLIST IndexedLineSet set_colorIndex %MFInt32; #FIXED "" set_coordIndex %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleFanSet set_index %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleSet set_index %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleStripSet set_index %MFInt32; #FIXED ""> <!ATTLIST IntegerSequencer set_fraction %SFFloat; #FIXED "" value_changed %SFInt32; #FIXED "" previous CDATA #FIXED "" next CDATA #FIXED ""> <!ATTLIST IntegerTrigger set_boolean CDATA #FIXED "" triggerValue %SFInt32; #FIXED ""> <!ATTLIST KeySensor isActive CDATA #FIXED "" keyPress %SFString; #FIXED "" keyRelease %SFString; #FIXED "" actionKeyPress %SFInt32; #FIXED "" actionKeyRelease %SFInt32; #FIXED "" altKey CDATA #FIXED "" controlKey CDATA #FIXED "" shiftKey CDATA #FIXED ""> <!ATTLIST LoadSensor isActive CDATA #FIXED "" isLoaded CDATA #FIXED "" loadTime %SFTime; #FIXED "" progress %SFFloat; #FIXED ""> <!ATTLIST LOD level_changed %SFInt32; #FIXED ""> <!ATTLIST MovieTexture elapsedTime %SFTime; #FIXED "" duration_changed %SFTime; #FIXED "" isPaused CDATA #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST NavigationInfo set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" transitionComplete CDATA #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST NormalInterpolator set_fraction %SFFloat; #FIXED "" value_changed %MFVec3f; #FIXED ""> <!ATTLIST OrientationInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFRotation; #FIXED ""> <!ATTLIST PlaneSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" trackPoint_changed %SFVec3f; #FIXED "" translation_changed %SFVec3f; #FIXED ""> <!ATTLIST PositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED ""> <!ATTLIST PositionInterpolator2D set_fraction %SFFloat; #FIXED "" value_changed %SFVec2f; #FIXED ""> <!ATTLIST ProximitySensor isActive CDATA #FIXED "" position_changed %SFVec3f; #FIXED "" orientation_changed %SFRotation; #FIXED "" centerOfRotation_changed %SFVec3f; #FIXED "" enterTime %SFTime; #FIXED "" exitTime %SFTime; #FIXED ""> <!ATTLIST ScalarInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFFloat; #FIXED ""> <!ATTLIST SphereSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" rotation_changed %SFRotation; #FIXED "" trackPoint_changed %SFVec3f; #FIXED ""> <!ATTLIST StringSensor isActive CDATA #FIXED "" enteredText %SFString; #FIXED "" finalText %SFString; #FIXED ""> <!ATTLIST Text lineBounds %MFVec2f; #FIXED "" textBounds %SFVec2f; #FIXED ""> <!ATTLIST TextureBackground set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST TimeSensor elapsedTime %SFTime; #FIXED "" cycleTime %SFTime; #FIXED "" fraction_changed %SFFloat; #FIXED "" isActive CDATA #FIXED "" isPaused CDATA #FIXED "" time %SFTime; #FIXED ""> <!ATTLIST TimeTrigger set_boolean CDATA #FIXED "" triggerTime %SFTime; #FIXED ""> <!ATTLIST TouchSensor hitNormal_changed %SFVec3f; #FIXED "" hitPoint_changed %SFVec3f; #FIXED "" hitTexCoord_changed %SFVec2f; #FIXED "" isActive CDATA #FIXED "" isOver CDATA #FIXED "" touchTime %SFTime; #FIXED ""> <!ATTLIST Viewpoint set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST VisibilitySensor enterTime %SFTime; #FIXED "" exitTime %SFTime; #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST EspduTransform isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" set_articulationParameterValue0 %SFFloat; #FIXED "" set_articulationParameterValue1 %SFFloat; #FIXED "" set_articulationParameterValue2 %SFFloat; #FIXED "" set_articulationParameterValue3 %SFFloat; #FIXED "" set_articulationParameterValue4 %SFFloat; #FIXED "" set_articulationParameterValue5 %SFFloat; #FIXED "" set_articulationParameterValue6 %SFFloat; #FIXED "" set_articulationParameterValue7 %SFFloat; #FIXED "" articulationParameterValue0_changed %SFFloat; #FIXED "" articulationParameterValue1_changed %SFFloat; #FIXED "" articulationParameterValue2_changed %SFFloat; #FIXED "" articulationParameterValue3_changed %SFFloat; #FIXED "" articulationParameterValue4_changed %SFFloat; #FIXED "" articulationParameterValue5_changed %SFFloat; #FIXED "" articulationParameterValue6_changed %SFFloat; #FIXED "" articulationParameterValue7_changed %SFFloat; #FIXED "" isCollided CDATA #FIXED "" collideTime %SFTime; #FIXED "" isDetonated CDATA #FIXED "" detonateTime %SFTime; #FIXED "" firedTime %SFTime; #FIXED "" > <!ATTLIST ReceiverPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST SignalPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST TransmitterPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST GeoElevationGrid set_height %MFDouble; #FIXED ""> <!ATTLIST GeoPositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED "" geovalue_changed %SFVec3d; #FIXED ""> <!ATTLIST GeoTouchSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" touchTime %SFTime; #FIXED "" hitGeoCoord_changed %SFVec3d; #FIXED "" hitNormal_changed %SFVec3f; #FIXED "" hitPoint_changed %SFVec3f; #FIXED "" hitTexCoord_changed %SFVec2f; #FIXED ""> <!ATTLIST GeoViewpoint set_bind CDATA #FIXED "" set_orientation %SFRotation; #FIXED "" set_position %SFVec3d; #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST NurbsOrientationInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFRotation; #FIXED ""> <!ATTLIST NurbsPositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED ""> <!ATTLIST NurbsSurfaceInterpolator set_fraction %SFVec2f; #FIXED "" normal_changed %SFVec3f; #FIXED "" position_changed %SFVec3f; #FIXED ""> <!ATTLIST IndexedQuadSet set_index %MFInt32; #FIXED ""> <!ATTLIST ComposedShader isSelected CDATA #FIXED "" isValid CDATA #FIXED "" activate CDATA #FIXED ""> <!ATTLIST PackagedShader isSelected CDATA #FIXED "" isValid CDATA #FIXED "" activate CDATA #FIXED ""> <!ATTLIST ProgramShader isSelected CDATA #FIXED "" isValid CDATA #FIXED "" activate CDATA #FIXED "">
The public X3D DTD extension will be used to contain approved extensions that have not yet been included in Part 1 of ISO/IEC 19775. The form of the public X3D DTD extension is depicted below:
<!-- # # X3D Web3D Extensions Public DTD: # # http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPublic.dtd # # current version: 3.1.0 # # created: 30 April 2005 # revised: 30 April 2005 # # Maintainer: Don Brutzman # # Purpose: support Web3D Consortium extensions to the X3D tagset. # The primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by node definitions in x3d-3.0-Web3dExtensionsPublic.dtd # and x3d-3.0-Web3dExtensionsPrivate.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.0.dtd # http://www.web3d.org/specifications/x3d-3.0-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPublic.dtd # http://www.web3d.org/specifications/x3d-3.0-Web3dExtensionsPrivate.dtd # # Web3D extensions update URL: # http://www.web3d.org/x3d/content/x3d-3.0-Web3dExtensionsPublic.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # --> <!-- ================================================================= --> <!ENTITY % LatticeXvlComponent "INCLUDE"> <!-- LatticeXVL 1.0 Document Type Definition (DTD) Description: Define the XVL tag and attribute profile for X3D. This X3D native node corresponds to a VRML ExternProto declaration. Elements in this tagset are enabled by setting the XvlProfile entity to "INCLUDE" at the top of an X3D scene file, as shown in several examples such as examples/LatticeXvl/XvlShellAll.x3d. This flag then triggers inclusion of the XVL tags in the x3d-3.0.dtd tagset. Status: Complete Authors: Lattice Technology, Inc. proposed the Xvl extensions, Makito Seki produced XML encoding of XVL nodes for X3D with additional work by Marc Jablonski and Don Brutzman Reference: LatticeXvl extension for X3D http://www.web3d.org/x3d/content/examples/LatticeXvl/doc/proposal/LatticeProposal.html http://www.Xvl3D.com Issues: Mark Jablonski maintains the list. Created: 10 May 2001 --> <![%LatticeXvlComponent;[ <!-- for future: G1T1 level --> <!ENTITY % XvlG1T1ShellTypes "" > <!-- Types of XVL Shells --> <!ENTITY % XvlShell.shellTypes " %XvlG1T1ShellTypes; POLYGON_MESH | LATTICE_MESH " > <!ELEMENT XvlShell (IS?, (%MetadataNodes;)?, ( ( (%TextureCoordinateNodes;), ((%CoordinateNodes;) | %WildcardNodes;) ) | ( (%CoordinateNodes;), ((%TextureCoordinateNodes;) | %WildcardNodes;)? ) | ( %WildcardNodes;, ((%TextureCoordinateNodes;) | (%CoordinateNodes;) | %WildcardNodes;)?) )? )> <!ATTLIST XvlShell shellType ( %XvlShell.shellTypes; ) #IMPLIED numberOfDivisions %SFInt32; #IMPLIED vertexRound %MFFloat; #IMPLIED edgeBeginCoordIndex %MFInt32; #IMPLIED edgeEndCoordIndex %MFInt32; #IMPLIED edgeRound %MFFloat; #IMPLIED edgeBeginVector %MFVec3f; #IMPLIED edgeEndVector %MFVec3f; #IMPLIED faceCoordIndex %MFInt32; #IMPLIED faceTexCoordIndex %MFInt32; #IMPLIED faceEmpty %MFBool; #IMPLIED faceHidden %MFBool; #IMPLIED containerField NMTOKEN "geometry" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!-- ================================================================= -->
The private X3D DTD extension will be used to contain X3D extensions that have not been approved but may exist for testing future development. The form of the private X3D DTD extension is depicted below:
<!-- # # X3D Web3D Extensions Private DTD: # # http://www.web3d.org/specifications/x3d-3.1-Web3dExtensionsPrivate.dtd # # current version: 3.1.0 # # created: 30 April 2005 # revised: 30 April 2005 # # Maintainer: Don Brutzman # # Purpose: support Web3D Consortium extensions to the X3D tagset. # The primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by node definitions in x3d-3.1-Web3dExtensionsPublic.dtd # and x3d-3.1-Web3dExtensionsPrivate.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.1.dtd # http://www.web3d.org/specifications/x3d-3.1-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.1-Web3dExtensionsPublic.dtd # http://www.web3d.org/specifications/x3d-3.1-Web3dExtensionsPrivate.dtd # # Web3D extensions update URL: # http://www.web3d.org/x3d/content/x3d-3.1-Web3dExtensionsPublic.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # --> <!-- ================================================================= --> <!-- Enter ELEMENT and ATTLIST definitions here --> <!-- ================================================================= -->
x3d-3.2.dtd is the X3D DTD that validates X3D version 3.2 content:
<!--
# Extensible 3D (X3D) Specification Document Type Definition (DTD) x3d-3.2.dtd
#
# http://www.web3d.org/specifications/x3d-3.2.dtd
#
# current version: 3.2.2
#
# created: 30 April 2005
#
# Author: Don Brutzman
#
# X3D Specification DTDs:
# http://www.web3d.org/specifications/x3d-3.2.dtd
# http://www.web3d.org/specifications/x3d-3.2-Web3dExtensionsPublic.dtd
# http://www.web3d.org/specifications/x3d-3.2-Web3dExtensionsPrivate.dtd
#
# X3D Revision DTDs:
# http://www.web3d.org/x3d/content/x3d-3.2.dtd
# http://www.web3d.org/x3d/content/x3d-3.2-Web3dExtensionsPublic.dtd
# http://www.web3d.org/x3d/content/x3d-3.2-Web3dExtensionsPrivate.dtd
#
# Final doctype:
# <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "http://www.web3d.org/specifications/x3d-3.2.dtd">
#
# Transitional doctype:
# <!DOCTYPE X3D PUBLIC "http://www.web3d.org/specifications/x3d-3.2.dtd" "file:///www.web3d.org/specifications/x3d-3.2.dtd">
#
# Typical system location for this resource:
# file://c:/www.web3d.org/specifications/x3d-3.2.dtd
# file:///www.web3d.org/specifications/x3d-3.2.dtd
#
# Change log:
# http://www.web3d.org/specifications/x3d-dtd-changelog.txt
#
# Further information on the Extensible 3D (X3D) specification is available at
# http://www.web3D.org/x3d.html
-->
<!-- Profile: default is Full profile and all components.
Authors can override these default IGNORE/INCLUDE values.
If InterchangeProfile or InteractiveProfile is INCLUDEd, then IGNORE all others. -->
<!ENTITY % FullProfile "INCLUDE">
<!ENTITY % ImmersiveProfile "INCLUDE">
<!ENTITY % InterchangeProfile "IGNORE">
<!ENTITY % InteractiveProfile "IGNORE">
<!ENTITY % CadComponent "INCLUDE">
<!ENTITY % CubeMapTexturingComponent "INCLUDE">
<!ENTITY % DISComponent "INCLUDE">
<!ENTITY % GeoSpatialComponent "INCLUDE">
<!ENTITY % HAnimComponent "INCLUDE">
<!ENTITY % NurbsComponent "INCLUDE">
<!ENTITY % ShadersComponent "INCLUDE">
<!ENTITY % Texture3DComponent "INCLUDE">
<!ENTITY % LayeringComponent "INCLUDE">
<!ENTITY % LayoutComponent "INCLUDE">
<!ENTITY % RigidBodyPhysicsComponent "INCLUDE">
<!ENTITY % PickingSensorComponent "INCLUDE">
<!ENTITY % FollowersComponent "INCLUDE">
<!ENTITY % ParticleSystemsComponent "INCLUDE">
<!ENTITY % Web3dExtensionComponent "INCLUDE">
<!ENTITY % X3dInputOutputFields "INCLUDE">
<!ENTITY % X3dExtensions "IGNORE">
<!ENTITY % profileNames "(Core|Interchange|CADInterchange|Interactive|Immersive|Full|MPEG4Interactive)">
<!ENTITY % componentNames "(Core|CADGeometry|CubeMapTexturing|DIS|EnvironmentalEffects|EnvironmentalSensor|EventUtilities|Followers|Geometry2D|Geometry3D|Geospatial|Grouping|H-Anim|Interpolation|KeyDeviceSensor|Layering|Layout|Lighting|Navigation|Networking|NURBS|PointingDeviceSensor|Rendering|RigidBodyPhysics|Scripting|Shaders|Shape|Sound|Text|Texturing|Texturing3D|Time)">
<!ENTITY % componentLevels "(1|2|3|4|5)">
<!ENTITY % X3dFieldTypes "SFBool|MFBool|SFColor|MFColor|SFColorRGBA|MFColorRGBA|SFDouble|MFDouble|SFFloat|MFFloat|SFImage|MFImage|SFInt32|MFInt32|SFNode|MFNode|SFRotation|MFRotation|SFString|MFString|SFTime|MFTime|SFVec2f|MFVec2f|SFVec2d|MFVec2d|SFVec3f|MFVec3f|SFVec3d|MFVec3d|SFMatrix3d|MFMatrix3d|SFMatrix3f|MFMatrix3f|SFMatrix4d|MFMatrix4d|SFMatrix4f|MFMatrix4f|SFVec4d|MFVec4d|SFVec4f|MFVec4f">
<!-- X3D type definitions as DTD types -->
<!ENTITY % SFBool "(true|false)">
<!ENTITY % MFBool "CDATA">
<!ENTITY % SFColor "CDATA">
<!ENTITY % MFColor "CDATA">
<!ENTITY % SFColorRGBA "CDATA">
<!ENTITY % MFColorRGBA "CDATA">
<!ENTITY % SFFloat "CDATA">
<!ENTITY % MFFloat "CDATA">
<!ENTITY % SFDouble "CDATA">
<!ENTITY % MFDouble "CDATA">
<!ENTITY % SFImage "CDATA">
<!ENTITY % MFImage "CDATA">
<!ENTITY % SFInt32 "CDATA">
<!ENTITY % MFInt32 "CDATA">
<!ENTITY % SFRotation "CDATA">
<!ENTITY % MFRotation "CDATA">
<!ENTITY % SFString "CDATA">
<!ENTITY % MFString "CDATA">
<!ENTITY % SFTime "CDATA">
<!ENTITY % MFTime "CDATA">
<!ENTITY % SFVec2f "CDATA">
<!ENTITY % MFVec2f "CDATA">
<!ENTITY % SFVec2d "CDATA">
<!ENTITY % MFVec2d "CDATA">
<!ENTITY % SFVec3f "CDATA">
<!ENTITY % MFVec3f "CDATA">
<!ENTITY % SFVec3d "CDATA">
<!ENTITY % MFVec3d "CDATA">
<!ENTITY % SFVec4f "CDATA">
<!ENTITY % MFVec4f "CDATA">
<!ENTITY % SFVec4d "CDATA">
<!ENTITY % MFVec4d "CDATA">
<!ENTITY % SFMatrix3f "CDATA">
<!ENTITY % MFMatrix3f "CDATA">
<!ENTITY % SFMatrix3d "CDATA">
<!ENTITY % MFMatrix3d "CDATA">
<!ENTITY % SFMatrix4f "CDATA">
<!ENTITY % MFMatrix4f "CDATA">
<!ENTITY % SFMatrix4d "CDATA">
<!ENTITY % MFMatrix4d "CDATA">
<!ENTITY % TextureCoordinateGeneratorModes "(SPHERE|CAMERASPACENORMAL|CAMERASPACEPOSITION|CAMERASPACEREFLECTIONVECTOR|SPHERE-LOCAL|COORD|COORD-EYE|NOISE|NOISE-EYE|SPHERE-REFLECT|SPHERE-REFLECT-LOCAL)">
<!-- User needs to append | after listing each new node in any of these extensions.
For an example, see examples/development/ProtoTagDtdDeclarationExamples.x3d -->
<!ENTITY % AppearanceNodeExtensions "">
<!ENTITY % AudioClipNodeExtensions "">
<!ENTITY % BindableNodeExtensions "">
<!ENTITY % ColorNodeExtensions "">
<!ENTITY % CoordinateNodeExtensions "">
<!ENTITY % FontStyleNodeExtensions "">
<!ENTITY % EventUtilityNodeExtensions "">
<!ENTITY % GeometryNodeExtensions "">
<!ENTITY % GroupingNodeExtensions "">
<!ENTITY % InterpolatorNodeExtensions "">
<!ENTITY % LightNodeExtensions "">
<!ENTITY % MaterialNodeExtensions "">
<!ENTITY % MetadataNodeExtensions "">
<!ENTITY % NormalNodeExtensions "">
<!ENTITY % ScriptNodeExtensions "">
<!ENTITY % SensorNodeExtensions "">
<!ENTITY % ShapeNodeExtensions "">
<!ENTITY % SoundNodeExtensions "">
<!-- MovieTexture must be able to appear twice: -->
<!ENTITY % MovieTextureNodeExtensions "">
<!ENTITY % TextureNodeExtensions "">
<!ENTITY % TextureCoordinateNodeExtensions "">
<!ENTITY % TextureTransformNodeExtensions "">
<!ENTITY % NetworkSensorNodeExtensions "">
<!ENTITY % WorldInfoNodeExtensions "">
<!-- Users defining PROTOs do not override any of the following parameter entity declarations. -->
<![%ImmersiveProfile;[
<!ENTITY % WildcardNodes " (ProtoInstance) " >
]]>
<![%InterchangeProfile;[
<!ENTITY % WildcardNodes " " >
]]>
<![%DISComponent;[
<!ENTITY % DISGroupingNodes " EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|" >
]]>
<![%GeoSpatialComponent;[
<!ENTITY % GeoCoordinateNode " GeoCoordinate|" >
<!ENTITY % GeoElevationGridNode " GeoElevationGrid|" >
<!ENTITY % GeoGroupingNodes " GeoLocation|GeoLOD|GeoTransform|" >
<!ENTITY % GeoMetadataNode " GeoMetadata|" >
<!ENTITY % GeoOriginNode " GeoOrigin|" >
<!ENTITY % GeoBehaviorNodes " GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|" >
<!ENTITY % GeoViewpointNode " GeoViewpoint|" >
]]>
<![%HAnimComponent;[
<!ENTITY % HAnimGroupingNodes " HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|" >
<!ENTITY % DisplacerNode " HAnimDisplacer|" >
]]>
<![%NurbsComponent;[
<!ENTITY % NurbsGeometryNodes " NurbsCurve|NurbsCurve2D|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|" >
<!ENTITY % NurbsInterpolators " NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|" >
<!ENTITY % NurbsControlCurveNodes " NurbsCurve2D|Contour2D|ContourPolyline2D " >
]]>
<![%CadComponent;[
<!ENTITY % CadGeometryNodes " QuadSet|IndexedQuadSet|" >
<!ENTITY % CadGroupingNodes " CADAssembly|CADLayer|" >
]]>
<![%RigidBodyPhysicsComponent;[
<!ENTITY % RigidBodyPhysicsGroupingNodes " CollidableShape|CollisionSensor|RigidBodyCollection| " >
]]>
<![%CubeMapTexturingComponent;[
<!ENTITY % CubeMapTextureNodes " ComposedCubeMapTexture|GeneratedCubeMapTexture|ImageCubeMapTexture " >
]]>
<![%ShadersComponent;[
<!ENTITY % ShaderNodes " ComposedShader|PackagedShader|ProgramShader " >
<!ENTITY % ShaderAttributeNodes " FloatVertexAttribute|Matrix3VertexAttribute|Matrix4VertexAttribute" >
]]>
<![%Texture3DComponent;[
<!ENTITY % Texture3DTextureNodes " ComposedTexture3D|ImageTexture3D|PixelTexture3D " >
<!ENTITY % Texture3DTextureCoordinateNodes " TextureCoordinate3D|TextureCoordinate4D| " >
<!ENTITY % Texture3DTextureTransformNodes " TextureMatrixTransform|TextureTransform3D " >
]]>
<![%FollowersComponent;[
<!ENTITY % FollowerNodes "ColorDamper|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|TexCoordDamper2D" >
]]>
<![%Web3dExtensionComponent;[
<!--
<!ENTITY % Web3dExtensionGeometryNodes " XvlShell|" >
-->
]]>
<!-- otherwise set tag lists to null strings if not previously defined -->
<!ENTITY % DISGroupingNodes "">
<!ENTITY % GeoCoordinateNode "">
<!ENTITY % GeoElevationGridNode "">
<!ENTITY % GeoGroupingNodes "">
<!ENTITY % GeoMetadataNode "">
<!ENTITY % GeoOriginNode "">
<!ENTITY % GeoBehaviorNodes "">
<!ENTITY % GeoViewpointNode "">
<!ENTITY % HAnimGroupingNodes "">
<!ENTITY % DisplacerNode "">
<!ENTITY % NurbsGeometryNodes "">
<!ENTITY % NurbsInterpolators "">
<!ENTITY % CadGroupingNodes "">
<!ENTITY % RigidBodyPhysicsGroupingNodes "">
<!ENTITY % CadGeometryNodes "">
<!ENTITY % CubeMapTextureNodes "">
<!ENTITY % ShaderNodes "">
<!ENTITY % ShaderAttributeNodes "">
<!ENTITY % Texture3DTextureNodes "">
<!ENTITY % Texture3DTextureCoordinateNodes "">
<!ENTITY % Texture3DTextureTransformNodes "">
<!ENTITY % FollowerNodes "">
<!ENTITY % Web3dExtensionGroupingNodes "">
<!ENTITY % Web3dExtensionGeometryNodes "">
<!-- no further content-model extensions needed -->
<![%InterchangeProfile;[
<!ENTITY % AudioClipNodes "" >
<!ENTITY % FontStyleNodes "" >
<!ENTITY % EventUtilityNodes "" >
<!ENTITY % MovieTextureNodes "" >
<!ENTITY % NormalNodes "" >
<!ENTITY % ScriptNodes "" >
<!ENTITY % SoundNodes "" >
<!ENTITY % TextureCoordinateNodes "" >
<!ENTITY % TextureTransformNodes "" >
]]>
<!-- NetworkSensorNodes used by LoadSensor -->
<!ENTITY % NetworkSensorNodes " %NetworkSensorNodeExtensions; AudioClip|ImageCubeMapTexture|ImageTexture|ImageTexture3D|Inline|MovieTexture|PackagedShader|ShaderPart|ShaderProgram ">
<![%ImmersiveProfile;[
<!ENTITY % AudioClipNodes " %AudioClipNodeExtensions; AudioClip " >
<!ENTITY % FontStyleNodes " %FontStyleNodeExtensions; FontStyle " >
<!ENTITY % EventUtilityNodes " %EventUtilityNodeExtensions; BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger " >
<!ENTITY % MovieTextureNodes " %MovieTextureNodeExtensions; MovieTexture " >
<!ENTITY % NormalNodes " %NormalNodeExtensions; Normal " >
<!ENTITY % ScriptNodes " %ScriptNodeExtensions; Script " >
<!ENTITY % SoundNodes " %SoundNodeExtensions; Sound " >
<!ENTITY % TextureCoordinateNodes " %TextureCoordinateNodeExtensions; %Texture3DTextureCoordinateNodes; TextureCoordinate|TextureCoordinateGenerator|MultiTextureCoordinate|NurbsTextureCoordinate " >
<!ENTITY % TextureTransformNodes " %TextureTransformNodeExtensions; TextureTransform|MultiTextureTransform " >
<!ENTITY % AllTextureTransformNodes " %TextureTransformNodes;|%Texture3DTextureTransformNodes; " >
]]>
<![%InterchangeProfile;[
<!ENTITY % AppearanceNodes " Appearance " >
<!ENTITY % BehaviorLeafNodes " CoordinateInterpolator|KeySensor|OrientationInterpolator|PositionInterpolator|ScalarInterpolator|TimeSensor|TouchSensor " >
<!ENTITY % BindableNodes " Background|NavigationInfo|Viewpoint " >
<!ENTITY % ColorNodes " Color|ColorRGBA " >
<!ENTITY % CoordinateNodes " Coordinate|CoordinateDouble|FogCoordinate " >
<!ENTITY % GeometryNodes " IndexedFaceSet|IndexedLineSet|LineSet|PointSet " >
<!ENTITY % GroupingNodes " Anchor|Group|Inline|Transform " >
<!ENTITY % LightNodes " DirectionalLight " >
<!ENTITY % MaterialNodes " Material|TwoSidedMaterial " >
<!ENTITY % ShapeNodes " Shape " >
<!ENTITY % Texture2DNodes " ImageTexture " >
<!ENTITY % WorldInfoNodes " WorldInfo " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % AppearanceNodes " %AppearanceNodeExtensions; Appearance " >
<!ENTITY % BehaviorLeafNodes " %InterpolatorNodeExtensions; %SensorNodeExtensions; %ScriptNodeExtensions; %GeoBehaviorNodes; %DisplacerNode; %NurbsInterpolators; %EventUtilityNodes;|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|SquadOrientationInterpolator|StringSensor|TimeSensor|TouchSensor|VisibilitySensor " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % BindableNodes " %BindableNodeExtensions; %GeoViewpointNode; Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint " >
<!ENTITY % ColorNodes " %ColorNodeExtensions; Color|ColorRGBA " >
<!ENTITY % CoordinateNodes " %CoordinateNodeExtensions; %GeoCoordinateNode; Coordinate|CoordinateDouble " >
<!ENTITY % Geometry2DNodes " Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D| " >
<!ENTITY % GeometryNodes " %GeometryNodeExtensions; %GeoElevationGridNode; %NurbsGeometryNodes; %CadGeometryNodes; %Web3dExtensionGeometryNodes; %Geometry2DNodes; Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet " >
<!ENTITY % GroupingNodes " %GroupingNodeExtensions; %DISGroupingNodes; %GeoGroupingNodes; %HAnimGroupingNodes; %CadGroupingNodes; %RigidBodyPhysicsGroupingNodes; %Web3dExtensionGroupingNodes; Anchor|Billboard|Collision|Group|Inline|LOD|StaticGroup|Switch|Transform|ViewpointGroup " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % LightNodes " %LightNodeExtensions; DirectionalLight|SpotLight|PointLight " >
<!ENTITY % MaterialNodes " %MaterialNodeExtensions; Material|TwoSidedMaterial " >
<!ENTITY % ShapeNodes " %ShapeNodeExtensions; Shape " >
<!ENTITY % Texture2DNodes " %TextureNodeExtensions; ImageTexture|MovieTexture|MultiTexture|PixelTexture " >
<!ENTITY % AllTextureNodes " %Texture2DNodes;|%CubeMapTextureNodes;|%Texture3DTextureNodes; " >
<!ENTITY % MultiTextureChildTextures " %TextureNodeExtensions; ImageTexture|MovieTexture|PixelTexture " >
<!ENTITY % WorldInfoNodes " %WorldInfoNodeExtensions; %GeoMetadataNode; WorldInfo " >
]]>
<![%InterchangeProfile;[
<!ENTITY % ComposedGeometryNodes " %ColorNodes; " >
<!ENTITY % AppearanceChildNodes " %MaterialNodes; " >
<!ENTITY % SceneLeafNodes " %LightNodes;|%ShapeNodes;|%WorldInfoNodes; " >
<!ENTITY % MetadataNodes " %MetadataNodeExtensions; MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString ">
<!ENTITY % ProtoNodes "" >
]]>
<![%ImmersiveProfile;[
<!ENTITY % ComposedGeometryNodes " %ShaderAttributeNodes;|%CoordinateNodes;|%ColorNodes;|%NormalNodes;|%TextureCoordinateNodes;|FogCoordinate " >
<!ENTITY % AppearanceChildNodes " LineProperties|FillProperties|%MaterialNodes;|%Texture2DNodes;|%CubeMapTextureNodes;|%ShaderNodes;|%Texture3DTextureNodes;|%TextureTransformNodes;|%Texture3DTextureTransformNodes; " >
<!ENTITY % SceneLeafNodes " %GeoOriginNode; %LightNodes;|%ShapeNodes;|%SoundNodes;|%WorldInfoNodes; " >
<!ENTITY % OtherLeafNodes " AudioClip|LineProperties|FillProperties " >
<!ENTITY % MetadataNodes " %MetadataNodeExtensions; MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString ">
<!ENTITY % ProtoNodes " %OtherLeafNodes;|%AppearanceNodes;|%AppearanceChildNodes;|%BehaviorLeafNodes;|%BindableNodes;|%CubeMapTextureNodes;|%FontStyleNodes;|%ComposedGeometryNodes;|%GeometryNodes;|%GroupingNodes;|ShaderPart|ShaderProgram|%MetadataNodes;|%SceneLeafNodes;|%Texture3DTextureNodes;|%Texture3DTextureTransformNodes;|Contour2D|ContourPolyline2D|%FollowerNodes;|BallJoint|CollidableOffset|CollisionCollection|CollisionSpace|Contact|DoubleAxisHingeJoint|MotorJoint|RigidBody|SingleAxisHingeJoint|SliderJoint|UniversalJoint|ProtoDeclare|ExternProtoDeclare|ProtoInstance " >
]]>
<!ENTITY % ChildrenNodes " %BehaviorLeafNodes;|%BindableNodes;|%GroupingNodes;|%SceneLeafNodes;|%FollowerNodes;|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT ">
<![%InterchangeProfile;[
<!ENTITY % SceneNodes " %ChildrenNodes;|%WildcardNodes; " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % SceneNodes " ExternProtoDeclare|ProtoDeclare|%ChildrenNodes;|%WildcardNodes; " >
]]>
<!-- SensorNodes not used (yet, anyway) in tagset content-model definitions. -->
<!ENTITY % SensorNodes " Anchor|Collision|CylinderSensor|KeySensor|PlaneSensor|ProximitySensor|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor ">
<!ENTITY % DragSensors " CylinderSensor|PlaneSensor|SphereSensor ">
<!ENTITY % EnvironmentalSensorNodes " Collision|ProximitySensor|TimeSensor|VisibilitySensor ">
<!ENTITY % PointingDeviceSensors " Anchor|CylinderSensor|PlaneSensor|SphereSensor|TouchSensor ">
<!ENTITY % KeyDeviceSensors " ">
<!ENTITY % InterpolatorNodes " ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|NormalInterpolator|OrientationInterpolator|PositionInterpolator|PositionInterpolator2D|ScalarInterpolator |SquadOrientationInterpolator">
<!ENTITY % TimeDependentNodes " AudioClip|MovieTexture|TimeSensor ">
<!-- ***** X3D DTD ***** -->
<![%ImmersiveProfile;[
<!ELEMENT Anchor (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Anchor
description %SFString; #IMPLIED
parameter %MFString; #IMPLIED
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%InterchangeProfile;[
<!ELEMENT Anchor (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* >
<!ATTLIST Anchor
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%InterchangeProfile;[
<!ELEMENT Appearance ( (%MetadataNodes;)?,
( ((%MaterialNodes;), (%Texture2DNodes;)? )
| ((%Texture2DNodes;), (%MaterialNodes;)? )
)? ) >
]]>
<!-- TODO restore
-->
<!ELEMENT Appearance (IS?, (%MetadataNodes;)?, (%AppearanceChildNodes; | %WildcardNodes;)*)>
<!ATTLIST Appearance
containerField NMTOKEN "appearance"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT AudioClip ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST AudioClip
description %SFString; #IMPLIED
loop %SFBool; "false"
pitch %SFFloat; "1.0"
startTime %SFTime; "0"
stopTime %SFTime; "0"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
url %MFString; #IMPLIED
containerField NMTOKEN "source"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Background ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Background
groundAngle %MFFloat; #IMPLIED
groundColor %MFColor; #IMPLIED
backUrl %MFString; #IMPLIED
bottomUrl %MFString; #IMPLIED
frontUrl %MFString; #IMPLIED
leftUrl %MFString; #IMPLIED
rightUrl %MFString; #IMPLIED
topUrl %MFString; #IMPLIED
skyAngle %MFFloat; #IMPLIED
skyColor %MFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT Billboard (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Billboard
axisOfRotation %SFVec3f; "0 1 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanFilter ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanFilter
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanSequencer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanSequencer
key %MFFloat; #IMPLIED
keyValue %MFBool; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanToggle ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanToggle
toggle %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanTrigger
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!-- Geometry2D nodes -->
<!ELEMENT Arc2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Arc2D
radius %SFFloat; "1"
startAngle %SFFloat; "0"
endAngle %SFFloat; "1.570796"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ArcClose2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ArcClose2D
radius %SFFloat; "1"
startAngle %SFFloat; "0"
endAngle %SFFloat; "1.570796"
closureType (PIE|CHORD) "PIE"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Circle2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Circle2D
radius %SFFloat; "1"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Disk2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Disk2D
innerRadius %SFFloat; "0"
outerRadius %SFFloat; "1"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Polyline2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Polyline2D
lineSegments %MFVec2f; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Polypoint2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Polypoint2D
point %MFVec2f; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Rectangle2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Rectangle2D
size %SFVec2f; "2 2"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TriangleSet2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TriangleSet2D
vertices %MFVec2f; #IMPLIED
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT Box ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Box
size %SFVec3f; "2 2 2"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Collision ( (IS?), (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Collision
enabled %SFBool; "true"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<!ELEMENT Color ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Color
color %MFColor; #IMPLIED
class CDATA #IMPLIED
containerField NMTOKEN "color"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ColorRGBA ((IS?), (%MetadataNodes;)?)>
<!ATTLIST ColorRGBA
color %MFColorRGBA; #IMPLIED
containerField NMTOKEN "color"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT component EMPTY>
<!ATTLIST component
name %componentNames; #REQUIRED
level %componentLevels; #REQUIRED
>
<![%ImmersiveProfile;[
<!ELEMENT ColorInterpolator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ColorInterpolator
key %MFFloat; #IMPLIED
keyValue %MFColor; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Cone ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Cone
bottomRadius %SFFloat; "1"
height %SFFloat; "2"
side %SFBool; "true"
bottom %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Coordinate ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Coordinate
point %MFVec3f; #IMPLIED
containerField NMTOKEN "coord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CoordinateDouble ((IS?), (%MetadataNodes;)?)>
<!ATTLIST CoordinateDouble
point %MFVec3d; #IMPLIED
containerField NMTOKEN "coord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CoordinateInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST CoordinateInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT CoordinateInterpolator2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST CoordinateInterpolator2D
key %MFFloat; #IMPLIED
keyValue %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Cylinder ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Cylinder
bottom %SFBool; "true"
height %SFFloat; "2"
radius %SFFloat; "1"
side %SFBool; "true"
top %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CylinderSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST CylinderSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
diskAngle %SFFloat; "0.26179167"
maxAngle %SFFloat; "-1"
minAngle %SFFloat; "0"
offset %SFFloat; "0"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT DirectionalLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST DirectionalLight
ambientIntensity %SFFloat; "0"
color %SFColor; "1 1 1"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
on %SFBool; "true"
global %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%InterchangeProfile;[
<!ELEMENT DirectionalLight (%MetadataNodes;)? >
<!ATTLIST DirectionalLight
color %SFColor; "1 1 1"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
on %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!-- Complete, concisely enumerated unordered version of ElevationGrid by Heiko Grussbach -->
<!ELEMENT ElevationGrid (IS?, (%MetadataNodes;)?, (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
|((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
|((%TextureCoordinateNodes;), (((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
|(%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
)?, (FogCoordinate)? ) >
<!ATTLIST ElevationGrid
height %MFFloat; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
creaseAngle %SFFloat; "0"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
xDimension %SFInt32; "0"
xSpacing %SFFloat; "1.0"
zDimension %SFInt32; "0"
zSpacing %SFFloat; "1.0"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ExternProtoDeclare ( field* ) >
<!ATTLIST ExternProtoDeclare
name NMTOKEN #REQUIRED
url %MFString; #REQUIRED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!ELEMENT Extrusion ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Extrusion
beginCap %SFBool; "true"
ccw %SFBool; "true"
convex %SFBool; "true"
creaseAngle %SFFloat; "0.0"
crossSection %MFVec2f; "1 1 1 -1 -1 -1 -1 1 1 1"
endCap %SFBool; "true"
orientation %MFRotation; "0 0 1 0"
scale %MFVec2f; "1 1"
solid %SFBool; "true"
spine %MFVec3f; "0 0 0 0 1 0"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- field is only used in a Script, ProtoDeclare or ExternProtoDeclare.
Initialization values for simple types go in the value attribute.
Contained content tags are only for initialization of SFNode or MFNode values. -->
<!ELEMENT field ( %ProtoNodes; )* >
<!ATTLIST field
name NMTOKEN #REQUIRED
accessType (inputOnly|outputOnly|initializeOnly|inputOutput) #REQUIRED
type ( %X3dFieldTypes; ) #REQUIRED
value CDATA #IMPLIED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!-- fieldValue resets default field values inside a ProtoInstance.
Initialization values for simple types go in the value attribute. Otherwise
contained-content tags are used for initialization of SFNode or MFNode values. -->
<!ELEMENT fieldValue ( %ProtoNodes; )* >
<!ATTLIST fieldValue
name NMTOKEN #REQUIRED
value CDATA #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT FillProperties ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST FillProperties
filled %SFBool; "true"
hatched %SFBool; "true"
hatchStyle %SFInt32; "1"
hatchColor %SFColor; "1 1 1"
containerField NMTOKEN "fillProperties"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Fog ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Fog
color %SFColor; "1 1 1"
fogType (LINEAR|EXPONENTIAL) "LINEAR"
visibilityRange %SFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT FontStyle ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST FontStyle
family %MFString; '"SERIF"'
horizontal %SFBool; "true"
justify %MFString; '"BEGIN"'
language %SFString; #IMPLIED
leftToRight %SFBool; "true"
size %SFFloat; "1.0"
spacing %SFFloat; "1.0"
style (PLAIN|BOLD|ITALIC|BOLDITALIC) "PLAIN"
topToBottom %SFBool; "true"
containerField NMTOKEN "fontStyle"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Minimum supported values:
family ' "SERIF" "SANS" "TYPEWRITER" '
justify ' "FIRST" "BEGIN" "MIDDLE" "END" ' -->
]]>
<!ELEMENT Group (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST Group
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ImageTexture ((IS?), (%MetadataNodes;)?, (TextureProperties | %WildcardNodes;)?)>
<!ATTLIST ImageTexture
url %MFString; #IMPLIED
repeatS %SFBool; "true"
repeatT %SFBool; "true"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- Complete, unordered, concisely enumerated version of IndexedFaceSet content model by Heiko Grussbach -->
<!ENTITY % ColorCoordinateNormalTextureCoordinateContentModel "(IS?, (%MetadataNodes;)?, (
((%ColorNodes;), (
((%CoordinateNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%CoordinateNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%CoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%CoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%CoordinateNodes;), (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%NormalNodes;), (
((%ColorNodes;), ( ((%CoordinateNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%TextureCoordinateNodes;), (
((%ColorNodes;), ( ((%CoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? ) )? )
|(%WildcardNodes;, (
((%ColorNodes;), ( ((%CoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
)?, (FogCoordinate)? )">
<![%ImmersiveProfile;[
<!ELEMENT IndexedFaceSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*) >
<!ELEMENT IndexedLineSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
<!ELEMENT LineSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
]]>
<![%InterchangeProfile;[
<!ELEMENT IndexedFaceSet ( (%MetadataNodes;)?, ((%ColorNodes;), Coordinate?)|(Coordinate, (%ColorNodes;)?) )? >
<!ELEMENT IndexedLineSet ( (%MetadataNodes;)?, ( Color, Coordinate? )|( Coordinate, Color?) )? >
<!ELEMENT LineSet ( (%MetadataNodes;)?, ( Color, Coordinate? )|( Coordinate, Color?) )? >
]]>
<!ATTLIST IndexedFaceSet
ccw %SFBool; "true"
colorIndex %MFInt32; #IMPLIED
colorPerVertex %SFBool; "true"
convex %SFBool; "true"
coordIndex %MFInt32; #IMPLIED
creaseAngle %SFFloat; "0"
normalIndex %MFInt32; #IMPLIED
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
texCoordIndex %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ATTLIST IndexedLineSet
colorIndex %MFInt32; #IMPLIED
colorPerVertex %SFBool; "true"
coordIndex %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ATTLIST LineSet
vertexCount %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT Inline ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Inline
load %SFBool; "true"
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT EXPORT EMPTY>
<!ATTLIST EXPORT
localDEF IDREF #REQUIRED
AS NMTOKEN #IMPLIED
>
<!ELEMENT IMPORT EMPTY>
<!ATTLIST IMPORT
inlineDEF IDREF #REQUIRED
importedDEF NMTOKEN #REQUIRED
AS ID #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT IntegerSequencer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST IntegerSequencer
key %MFFloat; #IMPLIED
keyValue %MFInt32; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IntegerTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST IntegerTrigger
integerKey %SFInt32; "-1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IS (connect)+ >
<!ELEMENT connect EMPTY >
<!ATTLIST connect
nodeField NMTOKEN #REQUIRED
protoField NMTOKEN #REQUIRED>
]]>
<!ELEMENT KeySensor ((IS?), (%MetadataNodes;)?)>
<!ATTLIST KeySensor
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT LineProperties ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST LineProperties
applied %SFBool; "true"
linetype %SFInt32; "1"
linewidthScaleFactor %SFFloat; "0"
containerField NMTOKEN "lineProperties"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT LoadSensor (IS?, (%MetadataNodes;)?, (%NetworkSensorNodes; | %WildcardNodes;)*)>
<!ATTLIST LoadSensor
enabled %SFBool; "true"
timeOut %SFTime; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT LOD (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST LOD
forceTransitions %SFBool; "false"
center %SFVec3f; "0 0 0"
range %MFFloat; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Material ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Material
ambientIntensity %SFFloat; "0.2"
diffuseColor %SFColor; "0.8 0.8 0.8"
emissiveColor %SFColor; "0 0 0"
shininess %SFFloat; "0.2"
specularColor %SFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "material"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%InterchangeProfile;[
<!ELEMENT Material ( (%MetadataNodes;)? ) >
<!ATTLIST Material
diffuseColor %SFColor; "0.8 0.8 0.8"
emissiveColor %SFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "material"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- *** XHTML exerpts to define meta tag *** -->
<!-- i18n, language, meta tag definitions from XHTML 1.0
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd -->
<!ENTITY % LanguageCode "NMTOKEN">
<!-- a language code, as per [IETF RFC3066/BCP47] ftp://ftp.isi.edu/in-notes/bcp/bcp47.txt -->
<!-- internationalization attributes
lang language code (backwards compatible)
xml:lang language code (as per XML 1.0 spec)
dir direction for weak/neutral text
-->
<!ENTITY % i18n "lang %LanguageCode; #IMPLIED
xml:lang %LanguageCode; #IMPLIED
dir (ltr|rtl) #IMPLIED">
<!ELEMENT head (component*, meta*)>
<!-- generic metadata information, matches HTML usage, made attribute 'name' required -->
<!ELEMENT meta EMPTY>
<!ATTLIST meta
http-equiv CDATA #IMPLIED
name CDATA #REQUIRED
content CDATA #REQUIRED
scheme CDATA #IMPLIED
%i18n;
>
<!-- formal X3D Metadata nodes -->
<!ELEMENT MetadataDouble (IS?, (%MetadataNodes; | %WildcardNodes;)?)>
<!ATTLIST MetadataDouble
name %SFString; #IMPLIED
value %MFDouble; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT MetadataFloat (IS?, (%MetadataNodes; | %WildcardNodes;)?)>
<!ATTLIST MetadataFloat
name %SFString; #IMPLIED
value %MFFloat; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT MetadataInteger (IS?, (%MetadataNodes; | %WildcardNodes;)?)>
<!ATTLIST MetadataInteger
name %SFString; #IMPLIED
value %MFInt32; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT MetadataString (IS?, (%MetadataNodes; | %WildcardNodes;)?)>
<!ATTLIST MetadataString
name %SFString; #IMPLIED
value %MFString; #IMPLIED
reference %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- containerField discriminates whether child Metadata node(s) are 'metadata' or 'value' fields.
NMTOKEN vice enumeration, since containerField might have another value as field in a ProtoInstance. -->
<!ELEMENT MetadataSet (IS?, (%MetadataNodes; | %WildcardNodes;)*)>
<!ATTLIST MetadataSet
reference %SFString; #IMPLIED
name %SFString; #IMPLIED
containerField NMTOKEN "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!-- FAQ: MovieTexture
containerField='source' when used as a Sound source,
containerField='texture' when used as a Appearance texture source-->
<!ELEMENT MovieTexture ( (IS?), (%MetadataNodes;)?, (TextureProperties | %WildcardNodes;)? ) >
<!ATTLIST MovieTexture
loop %SFBool; "false"
speed %SFFloat; "1.0"
startTime %SFTime; "0"
stopTime %SFTime; "0"
url %MFString; #IMPLIED
repeatS %SFBool; "true"
repeatT %SFBool; "true"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTexture ( (IS?), (%MetadataNodes;)?, (%MultiTextureChildTextures;|%WildcardNodes; )* ) >
<!ATTLIST MultiTexture
mode %MFString; #IMPLIED
source %MFString; #IMPLIED
function %MFString; #IMPLIED
color %SFColor; "1 1 1"
alpha %SFFloat; "1.0"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTextureCoordinate ((IS?), (%MetadataNodes;)?, (TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)* ) >
<!ATTLIST MultiTextureCoordinate
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT NavigationInfo ((IS?), (%MetadataNodes;)?)>
<!ATTLIST NavigationInfo
avatarSize %MFFloat; "0.25 1.6 0.75"
headlight %SFBool; "true"
speed %SFFloat; "1"
type %MFString; ""EXAMINE" "ANY""
transitionType %MFString; ""ANIMATE""
transitionTime %MFFloat; "1.0"
visibilityLimit %SFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT Normal ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Normal
vector %MFVec3f; #IMPLIED
containerField NMTOKEN "normal"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NormalInterpolator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST NormalInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT OrientationInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST OrientationInterpolator
key %MFFloat; #IMPLIED
keyValue %MFRotation; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT SquadOrientationInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST SquadOrientationInterpolator
closed %SFBool; "false"
key %MFFloat; #IMPLIED
keyValue %MFRotation; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PixelTexture ( (IS?), (%MetadataNodes;)?, (TextureProperties | %WildcardNodes;)? ) >
<!ATTLIST PixelTexture
image %SFImage; "0 0 0"
repeatS %SFBool; "true"
repeatT %SFBool; "true"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PlaneSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PlaneSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
enabled %SFBool; "true"
maxPosition %SFVec2f; "-1 -1"
minPosition %SFVec2f; "0 0"
offset %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PointLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PointLight
ambientIntensity %SFFloat; "0"
attenuation %SFVec3f; "1 0 0"
color %SFColor; "1 1 1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
on %SFBool; "true"
radius %SFFloat; "100"
global %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PointSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
]]>
<![%InterchangeProfile;[
<!ELEMENT PointSet ( (%MetadataNodes;)?, ( ( Color, Coordinate? )|( Coordinate, Color? ) )? ) >
]]>
<!ATTLIST PointSet
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PositionInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST PositionInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT PositionInterpolator2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PositionInterpolator2D
key %MFFloat; #IMPLIED
keyValue %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT ProtoInterface ( field* ) >
<!-- choice of required first node contained in ProtoBody constrained by valid ( %ProtoNodes; ) rather than %SceneNodes; ) > -->
<!ELEMENT ProtoBody ( ( %ProtoNodes; ), ( %SceneNodes; )* ) >
<!ELEMENT ProtoDeclare (ProtoInterface? , ProtoBody) > <!-- (|( field*, ( %ProtoNodes; ), ( %SceneNodes; )* )) -->
<!ATTLIST ProtoDeclare
name NMTOKEN #REQUIRED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!ELEMENT ProtoInstance ( fieldValue* , (IS?) ) >
<!-- ( %SceneNodes; )* --><!-- direct children disallowed, let fieldValue name="children" handle them -->
<!ATTLIST ProtoInstance
name NMTOKEN #REQUIRED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ProximitySensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ProximitySensor
center %SFVec3f; "0 0 0"
size %SFVec3f; "0 0 0"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT ROUTE EMPTY>
<!ATTLIST ROUTE
fromNode IDREF #REQUIRED
fromField NMTOKEN #REQUIRED
toNode IDREF #REQUIRED
toField NMTOKEN #REQUIRED
>
<!ELEMENT ScalarInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST ScalarInterpolator
key %MFFloat; #IMPLIED
keyValue %MFFloat; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT Scene ((%MetadataNodes;)?, (%SceneNodes;)*)>
<!-- Script is similar to PROTO regarding user definition of multiple fields -->
<![%ImmersiveProfile;[
<!-- script code should be included as CDATA sections. watch out on content-model order, originally ( #PCDATA|field )* -->
<!ELEMENT Script ( #PCDATA|%MetadataNodes;|field|IS )* >
<!ATTLIST Script
url %MFString; #IMPLIED
directOutput %SFBool; "false"
mustEvaluate %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Shape
((IS?, (%MetadataNodes;)?),
(
( %AppearanceNodes;, ( %GeometryNodes; | %WildcardNodes; )? ) |
( (%GeometryNodes;), ( %AppearanceNodes; | %WildcardNodes; )? ) |
( %WildcardNodes;, ( %GeometryNodes; | %AppearanceNodes; | %WildcardNodes; )? )
)?
)
>
]]>
<![%InterchangeProfile;[
<!ELEMENT Shape ( (%MetadataNodes;)?,
( (%AppearanceNodes;), ( %GeometryNodes; )? ) |
( ( %GeometryNodes; ), (%AppearanceNodes;)? )?
) >
]]>
<!ATTLIST Shape
containerField NMTOKEN "children"
class CDATA #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT Sound (IS?, (%MetadataNodes;)?, ( %AudioClipNodes;|%MovieTextureNodes;|%WildcardNodes; )? ) >
<!ATTLIST Sound
direction %SFVec3f; "0 0 1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
maxBack %SFFloat; "10"
maxFront %SFFloat; "10"
minBack %SFFloat; "1"
minFront %SFFloat; "1"
priority %SFFloat; "0"
spatialize %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Sphere ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Sphere
radius %SFFloat; "1"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT SphereSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SphereSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
enabled %SFBool; "true"
offset %SFRotation; "0 1 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT SpotLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SpotLight
ambientIntensity %SFFloat; "0"
attenuation %SFVec3f; "1 0 0"
beamWidth %SFFloat; "1.570796"
color %SFColor; "1 1 1"
cutOffAngle %SFFloat; "0.785398"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
on %SFBool; "true"
radius %SFFloat; "100"
global %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT StaticGroup (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST StaticGroup
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT StringSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST StringSensor
enabled %SFBool; "true"
deletionAllowed %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Switch (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST Switch
whichChoice %SFInt32; "-1"
containerField NMTOKEN "children"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT Text (IS?, (%MetadataNodes;)?, ( (%FontStyleNodes;)?|%WildcardNodes; ) ) >
<!ATTLIST Text
string %MFString; #IMPLIED
length %MFFloat; #IMPLIED
maxExtent %SFFloat; "0.0"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- backTexture, bottomTexture, frontTexture, leftTexture, rightTexture, topTexture; could use rule for 0..6 children here -->
<!ELEMENT TextureBackground (IS?, (%MetadataNodes;)?, (%Texture2DNodes;)* )>
<!ATTLIST TextureBackground
groundAngle %MFFloat; #IMPLIED
groundColor %MFColor; #IMPLIED
skyAngle %MFFloat; #IMPLIED
skyColor %MFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<!ELEMENT TextureCoordinate ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TextureCoordinate
point %MFVec2f; #IMPLIED
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT TextureCoordinateGenerator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureCoordinateGenerator
mode %TextureCoordinateGeneratorModes; "SPHERE"
parameter %MFFloat; #IMPLIED
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureProperties ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureProperties
anisotropicDegree %SFFloat; "1.0"
borderColor %SFColorRGBA; "0 0 0 0"
borderWidth (0 | 1) "0"
boundaryModeS %SFString; "REPEAT"
boundaryModeT %SFString; "REPEAT"
boundaryModeR %SFString; "REPEAT"
magnificationFilter %SFString; "FASTEST"
minificationFilter %SFString; "FASTEST"
textureCompression %SFString; "FASTEST"
texturePriority %SFFloat; "0.0"
generateMipMaps %SFBool; "false"
containerField NMTOKEN "textureProperties"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureTransform ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureTransform
center %SFVec2f; "0 0"
rotation %SFFloat; "0"
scale %SFVec2f; "1 1"
translation %SFVec2f; "0 0"
containerField NMTOKEN "textureTransform"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTextureTransform ((IS?), (TextureTransform|ProtoInstance)* ) >
<!ATTLIST MultiTextureTransform
containerField NMTOKEN "textureTransform"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT TimeSensor ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TimeSensor
cycleInterval %SFTime; "1.0"
enabled %SFBool; "true"
loop %SFBool; "false"
startTime %SFTime; "0"
stopTime %SFTime; "0"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT TimeTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TimeTrigger
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TouchSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TouchSensor
description %SFString; #IMPLIED
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Transform (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST Transform
center %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT IndexedTriangleFanSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST IndexedTriangleFanSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT IndexedTriangleSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST IndexedTriangleSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT IndexedTriangleStripSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST IndexedTriangleStripSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT TriangleFanSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST TriangleFanSet
fanCount %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT TriangleSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST TriangleSet
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT TriangleStripSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST TriangleStripSet
stripCount %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT Viewpoint ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Viewpoint
fieldOfView %SFFloat; "0.785398"
jump %SFBool; "true"
orientation %SFRotation; "0 0 1 0"
position %SFVec3f; "0 0 10"
description %SFString; #IMPLIED
centerOfRotation %SFVec3f; "0 0 0"
retainUserOffsets %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- centerOfRotation point relates to NavigationInfo EXAMINE mode. -->
<![%ImmersiveProfile;[
<!ELEMENT OrthoViewpoint ((IS?), (%MetadataNodes;)?)>
<!ATTLIST OrthoViewpoint
fieldOfView %MFFloat; "-1 -1 1 1"
jump %SFBool; "true"
orientation %SFRotation; "0 0 1 0"
position %SFVec3f; "0 0 10"
description %SFString; #IMPLIED
centerOfRotation %SFVec3f; "0 0 0"
retainUserOffsets %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ViewpointGroup ((IS?), (%MetadataNodes;)?, (Viewpoint | OrthoViewpoint | ViewpointGroup)* )>
<!ATTLIST ViewpointGroup
center %SFVec3f; "0 0 0"
description %SFString; #IMPLIED
displayed %SFBool; "true"
retainUserOffsets %SFBool; "false"
size %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT VisibilitySensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST VisibilitySensor
center %SFVec3f; "0 0 0"
enabled %SFBool; "true"
size %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT WorldInfo ((IS?), (%MetadataNodes;)?)>
<!ATTLIST WorldInfo
info %MFString; #IMPLIED
title %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT X3D (head?, Scene, ds:Signature?)>
<!ATTLIST X3D
xmlns:xsd CDATA "http://www.w3.org/2001/XMLSchema-instance"
xsd:noNamespaceSchemaLocation CDATA "http://www.web3d.org/specifications/x3d-3.2.xsd"
profile %profileNames; #REQUIRED
version (3.0 | 3.1 | 3.2) #REQUIRED
xmlns:ds CDATA "http://www.w3.org/2000/09/xmldsig#"
xmlns:xenc CDATA "http://www.w3.org/2001/04/xmlenc#"
>
<!-- XML security: digital signature (ds), encryption (xenc) -->
<!-- EspduTransform includes DIS CollisionPdu DetonatePdu FirePdu -->
<![%DISComponent;[
<!ELEMENT EspduTransform (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST EspduTransform
enabled %SFBool; "true"
marking %SFString; #IMPLIED
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
forceID %SFInt32; "0"
entityKind %SFInt32; "0"
entityDomain %SFInt32; "0"
entityCountry %SFInt32; "0"
entityCategory %SFInt32; "0"
entitySubCategory %SFInt32; "0"
entitySpecific %SFInt32; "0"
entityExtra %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
center %SFVec3f; "0 0 0"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
deadReckoning %SFInt32; "0"
linearVelocity %SFVec3f; "0 0 0"
linearAcceleration %SFVec3f; "0 0 0"
fired1 %SFBool; "false"
fired2 %SFBool; "false"
collisionType %SFInt32; "0"
detonationLocation %SFVec3f; "0 0 0"
detonationRelativeLocation %SFVec3f; "0 0 0"
detonationResult %SFInt32; "0"
eventApplicationID %SFInt32; "1"
eventEntityID %SFInt32; "0"
eventNumber %SFInt32; "0"
eventSiteID %SFInt32; "0"
munitionStartPoint %SFVec3f; "0 0 0"
munitionEndPoint %SFVec3f; "0 0 0"
warhead %SFInt32; "0"
fuse %SFInt32; "0"
munitionQuantity %SFInt32; "0"
firingRate %SFInt32; "0"
firingRange %SFFloat; "0"
munitionSiteID %SFInt32; "0"
munitionApplicationID %SFInt32; "1"
munitionEntityID %SFInt32; "0"
fireMissionIndex %SFInt32; "0"
articulationParameterCount %SFInt32; "0"
articulationParameterDesignatorArray %MFInt32; #IMPLIED
articulationParameterChangeIndicatorArray %MFInt32; #IMPLIED
articulationParameterIdPartAttachedToArray %MFInt32; #IMPLIED
articulationParameterTypeArray %MFInt32; #IMPLIED
articulationParameterArray %MFFloat; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT ReceiverPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ReceiverPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
receivedPower %SFFloat; "0.0"
receiverState %SFInt32; "0"
transmitterSiteID %SFInt32; "0"
transmitterApplicationID %SFInt32; "0"
transmitterEntityID %SFInt32; "0"
transmitterRadioID %SFInt32; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT SignalPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SignalPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
encodingScheme %SFInt32; "0"
tdlType %SFInt32; "0"
sampleRate %SFInt32; "0"
samples %SFInt32; "0"
dataLength %SFInt32; "0"
data %MFInt32; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT TransmitterPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TransmitterPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode (standAlone|networkReader|networkWriter) "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
antennaLocation %SFVec3f; "0 0 0"
antennaPatternLength %SFInt32; "0"
antennaPatternType %SFInt32; "0"
cryptoKeyID %SFInt32; "0"
cryptoSystem %SFInt32; "0"
frequency %SFInt32; "0"
inputSource %SFInt32; "0"
lengthOfModulationParameters %SFInt32; "0"
modulationTypeDetail %SFInt32; "0"
modulationTypeMajor %SFInt32; "0"
modulationTypeSpreadSpectrum %SFInt32; "0"
modulationTypeSystem %SFInt32; "0"
power %SFFloat; "0.0"
radioEntityTypeCategory %SFInt32; "0"
radioEntityTypeCountry %SFInt32; "0"
radioEntityTypeDomain %SFInt32; "0"
radioEntityTypeKind %SFInt32; "0"
radioEntityTypeNomenclature %SFInt32; "0"
radioEntityTypeNomenclatureVersion %SFInt32; "0"
relativeAntennaLocation %SFVec3f; "0 0 0"
transmitFrequencyBandwidth %SFFloat; "0.0"
transmitState %SFInt32; "0"
containerField NMTOKEN "children"
class CDATA ""
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT DISEntityManager ( (IS?), (%MetadataNodes;)?, (DISEntityTypeMapping|%WildcardNodes;)* ) >
<!ATTLIST DISEntityManager
siteID %SFInt32; "0"
applicationID %SFInt32; "1"
address %SFString; "localhost"
port %SFInt32; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT DISEntityTypeMapping ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST DISEntityTypeMapping
category %SFInt32; "0"
country %SFInt32; "0"
domain %SFInt32; "0"
extra %SFInt32; "0"
kind %SFInt32; "0"
specific %SFInt32; "0"
subcategory %SFInt32; "0"
url %MFString; #IMPLIED
containerField NMTOKEN "mapping"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%GeoSpatialComponent;[
<!ELEMENT GeoCoordinate ( IS?, (%MetadataNodes;)?, GeoOrigin? ) > <!-- X3DCoordinateNodeType -->
<!ATTLIST GeoCoordinate
geoSystem %MFString; '"GD" "WE"'
point %MFVec3d; #IMPLIED
containerField NMTOKEN "coord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- need to restrict GeoOrigin to first element, or relax schema restriction -->
<!ELEMENT GeoElevationGrid (IS?, (%MetadataNodes;)?, (
((%ColorNodes;), (
(GeoOrigin, ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( (GeoOrigin,((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
(GeoOrigin,((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( (GeoOrigin,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|(GeoOrigin, (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%NormalNodes;), (
((%ColorNodes;), ( (GeoOrigin,((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),(GeoOrigin|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%TextureCoordinateNodes;), (
((%ColorNodes;), ( (GeoOrigin,((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),(GeoOrigin|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? ) )? )
|(%WildcardNodes;, (
((%ColorNodes;), ( (GeoOrigin,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
)? ) >
<!ATTLIST GeoElevationGrid
geoSystem %MFString; '"GD" "WE"'
geoGridOrigin %SFVec3d; "0 0 0"
xDimension %SFInt32; "0"
xSpacing %SFDouble; "1.0"
yScale %SFFloat; "1.0"
zDimension %SFInt32; "0"
zSpacing %SFDouble; "1.0"
height %MFDouble; "0 0"
normalPerVertex %SFBool; "true"
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
creaseAngle %SFFloat; "0"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoLocation (IS?, (%MetadataNodes;)?,
( %ChildrenNodes;|%WildcardNodes; )*, (GeoOrigin, ( %ChildrenNodes;|%WildcardNodes; )* )? ) >
<!ATTLIST GeoLocation
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoLOD (IS?, (%MetadataNodes;)?,
( %ChildrenNodes;|%WildcardNodes; )*, (GeoOrigin, ( %ChildrenNodes;|%WildcardNodes; )* )? ) >
<!ATTLIST GeoLOD
geoSystem %MFString; '"GD" "WE"'
rootUrl %MFString; #IMPLIED
child1Url %MFString; #IMPLIED
child2Url %MFString; #IMPLIED
child3Url %MFString; #IMPLIED
child4Url %MFString; #IMPLIED
range %SFFloat; "10"
center %SFVec3d; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoMetadata ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST GeoMetadata
url %MFString; #IMPLIED
data IDREFS #IMPLIED
summary %MFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!--
title %SFString; #IMPLIED
description %SFString; #IMPLIED
coordinateSystem %SFString; #IMPLIED
horizontalDatum %SFString; #IMPLIED
verticalDatum %SFString; #IMPLIED
ellipsoid %SFString; #IMPLIED
extent %SFString; #IMPLIED
resolution %SFString; #IMPLIED
originator %SFString; #IMPLIED
copyright %SFString; #IMPLIED
date %SFString; #IMPLIED
metadataFormat %SFString; #IMPLIED
dataUrl %SFString; #IMPLIED
dataFormat %SFString; #IMPLIED
-->
<!ELEMENT GeoOrigin ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST GeoOrigin
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
rotateYUp %SFBool; "false"
containerField NMTOKEN "geoOrigin"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoPositionInterpolator ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoPositionInterpolator
geoSystem %MFString; '"GD" "WE"'
key %MFFloat; #IMPLIED
keyValue %MFVec3d; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoProximitySensor ( (IS?), (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoProximitySensor
geoSystem %MFString; '"GD" "WE"'
geoCenter %MFDouble; "0 0 0"
size %SFVec3f; "0 0 0"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoTouchSensor ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoTouchSensor
geoSystem %MFString; '"GD" "WE"'
enabled %SFBool; "true"
description %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoTransform (IS?, (%MetadataNodes;)?, GeoOrigin?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST GeoTransform
geoSystem %MFString; '"GD" "WE"'
geoCenter %SFVec3d; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT GeoViewpoint ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoViewpoint
geoSystem %MFString; '"GD" "WE"'
description %SFString; #IMPLIED
position %SFVec3d; "0 0 100000"
orientation %SFRotation; "0 0 1 0"
fieldOfView %SFFloat; "0.785398"
jump %SFBool; "true"
navType %MFString; '"EXAMINE" "ANY"'
headlight %SFBool; "true"
speedFactor %SFFloat; "1.0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- Note that setting JointNames as enumerations does not permit validation of other names. -->
<![%HAnimComponent;[
<!ENTITY % JointNames "(
c1|c2|c3|c4|c5|c6|c7|jaw|HumanoidRoot|l_acromioclavicular|l_ankle|l_calf|
l_clavicle|l_elbow|l_eyeball|l_eyeball_joint|l_eyebrow|l_eyebrow_joint|
l_eyelid|l_eyelid_joint|l_forearm|l_forefoot|l_hand|l_hindfoot|l_hip|
l_index_distal|l_index_metacarpal|l_index_middle|l_index_proximal|
l_index0|l_index1|l_index2|l_index3|l_knee|l_metatarsal|l_middistal|
l_middle_distal|l_middle_metacarpal|l_middle_middle|l_middle_proximal|
l_middle0|l_middle1|l_middle2|l_middle3|l_midproximal|l_midtarsal|
l_pinky_distal|l_pinky_metacarpal|l_pinky_middle|l_pinky_proximal|
l_pinky0|l_pinky1|l_pinky2|l_pinky3|l_ring_distal|l_ring_metacarpal|
l_ring_middle|l_ring_proximal|l_ring0|l_ring1|l_ring2|l_ring3|l_scapula|
l_shoulder|l_sternoclavicular|l_subtalar|l_thigh|l_thumb_distal|
l_thumb_metacarpal|l_thumb_proximal|l_thumb1|l_thumb2|l_thumb3|
l_upperarm|l_wrist|l1|l2|l3|l4|l5|pelvis|r_acromioclavicular|r_ankle|
r_calf|r_clavicle|r_elbow|r_eyeball|r_eyeball_joint|r_eyebrow|
r_eyebrow_joint|r_eyelid|r_eyelid_joint|r_forearm|r_forefoot|r_hand|
r_hindfoot|r_hip|r_index_distal|r_index_metacarpal|r_index_middle|
r_index_proximal|r_index0|r_index1|r_index2|r_index3|r_knee|r_metatarsal|
r_middistal|r_middle_distal|r_middle_metacarpal|r_middle_middle|
r_middle_proximal|r_middle0|r_middle1|r_middle2|r_middle3|r_midproximal|
r_midtarsal|r_pinky_distal|r_pinky_metacarpal|r_pinky_middle|
r_pinky_proximal|r_pinky0|r_pinky1|r_pinky2|r_pinky3|r_ring_distal|
r_ring_metacarpal|r_ring_middle|r_ring_proximal|r_ring0|r_ring1|r_ring2|
r_ring3|r_scapula|r_shoulder|r_sternoclavicular|r_subtalar|r_thigh|
r_thumb_distal|r_thumb_metacarpal|r_thumb_proximal|r_thumb1|r_thumb2|
r_thumb3|r_upperarm|r_wrist|sacroiliac|sacrum|skull|skullbase|
t1|t2|t3|t4|t5|t6|t7|t8|t9|t10|t11|t12|temporomandibular|
vc1|vc2|vc3|vc4|vc5|vc6|vc7|vl1|vl2|vl3|vl4|vl5|
vt1|vt2|vt3|vt4|vt5|vt6|vt7|vt8|vt9|vt10|vt11|vt12)" >
<!ELEMENT HAnimDisplacer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST HAnimDisplacer
name %SFString; #IMPLIED
coordIndex %MFInt32; #IMPLIED
displacements %MFVec3f; #IMPLIED
weight %SFFloat; "0.0"
containerField NMTOKEN "displacers"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT HAnimHumanoid (IS?, (%MetadataNodes;)?,
(HAnimJoint*, HAnimSegment*, HAnimSite*, (%CoordinateNodes;)?, (%NormalNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) ) >
<!-- skeleton/joints, segments, sites, skinCoord, skinNormal, skin/viewpoints -->
<!-- note that joints, segments and sites should be USE nodes. skin Shapes will USE preceding skinCoord, skinNormal definitions. -->
<!ATTLIST HAnimHumanoid
name %SFString; #IMPLIED
version %SFString; #IMPLIED
info %MFString; #IMPLIED
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- not treated as separate attributes, instead these are
encoded as "attribute=value" SFString entries in the
MFString info field.
humanoidVersion %SFString; #IMPLIED
authorName %SFString; #IMPLIED
authorEmail %SFString; #IMPLIED
copyright %SFString; #IMPLIED
creationDate %SFString; #IMPLIED
usageRestrictions %SFString; #IMPLIED
age %SFString; #IMPLIED
gender %SFString; #IMPLIED
height %SFString; #IMPLIED
weight %SFString; #IMPLIED
-->
<![%HAnimComponent;[
<!ELEMENT HAnimJoint (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|HAnimDisplacer|%WildcardNodes; )* ) >
<!ATTLIST HAnimJoint
name %JointNames; #IMPLIED
ulimit %MFFloat; #IMPLIED
llimit %MFFloat; #IMPLIED
limitOrientation %SFRotation; "0 0 1 0"
skinCoordIndex %MFInt32; #IMPLIED
skinCoordWeight %MFFloat; #IMPLIED
stiffness %MFFloat; "0 0 0"
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Multiple HAnimDisplacer nodes must appear consecutively inside HAnimSegment -->
<!ELEMENT HAnimSegment (IS?, (%MetadataNodes;)?, (
((%ChildrenNodes;|%WildcardNodes;)*, ((Coordinate, HAnimDisplacer*)|(HAnimDisplacer+, Coordinate?))? ) |
(Coordinate, (((%ChildrenNodes;)*, HAnimDisplacer*)|(HAnimDisplacer+, (%ChildrenNodes;|%WildcardNodes;)*))? ) |
(HAnimDisplacer+, ((Coordinate, (%ChildrenNodes;|%WildcardNodes;)*)|((%ChildrenNodes;|%WildcardNodes;)*, Coordinate?))? )?
) ) >
<!ATTLIST HAnimSegment
name %JointNames; #IMPLIED
mass %SFFloat; "0"
centerOfMass %SFVec3f; "0 0 0"
momentsOfInertia %MFFloat; "0 0 0 0 0 0 0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT HAnimSite (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST HAnimSite
name %SFString; #IMPLIED
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%NurbsComponent;[
<!ELEMENT Contour2D (IS?, (%MetadataNodes;)?, ( %NurbsControlCurveNodes;|%WildcardNodes; )* ) >
<!ATTLIST Contour2D
containerField NMTOKEN "trimmingContour"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ContourPolyline2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ContourPolyline2D
point %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- child CoordinateNode has containerField controlPoint -->
<!ELEMENT NurbsCurve ( (IS?), (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )? ) >
<!ATTLIST NurbsCurve
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
tessellation %SFInt32; "0"
closed %SFBool; "false"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsCurve2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST NurbsCurve2D
controlPoint %MFVec2d; #IMPLIED
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
tessellation %SFInt32; "0"
closed %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsOrientationInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsOrientationInterpolator
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsPositionInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsPositionInterpolator
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSurfaceInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsSurfaceInterpolator
weight %MFDouble; #IMPLIED
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSet (IS?, (%MetadataNodes;)?, (NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|%WildcardNodes; )* ) >
<!ATTLIST NurbsSet
tessellationScale %SFFloat; "1.0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsPatchSurface (IS?, (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )?, ( %TextureCoordinateNodes;|NurbsTextureCoordinate)? ) >
<!ATTLIST NurbsPatchSurface
uClosed %SFBool; "false"
vClosed %SFBool; "false"
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
uTessellation %SFInt32; "0"
vTessellation %SFInt32; "0"
weight %MFDouble; #IMPLIED
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsTrimmedSurface (IS?, (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )?, ( %TextureCoordinateNodes;|NurbsTextureCoordinate)?, Contour2D* ) >
<!ATTLIST NurbsTrimmedSurface
uClosed %SFBool; "false"
vClosed %SFBool; "false"
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
uTessellation %SFInt32; "0"
vTessellation %SFInt32; "0"
weight %MFDouble; #IMPLIED
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSweptSurface (IS?, (%MetadataNodes;)?, (NurbsCurve|%WildcardNodes; )?, ( %NurbsControlCurveNodes;|%WildcardNodes; )? ) >
<!ATTLIST NurbsSweptSurface
ccw %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSwungSurface (IS?, (%MetadataNodes;)?, ( ( %NurbsControlCurveNodes;|%WildcardNodes; ), ( %NurbsControlCurveNodes;|%WildcardNodes; )? )? ) >
<!ATTLIST NurbsSwungSurface
ccw %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsTextureCoordinate ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsTextureCoordinate
controlPoint %MFVec2f; #IMPLIED
weight %MFFloat; #IMPLIED
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%CadComponent;[
<!ELEMENT CADAssembly (IS?, (%MetadataNodes;)?, (%ChildrenNodes;|CADPart|%WildcardNodes;)*)>
<!ATTLIST CADAssembly
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
name %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CADFace (IS?, (%MetadataNodes;)?, (Shape|LOD|%WildcardNodes;)*)>
<!ATTLIST CADFace
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
name %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CADLayer (IS?, (%MetadataNodes;)?, (%ChildrenNodes;|%WildcardNodes;)*)>
<!ATTLIST CADLayer
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
name %SFString; #IMPLIED
visible %MFBool; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CADPart (IS?, (%MetadataNodes;)?, (CADFace|%WildcardNodes;)*)>
<!ATTLIST CADPart
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
center %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
name %SFString; #IMPLIED
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT QuadSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*)>
<!ATTLIST QuadSet
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IndexedQuadSet ( (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*) ) >
<!ATTLIST IndexedQuadSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%CubeMapTexturingComponent;[
<!-- containerField values: front back left right top bottom. could use rule for 0..6 children here -->
<!ELEMENT ComposedCubeMapTexture (IS?, (%MetadataNodes;)?, (%Texture2DNodes;)* )>
<!ATTLIST ComposedCubeMapTexture
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT GeneratedCubeMapTexture (IS?, (%MetadataNodes;)? )>
<!ATTLIST GeneratedCubeMapTexture
update (NONE|NEXT_FRAME_ONLY|ALWAYS) "NONE"
size %SFInt32; "128"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT ImageCubeMapTexture (IS?, (%MetadataNodes;)? )>
<!ATTLIST ImageCubeMapTexture
url %MFString; #IMPLIED
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<!-- parent content model and default containerField names for most ShadersComponent nodes is not clear.. -->
<![%ShadersComponent;[
<!ELEMENT ComposedShader ( (IS?), (%MetadataNodes;)?, (ShaderPart|%WildcardNodes;)*, (field)* ) >
<!ATTLIST ComposedShader
language %SFString; #IMPLIED
containerField CDATA "shaders"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT FloatVertexAttribute ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST FloatVertexAttribute
value %MFFloat; #IMPLIED
name %SFString; #IMPLIED
numComponents (1|2|3|4) "4"
containerField CDATA "attrib"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Matrix3VertexAttribute ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Matrix3VertexAttribute
value %MFMatrix3f; #IMPLIED
name %SFString; #IMPLIED
containerField CDATA "attrib"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Matrix4VertexAttribute ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Matrix4VertexAttribute
value %MFMatrix4f; #IMPLIED
name %SFString; #IMPLIED
containerField CDATA "attrib"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PackagedShader ( (IS?), (%MetadataNodes;)?, (field)* ) >
<!ATTLIST PackagedShader
language %SFString; #IMPLIED
containerField CDATA "shaders"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ProgramShader ( (IS?), (%MetadataNodes;)?, (ShaderProgram|%WildcardNodes;)*, (field)* ) >
<!ATTLIST ProgramShader
language %SFString; #IMPLIED
containerField CDATA "shaders"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ShaderPart ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ShaderPart
url %MFString; #IMPLIED
type ( VERTEX|FRAGMENT ) #IMPLIED
containerField NMTOKEN "parts"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ShaderProgram ( (IS?), (%MetadataNodes;)?, (field)* ) >
<!ATTLIST ShaderProgram
url %MFString; #IMPLIED
type ( VERTEX|FRAGMENT ) #IMPLIED
containerField NMTOKEN "programs"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%Texture3DComponent;[
<!ELEMENT ComposedTexture3D ((IS?), (%MetadataNodes;)?, (%Texture2DNodes;)*)>
<!ATTLIST ComposedTexture3D
repeatS %SFBool; "false"
repeatT %SFBool; "false"
repeatR %SFBool; "false"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ImageTexture3D ((IS?), (%MetadataNodes;)?, (TextureProperties | %WildcardNodes;)?)>
<!ATTLIST ImageTexture3D
url %MFString; #IMPLIED
repeatS %SFBool; "false"
repeatT %SFBool; "false"
repeatR %SFBool; "false"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PixelTexture3D ((IS?), (%MetadataNodes;)?, (TextureProperties | %WildcardNodes;)?)>
<!ATTLIST PixelTexture3D
image %MFInt32; "0 0 0 0"
repeatS %SFBool; "false"
repeatT %SFBool; "false"
repeatR %SFBool; "false"
containerField NMTOKEN "texture"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureCoordinate3D ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TextureCoordinate3D
point %MFVec3f; #IMPLIED
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureCoordinate4D ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TextureCoordinate4D
point %MFVec4f; #IMPLIED
containerField NMTOKEN "texCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureMatrixTransform ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureMatrixTransform
matrix %SFMatrix4f; "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"
containerField NMTOKEN "textureTransform"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureTransform3D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureTransform3D
center %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
translation %SFVec3f; "0 0 0"
containerField NMTOKEN "textureTransform"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT LocalFog ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST LocalFog
enabled %SFBool; "true"
color %SFColor; "1 1 1"
fogType (LINEAR|EXPONENTIAL) "LINEAR"
visibilityRange %SFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT FogCoordinate ((IS?), (%MetadataNodes;)?)>
<!ATTLIST FogCoordinate
depth %MFVec3f; #IMPLIED
containerField NMTOKEN "fogCoord"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- v3.2 -->
<![%FullProfile;[
<!ELEMENT TwoSidedMaterial ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TwoSidedMaterial
ambientIntensity %SFFloat; "0.2"
diffuseColor %SFColor; "0.8 0.8 0.8"
emissiveColor %SFColor; "0 0 0"
shininess %SFFloat; "0.2"
specularColor %SFColor; "0 0 0"
transparency %SFFloat; "0"
backAmbientIntensity %SFFloat; "0.2"
backDiffuseColor %SFColor; "0.8 0.8 0.8"
backEmissiveColor %SFColor; "0 0 0"
backShininess %SFFloat; "0.2"
backSpecularColor %SFColor; "0 0 0"
backTransparency %SFFloat; "0"
separateBackColor %SFBool; "false"
containerField NMTOKEN "material"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%LayeringComponent;[
<!-- TODO: any order for SFNode child Viewport -->
<!ELEMENT Layer (IS?, (%MetadataNodes;)?, Viewport, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST Layer
isPickable %SFBool; "true"
containerField NMTOKEN "layers"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT LayerSet (IS?, (%MetadataNodes;)?, (Layer | %WildcardNodes;)*)>
<!ATTLIST LayerSet
activeLayer %SFInt32; "0"
order %MFInt32; "0"
containerField NMTOKEN "layers"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT Viewport (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST Viewport
clipBoundary %MFFloat; "0 1 0 1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "viewport"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<![%LayoutComponent;[
<!ELEMENT Layout ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Layout
align %MFString; '"CENTER" "CENTER"'
offsetUnits %MFString; '"WORLD" "WORLD"'
scaleMode %MFString; '"NONE" "NONE"'
sizeUnits %MFString; '"WORLD" "WORLD"'
offset %MFFloat; "0 0"
size %SFFloat; "1.0"
containerField NMTOKEN "layout"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Minimum supported values:
align ' "LEFT" "CENTER" "RIGHT" "BOTTOM" "CENTER" "TOP" '
offsetUnits ' "WORLD" "FRACTION" "PIXEL" '
scaleMode ' "NONE" "FRACTION" "STRETCH" "PIXEL" '
sizeUnits ' "WORLD" "FRACTION" "PIXEL" ' -->
<!-- TODO: any order for SFNode children Layout and Viewport -->
<!ELEMENT LayoutGroup (IS?, (%MetadataNodes;)?, Layout, Viewport, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST LayoutGroup
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- TODO: any order for SFNode children Layout and Viewport -->
<!ELEMENT LayoutLayer (IS?, (%MetadataNodes;)?, Layout, Viewport, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST LayoutLayer
isPickable %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ScreenFontStyle ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ScreenFontStyle
family %MFString; '"SERIF"'
horizontal %SFBool; "true"
justify %MFString; '"BEGIN"'
language %SFString; #IMPLIED
leftToRight %SFBool; "true"
pointSize %SFFloat; "1.0"
spacing %SFFloat; "1.0"
style (PLAIN|BOLD|ITALIC|BOLDITALIC) "PLAIN"
topToBottom %SFBool; "true"
containerField NMTOKEN "fontStyle"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Minimum supported values:
family ' "SERIF" "SANS" "TYPEWRITER" '
justify ' "FIRST" "BEGIN" "MIDDLE" "END" ' -->
<!ELEMENT ScreenGroup (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST ScreenGroup
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<![%RigidBodyPhysicsComponent;[
<!ELEMENT BallJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)*)>
<!ATTLIST BallJoint
anchorPoint %SFVec3f; "0 0 0"
mustOutput %MFString; "NONE"
containerField NMTOKEN "joints"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CollidableOffset (IS?, (%MetadataNodes;)?, (CollidableOffset | CollidableShape | %WildcardNodes;)? )>
<!ATTLIST CollidableOffset
enabled %SFBool; "true"
rotation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CollidableShape (IS?, (%MetadataNodes;)?, (Shape | %WildcardNodes;)? )>
<!ATTLIST CollidableShape
enabled %SFBool; "true"
rotation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CollisionCollection (IS?, (%MetadataNodes;)?, (CollidableOffset | CollidableShape | CollisionSpace | %WildcardNodes;)* )>
<!ATTLIST CollisionCollection
appliedParameters %MFString; "BOUNCE"
bounce %SFFloat; "0"
enabled %SFBool; "true"
frictionCoefficients %SFVec2f; "0 0"
minBounceSpeed %SFFloat; "0.1"
slipFactors %SFVec2f; "0 0"
softnessConstantForceMix %SFFloat; "0.0001"
softnessErrorCorrection %SFFloat; "0.8"
surfaceSpeed %SFVec2f; "0 0"
containerField NMTOKEN "collidables"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CollisionSensor (IS?, (%MetadataNodes;)?, (CollisionCollection | %WildcardNodes;)? )>
<!ATTLIST CollisionSensor
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CollisionSpace (IS?, (%MetadataNodes;)?, (CollidableOffset | CollidableShape | CollisionSpace | %WildcardNodes;)* )>
<!ATTLIST CollisionSpace
useGeometry %SFBool; "false"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT Contact (IS?, (%MetadataNodes;)?, (RigidBody | CollidableOffset | CollidableShape | %WildcardNodes;)* )>
<!ATTLIST Contact
appliedParameters %MFString; "BOUNCE"
bounce %SFFloat; "0"
contactNormal %SFVec3f; "0 1 0"
depth %SFFloat; "0"
frictionCoefficients %SFVec2f; "0 0"
frictionDirection %SFVec3f; "0 1 0"
minBounceSpeed %SFFloat; "0"
position %SFVec3f; "0 0 0"
slipCoefficients %SFVec2f; "0 0"
softnessConstantForceMix %SFFloat; "0.0001"
softnessErrorCorrection %SFFloat; "0.8"
surfaceSpeed %SFVec2f; "0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT DoubleAxisHingeJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)* )>
<!ATTLIST DoubleAxisHingeJoint
anchorPoint %SFVec3f; "0 1 0"
axis1 %SFVec3f; "0 1 0"
axis2 %SFVec3f; "0 1 0"
desiredAngularVelocity1 %SFFloat; "0"
desiredAngularVelocity2 %SFFloat; "0"
maxAngle1 %SFFloat; "3.1416"
maxTorque1 %SFFloat; "0"
maxTorque2 %SFFloat; "0"
minAngle1 %SFFloat; "-3.1416"
mustOutput %MFString; "NONE"
stopBounce1 %SFFloat; "0"
stopConstantForceMix1 %SFFloat; "0.001"
stopErrorCorrection1 %SFFloat; "0.8"
suspensionErrorCorrection %SFFloat; "0.8"
suspensionForce %SFFloat; "0"
containerField NMTOKEN "joints"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT MotorJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)* )>
<!ATTLIST MotorJoint
autoCalc %SFBool; "false"
axis1Angle %SFFloat; "0"
axis1Torque %SFFloat; "0"
axis2Angle %SFFloat; "0"
axis2Torque %SFFloat; "0"
axis3Angle %SFFloat; "0"
axis3Torque %SFFloat; "0"
enabledAxes (0|1|2|3) "1"
mustOutput%MFString; "NONE"
motor1Axis %SFVec3f; "0 0 0"
motor2Axis %SFVec3f; "0 0 0"
motor3Axis %SFVec3f; "0 0 0"
stop1Bounce %SFFloat; "0"
stop1ErrorCorrection %SFFloat; "0.8"
stop2Bounce %SFFloat; "0"
stop2ErrorCorrection %SFFloat; "0.8"
stop3Bounce %SFFloat; "0"
stop3ErrorCorrection %SFFloat; "0.8"
containerField NMTOKEN "joints"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT RigidBody (IS?, (%MetadataNodes;)?, (Sphere | Box | Cone )?, (CollidableOffset | CollidableShape | %WildcardNodes;)* )>
<!ATTLIST RigidBody
angularDampingFactor %SFFloat; "0.001"
angularVelocity %SFVec3f; "0 0 0"
autoDamp %SFBool; "false"
autoDisable %SFBool; "false"
centerOfMass %SFVec3f; "0 0 0"
disableAngularSpeed %SFFloat; "0"
disableLinearSpeed %SFFloat; "0"
disableTime %SFTime; "0"
enabled %SFBool; "true"
finiteRotationAxis %SFVec3f; "0 0 0"
fixed %SFBool; "false"
forces %MFVec3f; #IMPLIED
inertia %SFMatrix3f; "1 0 0 0 1 0 0 0 1"
linearDampingFactor %SFFloat; "0.001"
linearVelocity %SFVec3f; "0 0 0"
mass %SFFloat; "1"
orientation %SFRotation; "0 0 1 0"
position %SFVec3f; "0 0 0"
torques %MFVec3f; #IMPLIED
useFiniteRotation %SFBool; "false"
useGlobalGravity %SFBool; "true"
containerField (body1 | body2 | bodies) "bodies"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT RigidBodyCollection (IS?, (%MetadataNodes;)?, (RigidBody | BallJoint | DoubleAxisHingeJoint | MotorJoint | SingleAxisHingeJoint | SliderJoint | UniversalJoint | CollisionCollection | %WildcardNodes;)* )>
<!ATTLIST RigidBodyCollection
autoDisable %SFBool; "false"
constantForceMix %SFFloat; "0.0001"
contactSurfaceThickness %SFFloat; "0"
disableAngularSpeed %SFFloat; "0"
disableLinearSpeed %SFFloat; "0"
disableTime %SFTime; "0"
enabled %SFBool; "true"
errorCorrection %SFFloat; "0.8"
gravity %SFVec3f; "0 -9.8 0"
iterations %SFInt32; "10"
maxCorrectionSpeed %SFFloat; "-1"
preferAccuracy %SFBool; "false"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT SingleAxisHingeJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)* )>
<!ATTLIST SingleAxisHingeJoint
anchorPoint %SFVec3f; "0 0 0"
axis %SFVec3f; "0 0 0"
maxAngle %SFFloat; "3.1416"
minAngle %SFFloat; "-3.1416"
mustOutput%MFString; "NONE"
stopBounce %SFFloat; "0"
stopErrorCorrection %SFFloat; "0.8"
containerField NMTOKEN "joints"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT SliderJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)* )>
<!ATTLIST SliderJoint
axis %SFVec3f; "0 1 0"
mustOutput%MFString; "NONE"
maxSeparation %SFFloat; "1"
minSeparation %SFFloat; "0"
stopBounce %SFFloat; "0"
stopErrorCorrection %SFFloat; "1"
containerField NMTOKEN "joints"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT UniversalJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)* )>
<!ATTLIST UniversalJoint
anchorPoint %SFVec3f; "0 0 0"
axis1 %SFVec3f; "0 0 0"
axis2 %SFVec3f; "0 0 0"
mustOutput%MFString; "NONE"
stop1Bounce %SFFloat; "0"
stop1ErrorCorrection %SFFloat; "0.8"
stop2Bounce %SFFloat; "0"
stop2ErrorCorrection %SFFloat; "0.8"
containerField NMTOKEN "joints"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<![%PickingSensorComponent;[
<!ELEMENT LinePickSensor (IS?, (%MetadataNodes;)?, (IndexedLineSet | LineSet | %WildcardNodes;), (%GroupingNodes; | Inline | %WildcardNodes;)* )>
<!ATTLIST LinePickSensor
enabled %SFBool; "true"
objectType %MFString; "ALL"
intersectionType %SFString; "BOUNDS"
sortOrder %SFString; "CLOSEST"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PickableGroup (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST PickableGroup
objectType %MFString; "ALL"
pickable %SFBool; "true"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PrimitivePickSensor (IS?, (%MetadataNodes;)?, (Cone|Cylinder|Sphere|Box)?, (%GroupingNodes; | Shape | Inline | %WildcardNodes;)* )>
<!ATTLIST PrimitivePickSensor
enabled %SFBool; "true"
objectType %MFString; "ALL"
intersectionType %SFString; "BOUNDS"
sortOrder %SFString; "CLOSEST"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT VolumePickSensor (IS?, (%MetadataNodes;)?, (%GeometryNodes; | %WildcardNodes;)?, (%GroupingNodes; | Shape | Inline | %WildcardNodes;)* )>
<!ATTLIST VolumePickSensor
enabled %SFBool; "true"
objectType %MFString; "ALL"
intersectionType %SFString; "BOUNDS"
sortOrder %SFString; "CLOSEST"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<![%FollowersComponent;[
<!ELEMENT ColorDamper (IS?, (%MetadataNodes;)? )>
<!ATTLIST ColorDamper
tau %SFTime; "0"
tolerance %SFFloat; "-1"
initialDestination %SFColor; "0.8 0.8 0.8"
initialValue %SFColor; "0.8 0.8 0.8"
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CoordinateDamper (IS?, (%MetadataNodes;)? )>
<!ATTLIST CoordinateDamper
tau %SFTime; "0"
tolerance %SFFloat; "-1"
initialDestination %MFVec3f; "0 0 0"
initialValue %MFVec3f; "0 0 0"
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT OrientationChaser (IS?, (%MetadataNodes;)? )>
<!ATTLIST OrientationChaser
duration %SFTime; "0"
initialDestination %MFVec3f; "0 1 0 0"
initialValue %MFVec3f; "0 1 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT OrientationDamper (IS?, (%MetadataNodes;)? )>
<!ATTLIST OrientationDamper
tau %SFTime; "0"
tolerance %SFFloat; "-1"
initialDestination %SFRotation; "0 1 0 0"
initialValue %SFRotation; "0 1 0 0"
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PositionChaser (IS?, (%MetadataNodes;)? )>
<!ATTLIST PositionChaser
duration %SFTime; "0"
initialDestination %SFVec3f; "0 0 0"
initialValue %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PositionChaser2D (IS?, (%MetadataNodes;)? )>
<!ATTLIST PositionChaser2D
duration %SFTime; "0"
initialDestination %SFVec2f; "0 0"
initialValue %SFVec2f; "0 0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PositionDamper (IS?, (%MetadataNodes;)? )>
<!ATTLIST PositionDamper
tau %SFTime; "0"
tolerance %SFFloat; "-1"
initialDestination %SFVec3f; "0 0 0"
initialValue %SFVec3f; "0 0 0"
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PositionDamper2D (IS?, (%MetadataNodes;)? )>
<!ATTLIST PositionDamper2D
tau %SFTime; "0"
tolerance %SFFloat; "-1"
initialDestination %SFVec2f; "0 0"
initialValue %SFVec2f; "0 0"
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ScalarChaser (IS?, (%MetadataNodes;)? )>
<!ATTLIST ScalarChaser
duration %SFTime; "0"
initialDestination %SFFloat; "0"
initialValue %SFFloat; "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT TexCoordDamper2D (IS?, (%MetadataNodes;)? )>
<!ATTLIST TexCoordDamper2D
tau %SFTime; "0"
tolerance %SFFloat; "-1"
initialDestination %MFVec2f; #IMPLIED
initialValue %MFVec2f; #IMPLIED
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<![%ParticleSystemsComponent;[
<!ELEMENT BoundedPhysicsModel (IS?, (%MetadataNodes;)?, (%GeometryNodes; | %WildcardNodes;)? )>
<!ATTLIST BoundedPhysicsModel
enabled %SFBool; "true"
containerField NMTOKEN "physics"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ForcePhysicsModel (IS?, (%MetadataNodes;)? )>
<!ATTLIST ForcePhysicsModel
enabled %SFBool; "true"
force %SFVec3f; "0 -9.8 0"
containerField NMTOKEN "physics"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT WindPhysicsModel (IS?, (%MetadataNodes;)? )>
<!ATTLIST WindPhysicsModel
direction %SFVec3f; "1 0 0"
enabled %SFBool; "true"
gustiness %SFFloat; "0.1"
speed %SFFloat; "0.1"
turbulence %SFFloat; "0"
containerField NMTOKEN "physics"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ConeEmitter (IS?, (%MetadataNodes;)? )>
<!ATTLIST ConeEmitter
angle %SFFloat; "0.785398"
direction %SFVec3f; "0 1 0"
position %SFVec3f; "0 0 0"
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ExplosionEmitter (IS?, (%MetadataNodes;)? )>
<!ATTLIST ExplosionEmitter
position %SFVec3f; "0 0 0"
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PointEmitter (IS?, (%MetadataNodes;)? )>
<!ATTLIST PointEmitter
direction %SFVec3f; "0 1 0"
position %SFVec3f; "0 0 0"
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PolylineEmitter (IS?, (%MetadataNodes;)?, (Coordinate | CoordinateDouble | %WildcardNodes;)? )>
<!ATTLIST PolylineEmitter
direction %SFVec3f; "0 1 0"
coordIndex %MFInt32; "-1"
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT SurfaceEmitter (IS?, (%MetadataNodes;)?, (%GeometryNodes; | %WildcardNodes;)? )>
<!ATTLIST SurfaceEmitter
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT VolumeEmitter (IS?, (%MetadataNodes;)?, (Coordinate | CoordinateDouble | %WildcardNodes;)? )>
<!ATTLIST VolumeEmitter
direction %SFVec3f; "0 1 0"
coordIndex %MFInt32; "-1"
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ParticleSystem
((IS?, (%MetadataNodes;)?),
(
( %AppearanceNodes;, ( %GeometryNodes; | %WildcardNodes; )? ) |
( (%GeometryNodes;), ( %AppearanceNodes; | %WildcardNodes; )? ) |
( %WildcardNodes;, ( %GeometryNodes; | %AppearanceNodes; | %WildcardNodes; )? )
)?,
(Color | ColorRGBA),
(PointEmitter | PolylineEmitter | SurfaceEmitter | VolumeEmitter)?,
( BoundedPhysicsModel | ForcePhysicsModel | WindPhysicsModel)*,
TextureCoordinate?
)
>
<!ATTLIST ParticleSystem
createParticles %SFBool; "true"
enabled %SFBool; "true"
lifetimeVariation %SFFloat; "0.25"
maxParticles %SFInt32; "200"
particleLifetime %SFFloat; "5"
particleSize %SFVec2f; "0.02 0.02"
colorKey %MFFloat; #IMPLIED
texCoordKey %MFFloat; #IMPLIED
geometryType %SFString; "QUAD"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "emitter"
class CDATA #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<!-- Finally, Web3dExtensionComponent from separate DTDs. Note that Web3dExtensionComponent
content-model extensions needed to be added at beginning, prior to node-type definitions. -->
<![%Web3dExtensionComponent;[
<!ENTITY % Web3dExtensionsPublicDTD SYSTEM "x3d-3.2-Web3dExtensionsPublic.dtd">
<!ENTITY % Web3dExtensionsPrivateDTD SYSTEM "x3d-3.2-Web3dExtensionsPrivate.dtd">
%Web3dExtensionsPublicDTD;
%Web3dExtensionsPrivateDTD;
]]>
x3d-3.2-InputOutputFields.dtd extends the X3D version 3.2 DTD by also
including fields with accessType inputOnly and outputOnly.
Although X3D scene files cannot validly set values for any of these attributes,
the DTD defines names and relationships of all fields and can be used by
DTD-aware processing tools.
<!-- # # X3D InputOutputFields DTD: # # http://www.web3d.org/specifications/x3d-3.2-InputOutputFields.dtd # # current version: 3.2.0 # # revised: 2 September 2007 # # Author: Don Brutzman # # Purpose: the primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by field definitions in x3d-3.2-InputOutputFields.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.2.dtd # http://www.web3d.org/specifications/x3d-3.2-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.2-Web3dExtensions.dtd # # Typical system location for this resource is adjacent to x3d-3.2.dtd: # file://c:/www.web3d.org/specifications/x3d-3.2-InputOutputFields.dtd # file:///www.web3d.org/specifications/x3d-3.2-InputOutputFields.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # # Note on typing: # CDATA used for %SFBool; definitions to allow #FIXED "" initialization, # since DTD rules otherwise require enumeration values to be # initialized to true|false. # --> <!ATTLIST AudioClip elapsedTime %SFTime; #FIXED "" duration_changed %SFTime; #FIXED "" isPaused CDATA #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST Background set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST BooleanFilter set_boolean CDATA #FIXED "" inputTrue CDATA #FIXED "" inputFalse CDATA #FIXED "" inputNegate CDATA #FIXED ""> <!-- value_changed is CDATA instead of %SFBool% in order to set empty value on an enumeration --> <!ATTLIST BooleanSequencer set_fraction %SFFloat; #FIXED "" value_changed CDATA #FIXED "" previous CDATA #FIXED "" next CDATA #FIXED ""> <!ATTLIST BooleanToggle set_boolean CDATA #FIXED ""> <!ATTLIST BooleanTrigger set_triggerTime %SFTime; #FIXED "" triggerTrue CDATA #FIXED ""> <!ATTLIST Collision collideTime %SFTime; #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST ColorInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFColor; #FIXED ""> <!ATTLIST CoordinateInterpolator set_fraction %SFFloat; #FIXED "" value_changed %MFVec3f; #FIXED ""> <!ATTLIST CoordinateInterpolator2D set_fraction %SFFloat; #FIXED "" value_changed %MFVec2f; #FIXED ""> <!ATTLIST CylinderSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" rotation_changed %SFRotation; #FIXED "" trackPoint_changed %SFVec3f; #FIXED ""> <!ATTLIST ElevationGrid set_height %MFFloat; #FIXED ""> <!ATTLIST Extrusion set_crossSection %MFVec2f; #FIXED "" set_orientation %MFRotation; #FIXED "" set_scale %MFVec2f; #FIXED "" set_spine %MFVec3f; #FIXED ""> <!ATTLIST Fog set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST IndexedFaceSet set_colorIndex %MFInt32; #FIXED "" set_coordIndex %MFInt32; #FIXED "" set_normalIndex %MFInt32; #FIXED "" set_texCoordIndex %MFInt32; #FIXED ""> <!ATTLIST IndexedLineSet set_colorIndex %MFInt32; #FIXED "" set_coordIndex %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleFanSet set_index %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleSet set_index %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleStripSet set_index %MFInt32; #FIXED ""> <!ATTLIST IntegerSequencer set_fraction %SFFloat; #FIXED "" value_changed %SFInt32; #FIXED "" previous CDATA #FIXED "" next CDATA #FIXED ""> <!ATTLIST IntegerTrigger set_boolean CDATA #FIXED "" triggerValue %SFInt32; #FIXED ""> <!ATTLIST KeySensor isActive CDATA #FIXED "" keyPress %SFString; #FIXED "" keyRelease %SFString; #FIXED "" actionKeyPress %SFInt32; #FIXED "" actionKeyRelease %SFInt32; #FIXED "" altKey CDATA #FIXED "" controlKey CDATA #FIXED "" shiftKey CDATA #FIXED ""> <!ATTLIST LoadSensor isActive CDATA #FIXED "" isLoaded CDATA #FIXED "" loadTime %SFTime; #FIXED "" progress %SFFloat; #FIXED ""> <!ATTLIST LOD level_changed %SFInt32; #FIXED ""> <!ATTLIST MovieTexture elapsedTime %SFTime; #FIXED "" duration_changed %SFTime; #FIXED "" isPaused CDATA #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST NavigationInfo set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" transitionComplete CDATA #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST NormalInterpolator set_fraction %SFFloat; #FIXED "" value_changed %MFVec3f; #FIXED ""> <!ATTLIST OrientationInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFRotation; #FIXED ""> <!ATTLIST PlaneSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" trackPoint_changed %SFVec3f; #FIXED "" translation_changed %SFVec3f; #FIXED ""> <!ATTLIST PositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED ""> <!ATTLIST PositionInterpolator2D set_fraction %SFFloat; #FIXED "" value_changed %SFVec2f; #FIXED ""> <!ATTLIST ProximitySensor isActive CDATA #FIXED "" position_changed %SFVec3f; #FIXED "" orientation_changed %SFRotation; #FIXED "" centerOfRotation_changed %SFVec3f; #FIXED "" enterTime %SFTime; #FIXED "" exitTime %SFTime; #FIXED ""> <!ATTLIST ScalarInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFFloat; #FIXED ""> <!ATTLIST SphereSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" rotation_changed %SFRotation; #FIXED "" trackPoint_changed %SFVec3f; #FIXED ""> <!ATTLIST StringSensor isActive CDATA #FIXED "" enteredText %SFString; #FIXED "" finalText %SFString; #FIXED ""> <!ATTLIST Text lineBounds %MFVec2f; #FIXED "" textBounds %SFVec2f; #FIXED ""> <!ATTLIST TextureBackground set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST TimeSensor elapsedTime %SFTime; #FIXED "" cycleTime %SFTime; #FIXED "" fraction_changed %SFFloat; #FIXED "" isActive CDATA #FIXED "" isPaused CDATA #FIXED "" time %SFTime; #FIXED ""> <!ATTLIST TimeTrigger set_boolean CDATA #FIXED "" triggerTime %SFTime; #FIXED ""> <!ATTLIST TouchSensor hitNormal_changed %SFVec3f; #FIXED "" hitPoint_changed %SFVec3f; #FIXED "" hitTexCoord_changed %SFVec2f; #FIXED "" isActive CDATA #FIXED "" isOver CDATA #FIXED "" touchTime %SFTime; #FIXED ""> <!ATTLIST Viewpoint set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST VisibilitySensor enterTime %SFTime; #FIXED "" exitTime %SFTime; #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST EspduTransform isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" set_articulationParameterValue0 %SFFloat; #FIXED "" set_articulationParameterValue1 %SFFloat; #FIXED "" set_articulationParameterValue2 %SFFloat; #FIXED "" set_articulationParameterValue3 %SFFloat; #FIXED "" set_articulationParameterValue4 %SFFloat; #FIXED "" set_articulationParameterValue5 %SFFloat; #FIXED "" set_articulationParameterValue6 %SFFloat; #FIXED "" set_articulationParameterValue7 %SFFloat; #FIXED "" articulationParameterValue0_changed %SFFloat; #FIXED "" articulationParameterValue1_changed %SFFloat; #FIXED "" articulationParameterValue2_changed %SFFloat; #FIXED "" articulationParameterValue3_changed %SFFloat; #FIXED "" articulationParameterValue4_changed %SFFloat; #FIXED "" articulationParameterValue5_changed %SFFloat; #FIXED "" articulationParameterValue6_changed %SFFloat; #FIXED "" articulationParameterValue7_changed %SFFloat; #FIXED "" isCollided CDATA #FIXED "" collideTime %SFTime; #FIXED "" isDetonated CDATA #FIXED "" detonateTime %SFTime; #FIXED "" firedTime %SFTime; #FIXED "" > <!ATTLIST ReceiverPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST SignalPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST TransmitterPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST GeoElevationGrid set_height %MFDouble; #FIXED ""> <!ATTLIST GeoPositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED "" geovalue_changed %SFVec3d; #FIXED ""> <!ATTLIST GeoTouchSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" touchTime %SFTime; #FIXED "" hitGeoCoord_changed %SFVec3d; #FIXED "" hitNormal_changed %SFVec3f; #FIXED "" hitPoint_changed %SFVec3f; #FIXED "" hitTexCoord_changed %SFVec2f; #FIXED ""> <!ATTLIST GeoViewpoint set_bind CDATA #FIXED "" set_orientation %SFRotation; #FIXED "" set_position %SFVec3d; #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST NurbsOrientationInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFRotation; #FIXED ""> <!ATTLIST NurbsPositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED ""> <!ATTLIST NurbsSurfaceInterpolator set_fraction %SFVec2f; #FIXED "" normal_changed %SFVec3f; #FIXED "" position_changed %SFVec3f; #FIXED ""> <!ATTLIST IndexedQuadSet set_index %MFInt32; #FIXED ""> <!ATTLIST ComposedShader isSelected CDATA #FIXED "" isValid CDATA #FIXED "" activate CDATA #FIXED ""> <!ATTLIST PackagedShader isSelected CDATA #FIXED "" isValid CDATA #FIXED "" activate CDATA #FIXED ""> <!ATTLIST ProgramShader isSelected CDATA #FIXED "" isValid CDATA #FIXED "" activate CDATA #FIXED "">
The public X3D DTD extension will be used to contain approved extensions that have not yet been included in Part 1 of ISO/IEC 19775. The form of the public X3D DTD extension is depicted below:
<!-- # # X3D Web3D Extensions Public DTD: # # http://www.web3d.org/specifications/x3d-3.2-Web3dExtensionsPublic.dtd # # current version: 3.2.0 # # created: 30 April 2005 # revised: 2 September 2007 # # Maintainer: Don Brutzman # # Purpose: support Web3D Consortium extensions to the X3D tagset. # The primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by node definitions in x3d-3.2-Web3dExtensionsPublic.dtd # and x3d-3.2-Web3dExtensionsPrivate.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.2.dtd # http://www.web3d.org/specifications/x3d-3.2-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.2-Web3dExtensionsPublic.dtd # http://www.web3d.org/specifications/x3d-3.2-Web3dExtensionsPrivate.dtd # # Web3D extensions update URL: # http://www.web3d.org/x3d/content/x3d-3.2-Web3dExtensionsPublic.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # --> <!-- ================================================================= --> <!ENTITY % LatticeXvlComponent "INCLUDE"> <!-- LatticeXVL 1.0 Document Type Definition (DTD) Description: Define the XVL tag and attribute profile for X3D. This X3D native node corresponds to a VRML ExternProto declaration. Elements in this tagset are enabled by setting the XvlProfile entity to "INCLUDE" at the top of an X3D scene file, as shown in several examples such as examples/LatticeXvl/XvlShellAll.x3d. This flag then triggers inclusion of the XVL tags in the x3d-3.2.dtd tagset. Status: Complete Authors: Lattice Technology, Inc. proposed the Xvl extensions, Makito Seki produced XML encoding of XVL nodes for X3D with additional work by Marc Jablonski and Don Brutzman Reference: LatticeXvl extension for X3D http://www.web3d.org/x3d/content/examples/LatticeXvl/doc/proposal/LatticeProposal.html http://www.Xvl3D.com Issues: Mark Jablonski maintains the list. Created: 10 May 2001 --> <![%LatticeXvlComponent;[ <!-- for future: G1T1 level --> <!ENTITY % XvlG1T1ShellTypes "" > <!-- Types of XVL Shells --> <!ENTITY % XvlShell.shellTypes " %XvlG1T1ShellTypes; POLYGON_MESH | LATTICE_MESH " > <!ELEMENT XvlShell (IS?, (%MetadataNodes;)?, ( ( (%TextureCoordinateNodes;), ((%CoordinateNodes;) | %WildcardNodes;) ) | ( (%CoordinateNodes;), ((%TextureCoordinateNodes;) | %WildcardNodes;)? ) | ( %WildcardNodes;, ((%TextureCoordinateNodes;) | (%CoordinateNodes;) | %WildcardNodes;)?) )? )> <!ATTLIST XvlShell shellType ( %XvlShell.shellTypes; ) #IMPLIED numberOfDivisions %SFInt32; #IMPLIED vertexRound %MFFloat; #IMPLIED edgeBeginCoordIndex %MFInt32; #IMPLIED edgeEndCoordIndex %MFInt32; #IMPLIED edgeRound %MFFloat; #IMPLIED edgeBeginVector %MFVec3f; #IMPLIED edgeEndVector %MFVec3f; #IMPLIED faceCoordIndex %MFInt32; #IMPLIED faceTexCoordIndex %MFInt32; #IMPLIED faceEmpty %MFBool; #IMPLIED faceHidden %MFBool; #IMPLIED containerField NMTOKEN "geometry" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!-- ================================================================= -->
The private X3D DTD extension will be used to contain X3D extensions that have not been approved but may exist for testing future development. The form of the private X3D DTD extension is depicted below:
<!-- # # X3D Web3D Extensions Private DTD: # # http://www.web3d.org/specifications/x3d-3.2-Web3dExtensionsPrivate.dtd # # current version: 3.2.0 # # created: 30 April 2005 # revised: 2 September 2007 # # Maintainer: Don Brutzman # # Purpose: support Web3D Consortium extensions to the X3D tagset. # The primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by node definitions in x3d-3.2-Web3dExtensionsPublic.dtd # and x3d-3.2-Web3dExtensionsPrivate.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.2.dtd # http://www.web3d.org/specifications/x3d-3.2-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.2-Web3dExtensionsPublic.dtd # http://www.web3d.org/specifications/x3d-3.2-Web3dExtensionsPrivate.dtd # # Web3D extensions update URL: # http://www.web3d.org/x3d/content/x3d-3.2-Web3dExtensionsPublic.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # --> <!-- ================================================================= --> <!-- Enter ELEMENT and ATTLIST definitions here --> <!-- ================================================================= -->
x3d-3.3.dtd is the X3D DTD that validates X3D version 3.3 content:
<!--
# Extensible 3D (X3D) Specification Document Type Definition (DTD) x3d-3.3.dtd
#
# http://www.web3d.org/specifications/x3d-3.3.dtd
#
# current version: 3.3.0
#
# created: 30 April 2005
#
# Author: Don Brutzman
#
# X3D Specification DTDs:
# http://www.web3d.org/specifications/x3d-3.3.dtd
# http://www.web3d.org/specifications/x3d-3.3-Web3dExtensionsPublic.dtd
# http://www.web3d.org/specifications/x3d-3.3-Web3dExtensionsPrivate.dtd
#
# X3D Revision DTDs:
# http://www.web3d.org/x3d/content/x3d-3.3.dtd
# http://www.web3d.org/x3d/content/x3d-3.3-Web3dExtensionsPublic.dtd
# http://www.web3d.org/x3d/content/x3d-3.3-Web3dExtensionsPrivate.dtd
#
# Final doctype:
# <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "http://www.web3d.org/specifications/x3d-3.3.dtd">
#
# Transitional doctype:
# <!DOCTYPE X3D PUBLIC "http://www.web3d.org/specifications/x3d-3.3.dtd" "file:///www.web3d.org/specifications/x3d-3.3.dtd">
#
# Typical system location for this resource:
# file://c:/www.web3d.org/specifications/x3d-3.3.dtd
# file:///www.web3d.org/specifications/x3d-3.3.dtd
#
# Change log:
# http://www.web3d.org/specifications/x3d-dtd-changelog.txt
#
# Further information on the Extensible 3D (X3D) specification is available at
# http://www.web3D.org/x3d.html
-->
<!-- Profile: default is Full profile and all components.
Authors can override these default IGNORE/INCLUDE values.
If InterchangeProfile or InteractiveProfile is INCLUDEd, then IGNORE all others.
-->
<!ENTITY % FullProfile "INCLUDE">
<!ENTITY % ImmersiveProfile "INCLUDE">
<!ENTITY % InterchangeProfile "IGNORE">
<!ENTITY % InteractiveProfile "IGNORE">
<!ENTITY % CadComponent "INCLUDE">
<!ENTITY % CubeMapTexturingComponent "INCLUDE">
<!ENTITY % DISComponent "INCLUDE">
<!ENTITY % GeoSpatialComponent "INCLUDE">
<!ENTITY % HAnimComponent "INCLUDE">
<!ENTITY % NurbsComponent "INCLUDE">
<!ENTITY % ShadersComponent "INCLUDE">
<!ENTITY % Texture3DComponent "INCLUDE">
<!ENTITY % LayeringComponent "INCLUDE">
<!ENTITY % LayoutComponent "INCLUDE">
<!ENTITY % RigidBodyPhysicsComponent "INCLUDE">
<!ENTITY % PickingSensorComponent "INCLUDE">
<!ENTITY % FollowersComponent "INCLUDE">
<!ENTITY % ParticleSystemsComponent "INCLUDE">
<!ENTITY % VolumeRenderComponent "INCLUDE">
<!ENTITY % Web3dExtensionComponent "INCLUDE">
<!ENTITY % X3dInputOutputFields "INCLUDE">
<!ENTITY % X3dExtensions "IGNORE">
<!ENTITY % profileNames "(Core|Interchange|CADInterchange|Interactive|Immersive|MedicalInterchange|MPEG4Interactive|Full)">
<!ENTITY % componentNames "(Core|CADGeometry|CubeMapTexturing|DIS|EnvironmentalEffects|EnvironmentalSensor|EventUtilities|Followers|Geometry2D|Geometry3D|Geospatial|Grouping|H-Anim|Interpolation|KeyDeviceSensor|Layering|Layout|Lighting|Navigation|Networking|NURBS|ParticleSystems|Picking|PointingDeviceSensor|Rendering|RigidBodyPhysics|Scripting|Shaders|Shape|Sound|Text|Texturing|Texturing3D|Time|VolumeRendering)">
<!ENTITY % componentLevels "(1|2|3|4|5)">
<!ENTITY % X3dFieldTypes "SFBool|MFBool|SFColor|MFColor|SFColorRGBA|MFColorRGBA|SFDouble|MFDouble|SFFloat|MFFloat|SFImage|MFImage|SFInt32|MFInt32|SFNode|MFNode|SFRotation|MFRotation|SFString|MFString|SFTime|MFTime|SFVec2f|MFVec2f|SFVec2d|MFVec2d|SFVec3f|MFVec3f|SFVec3d|MFVec3d|SFMatrix3d|MFMatrix3d|SFMatrix3f|MFMatrix3f|SFMatrix4d|MFMatrix4d|SFMatrix4f|MFMatrix4f|SFVec4d|MFVec4d|SFVec4f|MFVec4f">
<!-- X3D type definitions as DTD types -->
<!ENTITY % SFBool "(true|false)">
<!ENTITY % MFBool "CDATA">
<!ENTITY % SFColor "CDATA">
<!ENTITY % MFColor "CDATA">
<!ENTITY % SFColorRGBA "CDATA">
<!ENTITY % MFColorRGBA "CDATA">
<!ENTITY % SFFloat "CDATA">
<!ENTITY % MFFloat "CDATA">
<!ENTITY % SFDouble "CDATA">
<!ENTITY % MFDouble "CDATA">
<!ENTITY % SFImage "CDATA">
<!ENTITY % MFImage "CDATA">
<!ENTITY % SFInt32 "CDATA">
<!ENTITY % MFInt32 "CDATA">
<!ENTITY % SFRotation "CDATA">
<!ENTITY % MFRotation "CDATA">
<!ENTITY % SFString "CDATA">
<!ENTITY % MFString "CDATA">
<!ENTITY % SFTime "CDATA">
<!ENTITY % MFTime "CDATA">
<!ENTITY % SFVec2f "CDATA">
<!ENTITY % MFVec2f "CDATA">
<!ENTITY % SFVec2d "CDATA">
<!ENTITY % MFVec2d "CDATA">
<!ENTITY % SFVec3f "CDATA">
<!ENTITY % MFVec3f "CDATA">
<!ENTITY % SFVec3d "CDATA">
<!ENTITY % MFVec3d "CDATA">
<!ENTITY % SFVec4f "CDATA">
<!ENTITY % MFVec4f "CDATA">
<!ENTITY % SFVec4d "CDATA">
<!ENTITY % MFVec4d "CDATA">
<!ENTITY % SFMatrix3f "CDATA">
<!ENTITY % MFMatrix3f "CDATA">
<!ENTITY % SFMatrix3d "CDATA">
<!ENTITY % MFMatrix3d "CDATA">
<!ENTITY % SFMatrix4f "CDATA">
<!ENTITY % MFMatrix4f "CDATA">
<!ENTITY % SFMatrix4d "CDATA">
<!ENTITY % MFMatrix4d "CDATA">
<!ENTITY % DisNetworkModeValues "(standAlone|networkReader|networkWriter)" >
<!ENTITY % MetadataContainerFieldValues "(metadata|value)" >
<!ENTITY % TextureBoundaryModeValues "(CLAMP|CLAMP_TO_EDGE|CLAMP_TO_BOUNDARY|MIRRORED_REPEAT|REPEAT)">
<!ENTITY % TextureMagnificationModeValues "(AVG_PIXEL|DEFAULT|FASTEST|NEAREST_PIXEL|NICEST)">
<!ENTITY % TextureMinificationModeValues "(AVG_PIXEL|AVG_PIXEL_AVG_MIPMAP|AVG_PIXEL_NEAREST_MIPMAP|DEFAULT|FASTEST|NEAREST_PIXEL|NEAREST_PIXEL_AVG_MIPMAP|NEAREST_PIXEL_NEAREST_MIPMAP|NICEST)">
<!ENTITY % TextureCompressionModeValues "(DEFAULT|FASTEST|HIGH|LOW|MEDIUM|NICEST)">
<!ENTITY % TextureCoordinateGeneratorModes "(SPHERE|CAMERASPACENORMAL|CAMERASPACEPOSITION|CAMERASPACEREFLECTIONVECTOR|SPHERE-LOCAL|COORD|COORD-EYE|NOISE|NOISE-EYE|SPHERE-REFLECT|SPHERE-REFLECT-LOCAL)">
<!-- DTD authors making modifications need to append | after listing each new node in any of these extensions.
For an example, see examples/development/ProtoTagDtdDeclarationExamples.x3d -->
<!ENTITY % AppearanceNodeExtensions "">
<!ENTITY % AudioClipNodeExtensions "">
<!ENTITY % BindableNodeExtensions "">
<!ENTITY % ColorNodeExtensions "">
<!ENTITY % CoordinateNodeExtensions "">
<!ENTITY % FontStyleNodeExtensions "">
<!ENTITY % EventUtilityNodeExtensions "">
<!ENTITY % GeometryNodeExtensions "">
<!ENTITY % GroupingNodeExtensions "">
<!ENTITY % InterpolatorNodeExtensions "">
<!ENTITY % LightNodeExtensions "">
<!ENTITY % MaterialNodeExtensions "">
<!ENTITY % MetadataNodeExtensions "">
<!ENTITY % NormalNodeExtensions "">
<!ENTITY % ScriptNodeExtensions "">
<!ENTITY % SensorNodeExtensions "">
<!ENTITY % ShapeNodeExtensions "">
<!ENTITY % SoundNodeExtensions "">
<!-- MovieTexture must be able to appear twice: -->
<!ENTITY % MovieTextureNodeExtensions "">
<!ENTITY % TextureNodeExtensions "">
<!ENTITY % TextureCoordinateNodeExtensions "">
<!ENTITY % TextureTransformNodeExtensions "">
<!ENTITY % NetworkSensorNodeExtensions "">
<!ENTITY % WorldInfoNodeExtensions "">
<!-- Users defining PROTOs do not override any of the following parameter entity declarations. -->
<![%ImmersiveProfile;[
<!ENTITY % WildcardNodes " (ProtoInstance) " >
]]>
<![%InterchangeProfile;[
<!ENTITY % WildcardNodes " " >
]]>
<![%DISComponent;[
<!ENTITY % DISGroupingNodes " EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|" >
]]>
<![%GeoSpatialComponent;[
<!ENTITY % GeoCoordinateNode " GeoCoordinate|" >
<!ENTITY % GeoElevationGridNode " GeoElevationGrid|" >
<!ENTITY % GeoGroupingNodes " GeoLocation|GeoLOD|GeoTransform|" >
<!ENTITY % GeoMetadataNode " GeoMetadata|" >
<!ENTITY % GeoOriginNode " GeoOrigin|" >
<!ENTITY % GeoBehaviorNodes " GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|" >
<!ENTITY % GeoViewpointNode " GeoViewpoint|" >
]]>
<![%HAnimComponent;[
<!ENTITY % HAnimGroupingNodes " HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|" >
<!ENTITY % DisplacerNode " HAnimDisplacer|" >
]]>
<![%NurbsComponent;[
<!ENTITY % NurbsGeometryNodes " NurbsCurve|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|" >
<!ENTITY % NurbsInterpolators " NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|" >
<!ENTITY % NurbsControlCurveNodes " NurbsCurve2D|Contour2D|ContourPolyline2D " >
]]>
<![%CadComponent;[
<!ENTITY % CadGeometryNodes " QuadSet|IndexedQuadSet|" >
<!ENTITY % CadGroupingNodes " CADAssembly|CADLayer|CADPart|" >
]]>
<![%RigidBodyPhysicsComponent;[
<!ENTITY % RigidBodyPhysicsGroupingNodes " CollidableShape|CollisionSensor|RigidBodyCollection| " >
]]>
<![%CubeMapTexturingComponent;[
<!ENTITY % CubeMapTextureNodes " ComposedCubeMapTexture|GeneratedCubeMapTexture|ImageCubeMapTexture " >
]]>
<![%ShadersComponent;[
<!ENTITY % ShaderNodes " ComposedShader|PackagedShader|ProgramShader " >
<!ENTITY % ShaderAttributeNodes " FloatVertexAttribute|Matrix3VertexAttribute|Matrix4VertexAttribute" >
]]>
<![%Texture3DComponent;[
<!ENTITY % Texture3DTextureNodes " ComposedTexture3D|ImageTexture3D|PixelTexture3D " >
<!ENTITY % Texture3DTextureCoordinateNodes " TextureCoordinate3D|TextureCoordinate4D| " >
<!ENTITY % Texture3DTextureTransformNodes " TextureTransformMatrix3D|TextureTransform3D " >
]]>
<![%FollowersComponent;[
<!ENTITY % FollowerNodes "ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D" >
]]>
<![%VolumeRenderComponent;[
<!ENTITY % X3DComposableVolumeRenderStyleNodeExtensions "" >
<!ENTITY % X3DComposableVolumeRenderStyleNode " %X3DComposableVolumeRenderStyleNodeExtensions; BlendedVolumeStyle|BoundaryEnhancementVolumeStyle|CartoonVolumeStyle|ComposedVolumeStyle|EdgeEnhancementVolumeStyle|OpacityMapVolumeStyle|ProjectionVolumeStyle|ShadedVolumeStyle|SilhouetteEnhancementVolumeStyle|ToneMappedVolumeStyle " >
<!ENTITY % X3DVolumeDataNodeExtensions "" >
<!ENTITY % X3DVolumeDataNodes " %X3DVolumeDataNodeExtensions; IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData| " >
]]>
<![%Web3dExtensionComponent;[
<!--
<!ENTITY % Web3dExtensionGeometryNodes " XvlShell|" >
-->
]]>
<!-- otherwise set tag lists to null strings if not previously defined -->
<!ENTITY % DISGroupingNodes "">
<!ENTITY % GeoCoordinateNode "">
<!ENTITY % GeoElevationGridNode "">
<!ENTITY % GeoGroupingNodes "">
<!ENTITY % GeoMetadataNode "">
<!ENTITY % GeoOriginNode "">
<!ENTITY % GeoBehaviorNodes "">
<!ENTITY % GeoViewpointNode "">
<!ENTITY % HAnimGroupingNodes "">
<!ENTITY % DisplacerNode "">
<!ENTITY % NurbsGeometryNodes "">
<!ENTITY % NurbsInterpolators "">
<!ENTITY % CadGroupingNodes "">
<!ENTITY % RigidBodyPhysicsGroupingNodes "">
<!ENTITY % CadGeometryNodes "">
<!ENTITY % CubeMapTextureNodes "">
<!ENTITY % ShaderNodes "">
<!ENTITY % ShaderAttributeNodes "">
<!ENTITY % Texture3DTextureNodes "">
<!ENTITY % Texture3DTextureCoordinateNodes "">
<!ENTITY % Texture3DTextureTransformNodes "">
<!ENTITY % FollowerNodes "">
<!ENTITY % Web3dExtensionGroupingNodes "">
<!ENTITY % Web3dExtensionGeometryNodes "">
<!-- no further content-model extensions needed -->
<![%InterchangeProfile;[
<!ENTITY % AudioClipNodes "" >
<!ENTITY % FontStyleNodes "" >
<!ENTITY % EventUtilityNodes "" >
<!ENTITY % MovieTextureNodes "" >
<!ENTITY % NormalNodes "" >
<!ENTITY % ScriptNodes "" >
<!ENTITY % SoundNodes "" >
<!ENTITY % TextureCoordinateNodes "" >
<!ENTITY % TextureTransformNodes "" >
]]>
<!-- NetworkSensorNodes used by LoadSensor -->
<!ENTITY % NetworkSensorNodes " %NetworkSensorNodeExtensions; AudioClip|ImageCubeMapTexture|ImageTexture|ImageTexture3D|Inline|MovieTexture|PackagedShader|ShaderPart|ShaderProgram ">
<![%ImmersiveProfile;[
<!ENTITY % AudioClipNodes " %AudioClipNodeExtensions; AudioClip " >
<!ENTITY % FontStyleNodes " %FontStyleNodeExtensions; FontStyle|ScreenFontStyle " >
<!ENTITY % EventUtilityNodes " %EventUtilityNodeExtensions; BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger " >
<!ENTITY % MovieTextureNodes " %MovieTextureNodeExtensions; MovieTexture " >
<!ENTITY % NormalNodes " %NormalNodeExtensions; Normal " >
<!ENTITY % ScriptNodes " %ScriptNodeExtensions; Script " >
<!ENTITY % SoundNodes " %SoundNodeExtensions; Sound " >
<!ENTITY % TextureCoordinateNodes " %TextureCoordinateNodeExtensions; %Texture3DTextureCoordinateNodes; TextureCoordinate|TextureCoordinateGenerator|MultiTextureCoordinate|NurbsTextureCoordinate " >
<!ENTITY % TextureTransformNodes " %TextureTransformNodeExtensions; TextureTransform|MultiTextureTransform " >
]]>
<![%InterchangeProfile;[
<!ENTITY % AppearanceNodes " Appearance " >
<!ENTITY % BehaviorLeafNodes " CoordinateInterpolator|KeySensor|OrientationInterpolator|PositionInterpolator|ScalarInterpolator|TimeSensor|TouchSensor " >
<!ENTITY % BindableNodes " Background|NavigationInfo|Viewpoint " >
<!ENTITY % ColorNodes " Color|ColorRGBA " >
<!ENTITY % CoordinateNodes " Coordinate|CoordinateDouble|FogCoordinate " >
<!ENTITY % GeometryNodes " IndexedFaceSet|IndexedLineSet|LineSet|PointSet " >
<!ENTITY % GroupingNodes " Anchor|Group|Inline|Transform " >
<!ENTITY % LightNodes " DirectionalLight " >
<!ENTITY % MaterialNodes " Material|TwoSidedMaterial " >
<!ENTITY % ShapeNodes " Shape " >
<!ENTITY % Texture2DNodes " ImageTexture " >
<!ENTITY % WorldInfoNodes " WorldInfo " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % AppearanceNodes " %AppearanceNodeExtensions; Appearance " >
<!ENTITY % BehaviorLeafNodes " %InterpolatorNodeExtensions; %SensorNodeExtensions; %ScriptNodeExtensions; %GeoBehaviorNodes; %DisplacerNode; %NurbsInterpolators; %EventUtilityNodes;|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % BindableNodes " %BindableNodeExtensions; %GeoViewpointNode; Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint " >
<!ENTITY % ColorNodes " %ColorNodeExtensions; Color|ColorRGBA " >
<!ENTITY % CoordinateNodes " %CoordinateNodeExtensions; %GeoCoordinateNode; Coordinate|CoordinateDouble " >
<!ENTITY % Geometry2DNodes " Arc2D|ArcClose2D|Circle2D|Disk2D|Polyline2D|Polypoint2D|Rectangle2D|TriangleSet2D| " >
<!ENTITY % GeometryNodes " %GeometryNodeExtensions; %GeoElevationGridNode; %NurbsGeometryNodes; %CadGeometryNodes; %Web3dExtensionGeometryNodes; %Geometry2DNodes; Box|Cone|Cylinder|ElevationGrid|Extrusion|IndexedFaceSet|IndexedLineSet|LineSet|PointSet|Sphere|Text|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|TriangleFanSet|TriangleSet|TriangleStripSet " >
<!ENTITY % GroupingNodes " %GroupingNodeExtensions; %DISGroupingNodes; %GeoGroupingNodes; %HAnimGroupingNodes; %CadGroupingNodes; %RigidBodyPhysicsGroupingNodes; %Web3dExtensionGroupingNodes; Anchor|Billboard|Collision|Group|Inline|LOD|StaticGroup|Switch|Transform " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % LightNodes " %LightNodeExtensions; DirectionalLight|SpotLight|PointLight " >
<!ENTITY % MaterialNodes " %MaterialNodeExtensions; Material|TwoSidedMaterial " >
<!ENTITY % ShapeNodes " %ShapeNodeExtensions; %X3DVolumeDataNodes; Shape " >
<!ENTITY % Texture2DNodes " %TextureNodeExtensions; ImageTexture|MovieTexture|PixelTexture " >
<!ENTITY % MultiTextureChildTextures " %TextureNodeExtensions; ImageTexture|MovieTexture|PixelTexture " >
<!ENTITY % WorldInfoNodes " %WorldInfoNodeExtensions; %GeoMetadataNode; WorldInfo " >
]]>
<![%InterchangeProfile;[
<!ENTITY % ComposedGeometryNodes " %ColorNodes; " >
<!ENTITY % AppearanceChildNodes " %MaterialNodes; " >
<!ENTITY % SceneLeafNodes " %LightNodes;|%ShapeNodes;|%WorldInfoNodes; " >
<!ENTITY % MetadataNodes " %MetadataNodeExtensions; MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString ">
<!ENTITY % ProtoNodes "" >
]]>
<![%ImmersiveProfile;[
<!ENTITY % ComposedGeometryNodes " %ShaderAttributeNodes;|%CoordinateNodes;|%ColorNodes;|%NormalNodes;|%TextureCoordinateNodes;|FogCoordinate " >
<!-- weak validation: allows multiple copies of any given node -->
<!ENTITY % AppearanceChildNodes " LineProperties|FillProperties|%MaterialNodes;|%Texture2DNodes;|MultiTexture|%CubeMapTextureNodes;|%ShaderNodes;|%Texture3DTextureNodes;|%TextureTransformNodes;|%Texture3DTextureTransformNodes; " >
<!ENTITY % SceneLeafNodes " %LightNodes;|%ShapeNodes;|%SoundNodes;|%WorldInfoNodes; " >
<!ENTITY % OtherLeafNodes " AudioClip|LineProperties|FillProperties " >
<!ENTITY % MetadataNodes " %MetadataNodeExtensions; MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString ">
]]>
<![%FullProfile;[
<!ENTITY % PickingNodes " LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor| ">
<!ENTITY % AdvancedInterpolators " EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator| ">
]]>
<!ENTITY % PickingNodes " ">
<!ENTITY % AdvancedInterpolators " ">
<!-- Full Profile -->
<!ENTITY % BehaviorLeafNodes " %InterpolatorNodeExtensions; %SensorNodeExtensions; %ScriptNodeExtensions; %GeoBehaviorNodes; %DisplacerNode; %NurbsInterpolators; %EventUtilityNodes;|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor " >
<!ENTITY % ChildrenNodes " %BehaviorLeafNodes;|%BindableNodes;|%GroupingNodes;|%SceneLeafNodes;|%FollowerNodes;|ClipPlane|LayerSet|TransformSensor|ViewpointGroup|%PickingNodes; %AdvancedInterpolators; ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT ">
<!ENTITY % ProtoNodes " %OtherLeafNodes;|%AppearanceNodes;|%AppearanceChildNodes;|%BehaviorLeafNodes;|%BindableNodes;|%CubeMapTextureNodes;|%FontStyleNodes;|%ComposedGeometryNodes;|%GeometryNodes;|%GroupingNodes;|ShaderPart|ShaderProgram|%MetadataNodes;|%SceneLeafNodes;|%Texture3DTextureNodes;|%Texture3DTextureTransformNodes;|%GeoOriginNode;Contour2D|ContourPolyline2D|%FollowerNodes;|BallJoint|CollidableOffset|CollisionCollection|CollisionSpace|Contact|DoubleAxisHingeJoint|MotorJoint|RigidBody|SingleAxisHingeJoint|SliderJoint|UniversalJoint|ProtoDeclare|ExternProtoDeclare|ProtoInstance " >
<![%InterchangeProfile;[
<!ENTITY % SceneNodes " %ChildrenNodes;|%WildcardNodes; " >
]]>
<![%ImmersiveProfile;[
<!ENTITY % SceneNodes " ExternProtoDeclare|ProtoDeclare|%ChildrenNodes;|%WildcardNodes; " >
]]>
<!-- Additional SensorNode definitions not used (yet, anyway) in tagset content-model definitions. -->
<!ENTITY % SensorNodes " Anchor|Collision|CylinderSensor|KeySensor|PlaneSensor|ProximitySensor|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor ">
<!ENTITY % DragSensors " CylinderSensor|PlaneSensor|SphereSensor ">
<!ENTITY % EnvironmentalSensorNodes " Collision|ProximitySensor|TimeSensor|VisibilitySensor ">
<!ENTITY % PickSensors " LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor ">
<!ENTITY % PointingDeviceSensors " Anchor|CylinderSensor|PlaneSensor|SphereSensor|TouchSensor ">
<!ENTITY % KeyDeviceSensors " ">
<!ENTITY % InterpolatorNodes " ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|NormalInterpolator|OrientationInterpolator|PositionInterpolator|PositionInterpolator2D|ScalarInterpolator|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator">
<!ENTITY % TimeDependentNodes " AudioClip|MovieTexture|TimeSensor ">
<!-- ***** X3D DTD ***** -->
<![%ImmersiveProfile;[
<!ELEMENT Anchor (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Anchor
description %SFString; #IMPLIED
parameter %MFString; #IMPLIED
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%InterchangeProfile;[
<!ELEMENT Anchor (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* >
<!ATTLIST Anchor
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%InterchangeProfile;[
<!ELEMENT Appearance ( (%MetadataNodes;)?,
( ((%MaterialNodes;), (%Texture2DNodes; | MultiTexture)? )
| ((%Texture2DNodes; | MultiTexture), (%MaterialNodes;)? )
)? ) >
]]>
<!ELEMENT Appearance (IS?, (%MetadataNodes;)?, (%AppearanceChildNodes; | %WildcardNodes;)*)>
<!ATTLIST Appearance
containerField NMTOKEN "appearance"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT AudioClip ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST AudioClip
description %SFString; #IMPLIED
loop %SFBool; "false"
pitch %SFFloat; "1.0"
startTime %SFTime; "0"
stopTime %SFTime; "0"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
url %MFString; #IMPLIED
containerField NMTOKEN "source"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Background ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Background
groundAngle %MFFloat; #IMPLIED
groundColor %MFColor; #IMPLIED
backUrl %MFString; #IMPLIED
bottomUrl %MFString; #IMPLIED
frontUrl %MFString; #IMPLIED
leftUrl %MFString; #IMPLIED
rightUrl %MFString; #IMPLIED
topUrl %MFString; #IMPLIED
skyAngle %MFFloat; #IMPLIED
skyColor %MFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT Billboard (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Billboard
axisOfRotation %SFVec3f; "0 1 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanFilter ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanFilter
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanSequencer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanSequencer
key %MFFloat; #IMPLIED
keyValue %MFBool; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanToggle ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanToggle
toggle %SFBool; "false"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT BooleanTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST BooleanTrigger
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!-- Geometry2D nodes -->
<!ELEMENT Arc2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Arc2D
radius %SFFloat; "1"
startAngle %SFFloat; "0"
endAngle %SFFloat; "1.570796"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ArcClose2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ArcClose2D
radius %SFFloat; "1"
startAngle %SFFloat; "0"
endAngle %SFFloat; "1.570796"
closureType (PIE|CHORD) "PIE"
solid %SFBool; "false"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Circle2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Circle2D
radius %SFFloat; "1"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Disk2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Disk2D
innerRadius %SFFloat; "0"
outerRadius %SFFloat; "1"
solid %SFBool; "false"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Polyline2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Polyline2D
lineSegments %MFVec2f; #IMPLIED
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Polypoint2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Polypoint2D
point %MFVec2f; #IMPLIED
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Rectangle2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Rectangle2D
size %SFVec2f; "2 2"
solid %SFBool; "false"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TriangleSet2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TriangleSet2D
vertices %MFVec2f; #IMPLIED
solid %SFBool; "false"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT Box ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Box
size %SFVec3f; "2 2 2"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Collision ( (IS?), (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST Collision
enabled %SFBool; "true"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<!ELEMENT Color ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Color
color %MFColor; #IMPLIED
class NMTOKENS #IMPLIED
containerField NMTOKEN "color"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ColorRGBA ((IS?), (%MetadataNodes;)?)>
<!ATTLIST ColorRGBA
color %MFColorRGBA; #IMPLIED
containerField NMTOKEN "color"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT component EMPTY>
<!ATTLIST component
name %componentNames; #REQUIRED
level %componentLevels; #REQUIRED
>
<![%ImmersiveProfile;[
<!ELEMENT ColorInterpolator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ColorInterpolator
key %MFFloat; #IMPLIED
keyValue %MFColor; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Cone ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Cone
bottomRadius %SFFloat; "1"
height %SFFloat; "2"
side %SFBool; "true"
bottom %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Coordinate ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Coordinate
point %MFVec3f; #IMPLIED
containerField NMTOKEN "coord"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CoordinateDouble ((IS?), (%MetadataNodes;)?)>
<!ATTLIST CoordinateDouble
point %MFVec3d; #IMPLIED
containerField NMTOKEN "coord"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CoordinateInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST CoordinateInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT CoordinateInterpolator2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST CoordinateInterpolator2D
key %MFFloat; #IMPLIED
keyValue %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Cylinder ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Cylinder
bottom %SFBool; "true"
height %SFFloat; "2"
radius %SFFloat; "1"
side %SFBool; "true"
top %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CylinderSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST CylinderSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
axisRotation %SFRotation; "0 1 0 0"
diskAngle %SFFloat; "0.26179167"
maxAngle %SFFloat; "-1"
minAngle %SFFloat; "0"
offset %SFFloat; "0"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT DirectionalLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST DirectionalLight
ambientIntensity %SFFloat; "0"
color %SFColor; "1 1 1"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
on %SFBool; "true"
global %SFBool; "false"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%InterchangeProfile;[
<!ELEMENT DirectionalLight (%MetadataNodes;)? >
<!ATTLIST DirectionalLight
color %SFColor; "1 1 1"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
on %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!-- Complete, concisely enumerated unordered version of ElevationGrid by Heiko Grussbach -->
<!ELEMENT ElevationGrid (IS?, (%MetadataNodes;)?, (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
|((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
|((%TextureCoordinateNodes;), (((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
|(%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
)?, (FogCoordinate)? ) >
<!ATTLIST ElevationGrid
height %MFFloat; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
creaseAngle %SFFloat; "0"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
xDimension %SFInt32; "0"
xSpacing %SFFloat; "1.0"
zDimension %SFInt32; "0"
zSpacing %SFFloat; "1.0"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ExternProtoDeclare ( field* ) >
<!ATTLIST ExternProtoDeclare
name NMTOKEN #REQUIRED
url %MFString; #REQUIRED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!ELEMENT Extrusion ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Extrusion
beginCap %SFBool; "true"
ccw %SFBool; "true"
convex %SFBool; "true"
creaseAngle %SFFloat; "0.0"
crossSection %MFVec2f; "1 1 1 -1 -1 -1 -1 1 1 1"
endCap %SFBool; "true"
orientation %MFRotation; "0 0 1 0"
scale %MFVec2f; "1 1"
solid %SFBool; "true"
spine %MFVec3f; "0 0 0 0 1 0"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- field is only used in a Script, ProtoDeclare or ExternProtoDeclare.
Initialization values for simple types go in the value attribute.
Contained content tags are only for initialization of SFNode or MFNode values. -->
<!ELEMENT field ( %ProtoNodes; )* >
<!ATTLIST field
name NMTOKEN #REQUIRED
accessType (inputOnly|outputOnly|initializeOnly|inputOutput) #REQUIRED
type ( %X3dFieldTypes; ) #REQUIRED
value CDATA #IMPLIED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!-- fieldValue resets default field values inside a ProtoInstance.
Initialization values for simple types go in the value attribute. Otherwise
contained-content tags are used for initialization of SFNode or MFNode values. -->
<!ELEMENT fieldValue ( %ProtoNodes; )* >
<!ATTLIST fieldValue
name NMTOKEN #REQUIRED
value CDATA #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT FillProperties ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST FillProperties
filled %SFBool; "true"
hatched %SFBool; "true"
hatchStyle %SFInt32; "1"
hatchColor %SFColor; "1 1 1"
containerField NMTOKEN "fillProperties"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Fog ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Fog
color %SFColor; "1 1 1"
fogType (LINEAR|EXPONENTIAL) "LINEAR"
visibilityRange %SFFloat; "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT FontStyle ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST FontStyle
family %MFString; '"SERIF"'
horizontal %SFBool; "true"
justify %MFString; '"BEGIN"'
language %SFString; #IMPLIED
leftToRight %SFBool; "true"
size %SFFloat; "1.0"
spacing %SFFloat; "1.0"
style (PLAIN|BOLD|ITALIC|BOLDITALIC) "PLAIN"
topToBottom %SFBool; "true"
containerField NMTOKEN "fontStyle"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Minimum supported values:
family ' "SERIF" "SANS" "TYPEWRITER" '
justify ' "FIRST" "BEGIN" "MIDDLE" "END" ' -->
]]>
<!ELEMENT Group (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST Group
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ImageTexture ((IS?), (%MetadataNodes;)?, (TextureProperties | %WildcardNodes;)?)>
<!ATTLIST ImageTexture
url %MFString; #IMPLIED
repeatS %SFBool; "true"
repeatT %SFBool; "true"
containerField NMTOKEN "texture"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- Complete, unordered, concisely enumerated version of IndexedFaceSet content model by Heiko Grussbach -->
<!ENTITY % ColorCoordinateNormalTextureCoordinateContentModel "(IS?, (%MetadataNodes;)?, (
((%ColorNodes;), (
((%CoordinateNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%CoordinateNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%CoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%CoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%CoordinateNodes;), (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%NormalNodes;), (
((%ColorNodes;), ( ((%CoordinateNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%TextureCoordinateNodes;), (
((%ColorNodes;), ( ((%CoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%CoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? ) )? )
|(%WildcardNodes;, (
((%ColorNodes;), ( ((%CoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%CoordinateNodes;),(((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%CoordinateNodes;)|(%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%CoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%CoordinateNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%CoordinateNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
)?, (FogCoordinate)? )">
<![%ImmersiveProfile;[
<!ELEMENT IndexedFaceSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*) >
<!ELEMENT IndexedLineSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
<!ELEMENT LineSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
]]>
<![%InterchangeProfile;[
<!ELEMENT IndexedFaceSet ( (%MetadataNodes;)?, ((%ColorNodes;), Coordinate?)|(Coordinate, (%ColorNodes;)?) )? >
<!ELEMENT IndexedLineSet ( (%MetadataNodes;)?, ( Color, Coordinate? )|( Coordinate, Color?) )? >
<!ELEMENT LineSet ( (%MetadataNodes;)?, ( Color, Coordinate? )|( Coordinate, Color?) )? >
]]>
<!ATTLIST IndexedFaceSet
ccw %SFBool; "true"
colorIndex %MFInt32; #IMPLIED
colorPerVertex %SFBool; "true"
convex %SFBool; "true"
coordIndex %MFInt32; #IMPLIED
creaseAngle %SFFloat; "0"
normalIndex %MFInt32; #IMPLIED
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
texCoordIndex %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ATTLIST IndexedLineSet
colorIndex %MFInt32; #IMPLIED
colorPerVertex %SFBool; "true"
coordIndex %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ATTLIST LineSet
vertexCount %MFInt32; #IMPLIED
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT Inline ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Inline
load %SFBool; "true"
url %MFString; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT EXPORT EMPTY>
<!ATTLIST EXPORT
localDEF IDREF #REQUIRED
AS NMTOKEN #IMPLIED
>
<!ELEMENT IMPORT EMPTY>
<!ATTLIST IMPORT
inlineDEF IDREF #REQUIRED
importedDEF NMTOKEN #REQUIRED
AS ID #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT IntegerSequencer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST IntegerSequencer
key %MFFloat; #IMPLIED
keyValue %MFInt32; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IntegerTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST IntegerTrigger
integerKey %SFInt32; "-1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IS (connect)+ >
<!ELEMENT connect EMPTY >
<!ATTLIST connect
nodeField NMTOKEN #REQUIRED
protoField NMTOKEN #REQUIRED>
]]>
<!ELEMENT KeySensor ((IS?), (%MetadataNodes;)?)>
<!ATTLIST KeySensor
enabled %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT LineProperties ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST LineProperties
applied %SFBool; "true"
linetype %SFInt32; "1"
linewidthScaleFactor %SFFloat; "0"
containerField NMTOKEN "lineProperties"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT LoadSensor (IS?, (%MetadataNodes;)?, (%NetworkSensorNodes; | %WildcardNodes;)*)>
<!ATTLIST LoadSensor
enabled %SFBool; "true"
timeOut %SFTime; "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT LOD (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST LOD
forceTransitions %SFBool; "false"
center %SFVec3f; "0 0 0"
range %MFFloat; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Material ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Material
ambientIntensity %SFFloat; "0.2"
diffuseColor %SFColor; "0.8 0.8 0.8"
emissiveColor %SFColor; "0 0 0"
shininess %SFFloat; "0.2"
specularColor %SFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "material"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%InterchangeProfile;[
<!ELEMENT Material ( (%MetadataNodes;)? ) >
<!ATTLIST Material
diffuseColor %SFColor; "0.8 0.8 0.8"
emissiveColor %SFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "material"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- *** XHTML exerpts to define meta tag *** -->
<!-- i18n, language, meta tag definitions from XHTML 1.0
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd -->
<!ENTITY % LanguageCode "NMTOKEN">
<!-- a language code, as per [IETF RFC3066/BCP47] http://www.rfc-editor.org/bcp/bcp47.txt -->
<!-- internationalization attributes
lang language code (backwards compatible)
xml:lang language code (as per XML 1.0 spec)
dir direction for weak/neutral text
-->
<!ENTITY % i18n "lang %LanguageCode; #IMPLIED
xml:lang %LanguageCode; #IMPLIED
dir (ltr|rtl) #IMPLIED">
<!ELEMENT head (component*, unit*, meta*)>
<!-- generic metadata information, matches HTML usage, made attribute 'name' required -->
<!ELEMENT meta EMPTY>
<!ATTLIST meta
http-equiv CDATA #IMPLIED
name CDATA #IMPLIED
content CDATA #REQUIRED
scheme CDATA #IMPLIED
%i18n;
>
<!-- formal X3D Metadata nodes -->
<!-- cannot require @name field or else USE nodes fail to validate -->
<!ELEMENT MetadataDouble (IS?, (%MetadataNodes; | %WildcardNodes;)?)>
<!ATTLIST MetadataDouble
name %SFString; #IMPLIED
value %MFDouble; #IMPLIED
reference %SFString; #IMPLIED
containerField %MetadataContainerFieldValues; "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT MetadataFloat (IS?, (%MetadataNodes; | %WildcardNodes;)?)>
<!ATTLIST MetadataFloat
name %SFString; #IMPLIED
value %MFFloat; #IMPLIED
reference %SFString; #IMPLIED
containerField %MetadataContainerFieldValues; "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT MetadataInteger (IS?, (%MetadataNodes; | %WildcardNodes;)?)>
<!ATTLIST MetadataInteger
name %SFString; #IMPLIED
value %MFInt32; #IMPLIED
reference %SFString; #IMPLIED
containerField %MetadataContainerFieldValues; "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT MetadataString (IS?, (%MetadataNodes; | %WildcardNodes;)?)>
<!ATTLIST MetadataString
name %SFString; #IMPLIED
value %MFString; #IMPLIED
reference %SFString; #IMPLIED
containerField %MetadataContainerFieldValues; "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- containerField discriminates whether child Metadata node(s) are 'metadata' or 'value' fields. -->
<!ELEMENT MetadataSet (IS?, (%MetadataNodes; | %WildcardNodes;)*)>
<!ATTLIST MetadataSet
reference %SFString; #IMPLIED
name %SFString; #IMPLIED
containerField %MetadataContainerFieldValues; "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!-- FAQ: MovieTexture
containerField='source' when used as a Sound source,
containerField='texture' when used as a Appearance texture source-->
<!ELEMENT MovieTexture ( (IS?), (%MetadataNodes;)?, (TextureProperties | %WildcardNodes;)? ) >
<!ATTLIST MovieTexture
loop %SFBool; "false"
speed %SFFloat; "1.0"
startTime %SFTime; "0"
stopTime %SFTime; "0"
url %MFString; #IMPLIED
repeatS %SFBool; "true"
repeatT %SFBool; "true"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
containerField NMTOKEN "texture"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTexture ( (IS?), (%MetadataNodes;)?, (%MultiTextureChildTextures;|%WildcardNodes; )* ) >
<!ATTLIST MultiTexture
mode %MFString; #IMPLIED
source %MFString; #IMPLIED
function %MFString; #IMPLIED
color %SFColor; "1 1 1"
alpha %SFFloat; "1.0"
containerField NMTOKEN "texture"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTextureCoordinate ((IS?), (%MetadataNodes;)?, (TextureCoordinate|TextureCoordinateGenerator|ProtoInstance)* ) >
<!ATTLIST MultiTextureCoordinate
containerField NMTOKEN "texCoord"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT NavigationInfo ((IS?), (%MetadataNodes;)?)>
<!ATTLIST NavigationInfo
avatarSize %MFFloat; "0.25 1.6 0.75"
headlight %SFBool; "true"
speed %SFFloat; "1"
type %MFString; ""EXAMINE" "ANY""
transitionType %MFString; ""LINEAR""
transitionTime %MFFloat; "1.0"
visibilityLimit %SFFloat; "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT Normal ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Normal
vector %MFVec3f; #IMPLIED
containerField NMTOKEN "normal"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NormalInterpolator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST NormalInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT OrientationInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST OrientationInterpolator
key %MFFloat; #IMPLIED
keyValue %MFRotation; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT PixelTexture ( (IS?), (%MetadataNodes;)?, (TextureProperties | %WildcardNodes;)? ) >
<!ATTLIST PixelTexture
image %SFImage; "0 0 0"
repeatS %SFBool; "true"
repeatT %SFBool; "true"
containerField NMTOKEN "texture"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PlaneSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PlaneSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
axisRotation %SFRotation; "0 1 0 0"
enabled %SFBool; "true"
maxPosition %SFVec2f; "-1 -1"
minPosition %SFVec2f; "0 0"
offset %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PointLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PointLight
ambientIntensity %SFFloat; "0"
attenuation %SFVec3f; "1 0 0"
color %SFColor; "1 1 1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
on %SFBool; "true"
radius %SFFloat; "100"
global %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PointSet (IS?, (%MetadataNodes;)?, (
( (%ColorNodes;), ((%CoordinateNodes;)|%WildcardNodes;)? ) |
( (%CoordinateNodes;), ((%ColorNodes;)|%WildcardNodes;)? ) |
( %WildcardNodes;, ((%ColorNodes;)|(%CoordinateNodes;)|%WildcardNodes;)?)
)? ) >
]]>
<![%InterchangeProfile;[
<!ELEMENT PointSet ( (%MetadataNodes;)?, ( ( Color, Coordinate? )|( Coordinate, Color? ) )? ) >
]]>
<!ATTLIST PointSet
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PositionInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST PositionInterpolator
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT PositionInterpolator2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PositionInterpolator2D
key %MFFloat; #IMPLIED
keyValue %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT ProtoInterface ( field* ) >
<!-- choice of required first node contained in ProtoBody constrained by valid ( %ProtoNodes; ) rather than %SceneNodes; ) > -->
<!ELEMENT ProtoBody ( ( %ProtoNodes; ), ( %SceneNodes; )* ) >
<!ELEMENT ProtoDeclare (ProtoInterface? , ProtoBody) > <!-- (|( field*, ( %ProtoNodes; ), ( %SceneNodes; )* )) -->
<!ATTLIST ProtoDeclare
name NMTOKEN #REQUIRED
appinfo %SFString; #IMPLIED
documentation %SFString; #IMPLIED>
<!ELEMENT ProtoInstance ( fieldValue* , (IS?) ) >
<!-- ( %SceneNodes; )* --><!-- direct children disallowed, let fieldValue name="children" handle them -->
<!ATTLIST ProtoInstance
name NMTOKEN #REQUIRED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ProximitySensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ProximitySensor
center %SFVec3f; "0 0 0"
size %SFVec3f; "0 0 0"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT ROUTE EMPTY>
<!ATTLIST ROUTE
fromNode IDREF #REQUIRED
fromField NMTOKEN #REQUIRED
toNode IDREF #REQUIRED
toField NMTOKEN #REQUIRED
>
<!ELEMENT ScalarInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST ScalarInterpolator
key %MFFloat; #IMPLIED
keyValue %MFFloat; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT Scene ((%MetadataNodes; | %SceneNodes;)*)>
<!-- Script is similar to PROTO regarding user definition of multiple fields -->
<![%ImmersiveProfile;[
<!-- Script source code is included as a CDATA section, which actually follows content-model order:
first field* definitions, one IS? definition and one Metadata node definition can appear.
However DOCTYPE expressive power cannot provide more restrictive validation than their presence.
X3D Schema checks both order and numbering of those contained elements. -->
<!ELEMENT Script ( #PCDATA|field|IS|%MetadataNodes; )* >
<!ATTLIST Script
url %MFString; #IMPLIED
directOutput %SFBool; "false"
mustEvaluate %SFBool; "false"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Shape
((IS?, (%MetadataNodes;)?),
(
( %AppearanceNodes;, ( %GeometryNodes; | %WildcardNodes; )? ) |
( (%GeometryNodes;), ( %AppearanceNodes; | %WildcardNodes; )? ) |
( %WildcardNodes;, ( %GeometryNodes; | %AppearanceNodes; | %WildcardNodes; )? )
)?
)
>
]]>
<![%InterchangeProfile;[
<!ELEMENT Shape ( (%MetadataNodes;)?,
( (%AppearanceNodes;), ( %GeometryNodes; )? ) |
( ( %GeometryNodes; ), (%AppearanceNodes;)? )?
) >
]]>
<!ATTLIST Shape
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT Sound (IS?, (%MetadataNodes;)?, ( %AudioClipNodes;|%MovieTextureNodes;|%WildcardNodes; )? ) >
<!ATTLIST Sound
direction %SFVec3f; "0 0 1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
maxBack %SFFloat; "10"
maxFront %SFFloat; "10"
minBack %SFFloat; "1"
minFront %SFFloat; "1"
priority %SFFloat; "0"
spatialize %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Sphere ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Sphere
radius %SFFloat; "1"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT SphereSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SphereSensor
description %SFString; #IMPLIED
autoOffset %SFBool; "true"
enabled %SFBool; "true"
offset %SFRotation; "0 1 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT SpotLight ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SpotLight
ambientIntensity %SFFloat; "0"
attenuation %SFVec3f; "1 0 0"
beamWidth %SFFloat; "0.7854"
color %SFColor; "1 1 1"
cutOffAngle %SFFloat; "1.570796"
direction %SFVec3f; "0 0 -1"
intensity %SFFloat; "1"
location %SFVec3f; "0 0 0"
on %SFBool; "true"
radius %SFFloat; "100"
global %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT StaticGroup (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST StaticGroup
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT StringSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST StringSensor
enabled %SFBool; "true"
deletionAllowed %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Switch (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST Switch
whichChoice %SFInt32; "-1"
containerField NMTOKEN "children"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT Text (IS?, (%MetadataNodes;)?, ( (%FontStyleNodes;)?|%WildcardNodes; ) ) >
<!ATTLIST Text
string %MFString; #IMPLIED
length %MFFloat; #IMPLIED
maxExtent %SFFloat; "0.0"
solid %SFBool; "false"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- backTexture, bottomTexture, frontTexture, leftTexture, rightTexture, topTexture; could use rule for 0..6 children here -->
<!ELEMENT TextureBackground (IS?, (%MetadataNodes;)?, (%Texture2DNodes; | MultiTexture)* )>
<!ATTLIST TextureBackground
groundAngle %MFFloat; #IMPLIED
groundColor %MFColor; #IMPLIED
skyAngle %MFFloat; #IMPLIED
skyColor %MFColor; "0 0 0"
transparency %SFFloat; "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<!ELEMENT TextureCoordinate ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TextureCoordinate
point %MFVec2f; #IMPLIED
containerField NMTOKEN "texCoord"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT TextureCoordinateGenerator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureCoordinateGenerator
mode %TextureCoordinateGeneratorModes; "SPHERE"
parameter %MFFloat; #IMPLIED
containerField NMTOKEN "texCoord"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureProperties ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureProperties
anisotropicDegree %SFFloat; "1.0"
borderColor %SFColorRGBA; "0 0 0 0"
borderWidth (0 | 1) "0"
boundaryModeS %TextureBoundaryModeValues; "REPEAT"
boundaryModeT %TextureBoundaryModeValues; "REPEAT"
boundaryModeR %TextureBoundaryModeValues; "REPEAT"
magnificationFilter %TextureMagnificationModeValues; "FASTEST"
minificationFilter %TextureMinificationModeValues; "FASTEST"
textureCompression %TextureCompressionModeValues; "FASTEST"
texturePriority %SFFloat; "0.0"
generateMipMaps %SFBool; "false"
containerField NMTOKEN "textureProperties"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureTransform ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureTransform
center %SFVec2f; "0 0"
rotation %SFFloat; "0"
scale %SFVec2f; "1 1"
translation %SFVec2f; "0 0"
containerField NMTOKEN "textureTransform"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT MultiTextureTransform ((IS?), (TextureTransform|ProtoInstance)* ) >
<!ATTLIST MultiTextureTransform
containerField NMTOKEN "textureTransform"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT TimeSensor ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TimeSensor
cycleInterval %SFTime; "1.0"
enabled %SFBool; "true"
loop %SFBool; "false"
startTime %SFTime; "0"
stopTime %SFTime; "0"
pauseTime %SFTime; "0"
resumeTime %SFTime; "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%ImmersiveProfile;[
<!ELEMENT TimeTrigger ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TimeTrigger
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TouchSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TouchSensor
description %SFString; #IMPLIED
enabled %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT Transform (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST Transform
center %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT IndexedTriangleFanSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST IndexedTriangleFanSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT IndexedTriangleSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST IndexedTriangleSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT IndexedTriangleStripSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST IndexedTriangleStripSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT TriangleFanSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST TriangleFanSet
fanCount %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT TriangleSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST TriangleSet
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT TriangleStripSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes; | %WildcardNodes;)*)>
<!ATTLIST TriangleStripSet
stripCount %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT Viewpoint ((IS?), (%MetadataNodes;)?)>
<!ATTLIST Viewpoint
fieldOfView %SFFloat; "0.7854"
jump %SFBool; "true"
orientation %SFRotation; "0 0 1 0"
position %SFVec3f; "0 0 10"
description %SFString; #IMPLIED
centerOfRotation %SFVec3f; "0 0 0"
retainUserOffsets %SFBool; "false"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- centerOfRotation point relates to NavigationInfo EXAMINE mode. -->
<![%ImmersiveProfile;[
<!ELEMENT OrthoViewpoint ((IS?), (%MetadataNodes;)?)>
<!ATTLIST OrthoViewpoint
fieldOfView %MFFloat; "-1 -1 1 1"
jump %SFBool; "true"
orientation %SFRotation; "0 0 1 0"
position %SFVec3f; "0 0 10"
description %SFString; #IMPLIED
centerOfRotation %SFVec3f; "0 0 0"
retainUserOffsets %SFBool; "false"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ViewpointGroup ((IS?), (%MetadataNodes;)?, (Viewpoint | OrthoViewpoint | ViewpointGroup | %WildcardNodes;)* )>
<!ATTLIST ViewpointGroup
center %SFVec3f; "0 0 0"
description %SFString; #IMPLIED
displayed %SFBool; "true"
retainUserOffsets %SFBool; "false"
size %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT VisibilitySensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST VisibilitySensor
center %SFVec3f; "0 0 0"
enabled %SFBool; "true"
size %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!ELEMENT WorldInfo ((IS?), (%MetadataNodes;)?)>
<!ATTLIST WorldInfo
info %MFString; #IMPLIED
title %SFString; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT X3D (head?, Scene, ds:Signature?)>
<!ATTLIST X3D
xmlns:xsd CDATA "http://www.w3.org/2001/XMLSchema-instance"
xsd:noNamespaceSchemaLocation CDATA "http://www.web3d.org/specifications/x3d-3.3.xsd"
profile %profileNames; #REQUIRED
version (3.0 | 3.1 | 3.2 | 3.3) #REQUIRED
xmlns:ds CDATA "http://www.w3.org/2000/09/xmldsig#"
xmlns:xenc CDATA "http://www.w3.org/2001/04/xmlenc#"
>
<!-- XML security: digital signature (ds), encryption (xenc) -->
<!-- EspduTransform includes DIS CollisionPdu DetonatePdu FirePdu -->
<![%DISComponent;[
<!ELEMENT EspduTransform (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST EspduTransform
enabled %SFBool; "true"
marking %SFString; #IMPLIED
siteID %SFInt32; "0"
applicationID %SFInt32; "0"
entityID %SFInt32; "0"
forceID %SFInt32; "0"
entityKind %SFInt32; "0"
entityDomain %SFInt32; "0"
entityCountry %SFInt32; "0"
entityCategory %SFInt32; "0"
entitySubcategory %SFInt32; "0"
entitySpecific %SFInt32; "0"
entityExtra %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode %DisNetworkModeValues; "standAlone"
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
center %SFVec3f; "0 0 0"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
deadReckoning %SFInt32; "0"
linearVelocity %SFVec3f; "0 0 0"
linearAcceleration %SFVec3f; "0 0 0"
fired1 %SFBool; "false"
fired2 %SFBool; "false"
collisionType %SFInt32; "0"
detonationLocation %SFVec3f; "0 0 0"
detonationRelativeLocation %SFVec3f; "0 0 0"
detonationResult %SFInt32; "0"
eventApplicationID %SFInt32; "0"
eventEntityID %SFInt32; "0"
eventNumber %SFInt32; "0"
eventSiteID %SFInt32; "0"
munitionStartPoint %SFVec3f; "0 0 0"
munitionEndPoint %SFVec3f; "0 0 0"
warhead %SFInt32; "0"
fuse %SFInt32; "0"
munitionQuantity %SFInt32; "0"
firingRate %SFInt32; "0"
firingRange %SFFloat; "0"
munitionSiteID %SFInt32; "0"
munitionApplicationID %SFInt32; "0"
munitionEntityID %SFInt32; "0"
fireMissionIndex %SFInt32; "0"
articulationParameterCount %SFInt32; "0"
articulationParameterDesignatorArray %MFInt32; #IMPLIED
articulationParameterChangeIndicatorArray %MFInt32; #IMPLIED
articulationParameterIdPartAttachedToArray %MFInt32; #IMPLIED
articulationParameterTypeArray %MFInt32; #IMPLIED
articulationParameterArray %MFFloat; #IMPLIED
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT ReceiverPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ReceiverPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "0"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode %DisNetworkModeValues; "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
receivedPower %SFFloat; "0.0"
receiverState %SFInt32; "0"
transmitterSiteID %SFInt32; "0"
transmitterApplicationID %SFInt32; "0"
transmitterEntityID %SFInt32; "0"
transmitterRadioID %SFInt32; "0"
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT SignalPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SignalPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "0"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode %DisNetworkModeValues; "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
encodingScheme %SFInt32; "0"
tdlType %SFInt32; "0"
sampleRate %SFInt32; "0"
samples %SFInt32; "0"
dataLength %SFInt32; "0"
data %MFInt32; #IMPLIED
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT TransmitterPdu ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TransmitterPdu
enabled %SFBool; "true"
whichGeometry %SFInt32; "1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
siteID %SFInt32; "0"
applicationID %SFInt32; "0"
entityID %SFInt32; "0"
readInterval %SFTime; "0.1"
writeInterval %SFTime; "1.0"
networkMode %DisNetworkModeValues; "standAlone"
address %SFString; "localhost"
port %SFInt32; "0"
multicastRelayHost %SFString; #IMPLIED
multicastRelayPort %SFInt32; "0"
rtpHeaderExpected %SFBool; "false"
radioID %SFInt32; "0"
antennaLocation %SFVec3f; "0 0 0"
antennaPatternLength %SFInt32; "0"
antennaPatternType %SFInt32; "0"
cryptoKeyID %SFInt32; "0"
cryptoSystem %SFInt32; "0"
frequency %SFInt32; "0"
inputSource %SFInt32; "0"
lengthOfModulationParameters %SFInt32; "0"
modulationTypeDetail %SFInt32; "0"
modulationTypeMajor %SFInt32; "0"
modulationTypeSpreadSpectrum %SFInt32; "0"
modulationTypeSystem %SFInt32; "0"
power %SFFloat; "0.0"
radioEntityTypeCategory %SFInt32; "0"
radioEntityTypeCountry %SFInt32; "0"
radioEntityTypeDomain %SFInt32; "0"
radioEntityTypeKind %SFInt32; "0"
radioEntityTypeNomenclature %SFInt32; "0"
radioEntityTypeNomenclatureVersion %SFInt32; "0"
relativeAntennaLocation %SFVec3f; "0 0 0"
transmitFrequencyBandwidth %SFFloat; "0.0"
transmitState %SFInt32; "0"
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT DISEntityManager ( (IS?), (%MetadataNodes;)?, (DISEntityTypeMapping|%WildcardNodes;)* ) >
<!ATTLIST DISEntityManager
siteID %SFInt32; "0"
applicationID %SFInt32; "0"
address %SFString; "localhost"
port %SFInt32; "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT DISEntityTypeMapping ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST DISEntityTypeMapping
category %SFInt32; "0"
country %SFInt32; "0"
domain %SFInt32; "0"
extra %SFInt32; "0"
kind %SFInt32; "0"
specific %SFInt32; "0"
subcategory %SFInt32; "0"
url %MFString; #IMPLIED
containerField NMTOKEN "mapping"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%GeoSpatialComponent;[
<!ELEMENT GeoCoordinate ( IS?, (%MetadataNodes;)?, GeoOrigin? ) > <!-- X3DCoordinateNodeType -->
<!ATTLIST GeoCoordinate
geoSystem %MFString; '"GD" "WE"'
point %MFVec3d; #IMPLIED
containerField NMTOKEN "coord"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- need to restrict GeoOrigin to first element, or relax schema restriction -->
<!ELEMENT GeoElevationGrid (IS?, (%MetadataNodes;)?, (
((%ColorNodes;), (
(GeoOrigin, ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( (GeoOrigin,((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
(GeoOrigin,((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( (GeoOrigin,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|(GeoOrigin, (
((%ColorNodes;), ( ((%NormalNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%NormalNodes;), (
((%ColorNodes;), ( (GeoOrigin,((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),(GeoOrigin|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
|((%TextureCoordinateNodes;), (
((%ColorNodes;), ( (GeoOrigin,((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),(GeoOrigin|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? ) )? )
|(%WildcardNodes;, (
((%ColorNodes;), ( (GeoOrigin,((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| (GeoOrigin,(((%ColorNodes;),((%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%NormalNodes;), ( ((%ColorNodes;),(GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,(GeoOrigin|(%ColorNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? )
| ((%TextureCoordinateNodes;), (
((%ColorNodes;),(GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) )? )
| (%WildcardNodes;, ( ((%ColorNodes;),(GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
(GeoOrigin,((%ColorNodes;)|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%NormalNodes;),((%ColorNodes;)|GeoOrigin|(%TextureCoordinateNodes;)|%WildcardNodes;)?) |
((%TextureCoordinateNodes;),((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|%WildcardNodes;)?) |
(%WildcardNodes;,((%ColorNodes;)|GeoOrigin|(%NormalNodes;)|(%TextureCoordinateNodes;)|%WildcardNodes;)?) )? ) )? )
)? ) >
<!ATTLIST GeoElevationGrid
geoSystem %MFString; '"GD" "WE"'
geoGridOrigin %SFVec3d; "0 0 0"
xDimension %SFInt32; "0"
xSpacing %SFDouble; "1.0"
yScale %SFFloat; "1.0"
zDimension %SFInt32; "0"
zSpacing %SFDouble; "1.0"
height %MFDouble; "0 0"
normalPerVertex %SFBool; "true"
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
creaseAngle %SFFloat; "0"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoLocation (IS?, (%MetadataNodes;)?,
( %ChildrenNodes;|%WildcardNodes; )*, (GeoOrigin, ( %ChildrenNodes;|%WildcardNodes; )* )? ) >
<!ATTLIST GeoLocation
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoLOD (IS?, (%MetadataNodes;)?,
( %ChildrenNodes;|%WildcardNodes; )*, (GeoOrigin, ( %ChildrenNodes;|%WildcardNodes; )* )? ) >
<!ATTLIST GeoLOD
geoSystem %MFString; '"GD" "WE"'
rootUrl %MFString; #IMPLIED
child1Url %MFString; #IMPLIED
child2Url %MFString; #IMPLIED
child3Url %MFString; #IMPLIED
child4Url %MFString; #IMPLIED
range %SFFloat; "10"
center %SFVec3d; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoMetadata ( (IS?), (%MetadataNodes;)?,
(GeoCoordinate, GeoElevationGrid, GeoLocation, GeoOrigin, GeoLOD, GeoPositionInterpolator, GeoProximitySensor, GeoTouchSensor, GeoTransform, GeoViewpoint, %WildcardNodes;)* ) >
<!ATTLIST GeoMetadata
url %MFString; #IMPLIED
summary %MFString; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!--
title %SFString; #IMPLIED
description %SFString; #IMPLIED
coordinateSystem %SFString; #IMPLIED
horizontalDatum %SFString; #IMPLIED
verticalDatum %SFString; #IMPLIED
ellipsoid %SFString; #IMPLIED
extent %SFString; #IMPLIED
resolution %SFString; #IMPLIED
originator %SFString; #IMPLIED
copyright %SFString; #IMPLIED
date %SFString; #IMPLIED
metadataFormat %SFString; #IMPLIED
dataUrl %SFString; #IMPLIED
dataFormat %SFString; #IMPLIED
-->
<!-- GeoOrigin is deprecated and discouraged (but nevertheless allowed) in X3D v3.3 -->
<!ELEMENT GeoOrigin ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST GeoOrigin
geoSystem %MFString; '"GD" "WE"'
geoCoords %SFVec3d; "0 0 0"
rotateYUp %SFBool; "false"
containerField NMTOKEN "geoOrigin"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoPositionInterpolator ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoPositionInterpolator
geoSystem %MFString; '"GD" "WE"'
key %MFFloat; #IMPLIED
keyValue %MFVec3d; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoProximitySensor ( (IS?), (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoProximitySensor
geoSystem %MFString; '"GD" "WE"'
geoCenter %MFDouble; "0 0 0"
size %SFVec3f; "0 0 0"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoTouchSensor ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoTouchSensor
geoSystem %MFString; '"GD" "WE"'
enabled %SFBool; "true"
description %SFString; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT GeoTransform (IS?, (%MetadataNodes;)?, GeoOrigin?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST GeoTransform
geoSystem %MFString; '"GD" "WE"'
geoCenter %SFVec3d; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- X3D v3.3 GeoViewpoint changes: added centerOfRotation and retainUserOffsets, removed navType and headlight -->
<!ELEMENT GeoViewpoint ( IS?, (%MetadataNodes;)?, GeoOrigin? ) >
<!ATTLIST GeoViewpoint
geoSystem %MFString; '"GD" "WE"'
centerOfRotation %SFVec3d; "0 0 0"
description %SFString; #IMPLIED
position %SFVec3d; "0 0 100000"
orientation %SFRotation; "0 0 1 0"
fieldOfView %SFFloat; "0.7854"
jump %SFBool; "true"
retainUserOffsets %SFBool; "false"
speedFactor %SFFloat; "1.0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- Note that setting JointNames, SegmentNames and FeaturePoints as enumerations does not permit validation of other names. -->
<![%HAnimComponent;[
<!ENTITY % JointNames "(
HumanoidRoot|sacroiliac|l_hip|l_knee|l_ankle|l_subtalar|l_midtarsal|l_metatarsal|r_hip|r_knee|r_ankle|r_subtalar|r_midtarsal|r_metatarsal|
vl5|vl4|vl3|vl2|vl1|vt12|vt11|vt10|vt9|vt8|vt7|vt6|vt5|vt4|vt3|vt2|vt1|vc7|vc6|vc5|vc4|vc3|vc2|vc1|
skullbase|l_eyelid_joint|r_eyelid_joint|l_eyeball_joint|r_eyeball_joint|l_eyebrow_joint|r_eyebrow_joint|temporomandibular|
l_sternoclavicular|l_acromioclavicular|l_shoulder|l_elbow|l_wrist|l_thumb1|l_thumb2|l_thumb3|
l_index0|l_index1|l_index2|l_index3|l_middle0|l_middle1|l_middle2|l_middle3|l_ring0|l_ring1|l_ring2|l_ring3|l_pinky0|l_pinky1|l_pinky2|l_pinky3|
r_sternoclavicular|r_acromioclavicular|r_shoulder|r_elbow|r_wrist|r_thumb1|r_thumb2|r_thumb3|
r_index0|r_index1|r_index2|r_index3|r_middle0|r_middle1|r_middle2|r_middle3|r_ring0|r_ring1|r_ring2|r_ring3|r_pinky0|r_pinky1|r_pinky2|r_pinky3)" >
<!ENTITY % SegmentNames "(
sacrum|pelvis|l_thigh|l_calf|l_hindfoot|l_midproximal|l_middistal|l_forefoot|r_thigh|r_calf|r_hindfoot|r_midproximal|r_middistal|r_forefoot|
l5|l4|l3|l2|l1|
t12|t11|t10|t9|t8|t7|t6|t5|t4|t3|t2|t1|
c7|c6|c5|c4|c3|c2|c1|
skull|l_eyelid|r_eyelid|l_eyeball|r_eyeball|l_eyebrow|r_eyebrow|jaw|
l_clavicle|l_scapula|l_upperarm|l_forearm|l_hand|
l_thumb_metacarpal|l_thumb_proximal|l_thumb_distal|
l_index_metacarpal|l_index_proximal|l_index_middle|l_index_distal|
l_middle_metacarpal|l_middle_proximal|l_middle_middle|l_middle_distal|
l_ring_metacarpal|l_ring_proximal|l_ring_middle|l_ring_distal|
l_pinky_metacarpal|l_pinky_proximal|l_pinky_middle|l_pinky_distal|
r_clavicle|r_scapula|r_upperarm|r_forearm|r_hand|
r_thumb_metacarpal|r_thumb_proximal|r_thumb_distal|r_index_metacarpal|
r_index_proximal|r_index_middle|r_index_distal|r_middle_metacarpal|
r_middle_proximal|r_middle_middle|r_middle_distal|
r_ring_metacarpal|r_ring_proximal|r_ring_middle|r_ring_distal|
r_pinky_metacarpal|r_pinky_proximal|r_pinky_middle|r_pinky_distal)" >
<!ENTITY % FeaturePointNames "(
sellion|r_infraorbitale|l_infraorbitale|supramenton|r_tragion|r_gonion1|l_tragion|l_gonion|nuchale|r_clavicale|suprasternale|l_clavicale|
r_thelion|bustpoin2t|l_thelion|bustpoint|substernale|r_rib10|r_asis|l_rib10|l_asis|r_iliocristal3e|r_trochanterion|l_iliocristale|l_trochanterion|
cervicale|rib10_midspine|r_psis|l_psi4s|waist_preferred_post|r_acromion|r_axilla_ant|r_radial_styloid|r_axilla_post|r_olecranon|
r_humeral_lateral_ep5icn|r_humeral_medial_epicn|r_radiale|r_metacarpal_pha2|r_dactylion|r_ulnar_styloid|r_metacarpal_pha5|l_acromio6n|
l_axilla_ant|l_radial_styloid|l_axilla_post|l_olecranon|l_humeral_lateral_epicn|l_humeral_medial_epicn|l_radial7e|l_metacarpal_pha2|
l_dactylion|l_ulnar_styloid|l_metacarpal_pha5|r_knee_crease|r_femoral_lateral_epicn|r_femora8l_medial_epicn|r_metatarsal_pha5|r_lateral_malleolus|
r_medial_malleolus|r_sphyrion|r_metatarsal_pha1|r_calcaneous_post.|r_digit92|l_knee_crease|l_femoral_lateral_epicn|l_femoral_medial_epicn|
l_metatarsal_pha5|l_lateral_malleolus|l_medial_malleolus|l_sphyrion|l_metatarsal_pha1|l_calcaneous_post|l_digit2|crotch|r_neck_base|l_neck_base|navel)" >
<!-- HAnimSite name fields can also include name="somelocation_view" and so SiteNames validation is turned off by default -->
<!ENTITY % SiteNames "(
cervicale|crotch|l_acromion|l_asis|l_axilla_ant|l_axilla_post|l_calcaneous_post|l_clavicale|l_dactylion|l_digit2|
l_femoral_lateral_epicn|l_femoral_medial_epicn|l_forefoot_tip|l_gonion|l_hand_tip|
l_humeral_lateral_epicn|l_humeral_medial_epicn|l_iliocristale|l_index_distal_tip|
l_infraorbitale|l_knee_crease|l_lateral_malleolus|l_medial_malleolus|l_metacarpal_pha2|l_metacarpal_pha5|
l_metatarsal_pha1|l_metatarsal_pha5|l_middle_distal_tip|l_neck_base|l_olecranon|l_pinky_distal_tip|
l_psis|l_radial_styloid|l_radiale|l_rib10|l_ring_distal_tip|l_sphyrion|l_thelion|l_thumb_distal_tip|
l_tragion|l_trochanterion|l_ulnar_styloid|
navel|nuchale|r_acromion|r_asis|r_axilla_ant|r_axilla_post|r_calcaneous_post|r_clavicale|r_dactylion|r_digit2|
r_femoral_lateral_epicn|r_femoral_medial_epicn|r_forefoot_tip|r_gonion|r_hand_tip|
r_humeral_lateral_epicn|r_humeral_medial_epicn|r_iliocristale|r_index_distal_tip|
r_infraorbitale|r_knee_crease|r_lateral_malleolus|r_medial_malleolus|r_metacarpal_pha2|r_metacarpal_pha5|
r_metatarsal_pha1|r_metatarsal_pha5|r_middle_distal_tip|r_neck_base|r_olecranon|r_pinky_distal_tip|
r_psis|r_radial_styloid|r_radiale|r_rib10|r_ring_distal_tip|r_sphyrion|r_thelion|r_thumb_distal_tip|
r_tragion|r_trochanterion|r_ulnar_styloid|
rib10_midspine|sellion|skull_tip|substernale|supramenton|suprasternale|waist_preferred_post)" >
<!ELEMENT HAnimDisplacer ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST HAnimDisplacer
name %FeaturePointNames; #IMPLIED
coordIndex %MFInt32; #IMPLIED
displacements %MFVec3f; #IMPLIED
weight %SFFloat; "0.0"
containerField NMTOKEN "displacers"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT HAnimHumanoid (IS?, (%MetadataNodes;)?,
(HAnimJoint*, HAnimSegment*, HAnimSite*, (%CoordinateNodes;)?, (%NormalNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) ) >
<!-- skeleton/joints, segments, sites, skinCoord, skinNormal, skin/viewpoints -->
<!-- Note that version 2.0 is approved, while versions 1.0/1.1 are incompatible and version 2.2 is experimental. -->
<!-- Note that joints, segments and sites should be USE nodes. skin Shapes will USE preceding skinCoord, skinNormal definitions. -->
<!-- Design limitation: cannot require @name field or else USE nodes fail to validate. -->
<!ATTLIST HAnimHumanoid
name %SFString; #IMPLIED
version (2.0 | 2.2) #IMPLIED
info %MFString; #IMPLIED
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- not treated as separate attributes, instead these are
encoded as "attribute=value" SFString entries in the
MFString info field.
humanoidVersion %SFString; #IMPLIED
authorName %SFString; #IMPLIED
authorEmail %SFString; #IMPLIED
copyright %SFString; #IMPLIED
creationDate %SFString; #IMPLIED
usageRestrictions %SFString; #IMPLIED
age %SFString; #IMPLIED
gender %SFString; #IMPLIED
height %SFString; #IMPLIED
weight %SFString; #IMPLIED
-->
<![%HAnimComponent;[
<!ELEMENT HAnimJoint (IS?, (%MetadataNodes;)?, ( HAnimJoint|HAnimSegment|%WildcardNodes; )* ) >
<!ATTLIST HAnimJoint
name %JointNames; #IMPLIED
ulimit %MFFloat; #IMPLIED
llimit %MFFloat; #IMPLIED
limitOrientation %SFRotation; "0 0 1 0"
skinCoordIndex %MFInt32; #IMPLIED
skinCoordWeight %MFFloat; #IMPLIED
stiffness %MFFloat; "0 0 0"
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Multiple HAnimDisplacer nodes must appear consecutively inside HAnimSegment -->
<!ELEMENT HAnimSegment (IS?, (%MetadataNodes;)?, (
((%ChildrenNodes;|%WildcardNodes;)*, ((Coordinate, HAnimDisplacer*)|(HAnimDisplacer+, Coordinate?))? ) |
(Coordinate, (((%ChildrenNodes;)*, HAnimDisplacer*)|(HAnimDisplacer+, (%ChildrenNodes;|%WildcardNodes;)*))? ) |
(HAnimDisplacer+, ((Coordinate, (%ChildrenNodes;|%WildcardNodes;)*)|((%ChildrenNodes;|%WildcardNodes;)*, Coordinate?))? )?
) ) >
<!ATTLIST HAnimSegment
name %SegmentNames; #IMPLIED
mass %SFFloat; "0"
centerOfMass %SFVec3f; "0 0 0"
momentsOfInertia %MFFloat; "0 0 0 0 0 0 0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT HAnimSite (IS?, (%MetadataNodes;)?, ( %ChildrenNodes;|%WildcardNodes; )* ) >
<!ATTLIST HAnimSite
name NMTOKEN #IMPLIED
translation %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
center %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%NurbsComponent;[
<!ELEMENT Contour2D (IS?, (%MetadataNodes;)?, ( %NurbsControlCurveNodes;|%WildcardNodes; )* ) >
<!ATTLIST Contour2D
containerField NMTOKEN "trimmingContour"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ContourPolyline2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ContourPolyline2D
controlPoint %MFVec2d; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- child CoordinateNode has containerField controlPoint -->
<!ELEMENT NurbsCurve ( (IS?), (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )? ) >
<!ATTLIST NurbsCurve
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
tessellation %SFInt32; "0"
closed %SFBool; "false"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsCurve2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST NurbsCurve2D
controlPoint %MFVec2d; #IMPLIED
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
tessellation %SFInt32; "0"
closed %SFBool; "false"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsOrientationInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsOrientationInterpolator
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsPositionInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsPositionInterpolator
knot %MFDouble; #IMPLIED
order %SFInt32; "3"
weight %MFDouble; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSurfaceInterpolator ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsSurfaceInterpolator
weight %MFDouble; #IMPLIED
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSet (IS?, (%MetadataNodes;)?, (NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|%WildcardNodes; )* ) >
<!ATTLIST NurbsSet
tessellationScale %SFFloat; "1.0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsPatchSurface (IS?, (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )?, ( %TextureCoordinateNodes;|NurbsTextureCoordinate)? ) >
<!ATTLIST NurbsPatchSurface
uClosed %SFBool; "false"
vClosed %SFBool; "false"
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
uTessellation %SFInt32; "0"
vTessellation %SFInt32; "0"
weight %MFDouble; #IMPLIED
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsTrimmedSurface (IS?, (%MetadataNodes;)?, ( %CoordinateNodes;|%WildcardNodes; )?, ( %TextureCoordinateNodes;|NurbsTextureCoordinate)?, Contour2D* ) >
<!ATTLIST NurbsTrimmedSurface
uClosed %SFBool; "false"
vClosed %SFBool; "false"
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
uTessellation %SFInt32; "0"
vTessellation %SFInt32; "0"
weight %MFDouble; #IMPLIED
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSweptSurface (IS?, (%MetadataNodes;)?, (NurbsCurve|%WildcardNodes; )?, ( %NurbsControlCurveNodes;|%WildcardNodes; )? ) >
<!ATTLIST NurbsSweptSurface
ccw %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsSwungSurface (IS?, (%MetadataNodes;)?, ( ( %NurbsControlCurveNodes;|%WildcardNodes; ), ( %NurbsControlCurveNodes;|%WildcardNodes; )? )? ) >
<!ATTLIST NurbsSwungSurface
ccw %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT NurbsTextureCoordinate ( (IS?), (%MetadataNodes;)?, (%CoordinateNodes;)? ) >
<!ATTLIST NurbsTextureCoordinate
controlPoint %MFVec2f; #IMPLIED
weight %MFFloat; #IMPLIED
uDimension %SFInt32; "0"
vDimension %SFInt32; "0"
uKnot %MFDouble; #IMPLIED
vKnot %MFDouble; #IMPLIED
uOrder %SFInt32; "3"
vOrder %SFInt32; "3"
containerField NMTOKEN "texCoord"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%CadComponent;[
<!ELEMENT CADAssembly (IS?, (%MetadataNodes;)?, (CADAssembly|CADPart|Anchor|Billboard|Collision|Group|Inline|LOD|Transform|DirectionalLight|NavigationInfo|OrthoViewpoint|Viewpoint|ViewpointGroup|WorldInfo|%WildcardNodes;)*)>
<!-- ViewpointGroup and OrthoViewpoint require Navigation component level 3, which is higher than CADInterchange profile -->
<!ATTLIST CADAssembly
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
name %SFString; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CADFace (IS?, (%MetadataNodes;)?, (Shape|LOD|Transform|%WildcardNodes;)?)>
<!ATTLIST CADFace
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
name %SFString; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CADLayer (IS?, (%MetadataNodes;)?, (%ChildrenNodes;|%WildcardNodes;)*)>
<!ATTLIST CADLayer
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
name %SFString; #IMPLIED
visible %MFBool; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT CADPart (IS?, (%MetadataNodes;)?, (CADFace|%WildcardNodes;)*)>
<!ATTLIST CADPart
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
center %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
scaleOrientation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
name %SFString; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT QuadSet (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*)>
<!ATTLIST QuadSet
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT IndexedQuadSet ( (IS?, (%MetadataNodes;)?, (%ComposedGeometryNodes;|%WildcardNodes;)*) ) >
<!ATTLIST IndexedQuadSet
index %MFInt32; #IMPLIED
ccw %SFBool; "true"
colorPerVertex %SFBool; "true"
normalPerVertex %SFBool; "true"
solid %SFBool; "true"
containerField NMTOKEN "geometry"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%CubeMapTexturingComponent;[
<!-- containerField values: front back left right top bottom. could use rule for 0..6 children here -->
<!ELEMENT ComposedCubeMapTexture (IS?, (%MetadataNodes;)?, (%Texture2DNodes;)* )>
<!ATTLIST ComposedCubeMapTexture
containerField NMTOKEN "texture"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT GeneratedCubeMapTexture (IS?, (%MetadataNodes;)? )>
<!ATTLIST GeneratedCubeMapTexture
update (NONE|NEXT_FRAME_ONLY|ALWAYS) "NONE"
size %SFInt32; "128"
containerField NMTOKEN "texture"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
<!ELEMENT ImageCubeMapTexture (IS?, (%MetadataNodes;)? )>
<!ATTLIST ImageCubeMapTexture
url %MFString; #IMPLIED
containerField NMTOKEN "texture"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED >
]]>
<![%ShadersComponent;[
<!-- TODO fix shader mixed-content models, see Script and corresonding X3D schemas for examples -->
<!ELEMENT ComposedShader ( (field)*, (IS?), (%MetadataNodes;)?, (ShaderPart|%WildcardNodes;)* ) >
<!ATTLIST ComposedShader
language %SFString; #IMPLIED
containerField CDATA "shaders"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT FloatVertexAttribute ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST FloatVertexAttribute
value %MFFloat; #IMPLIED
name %SFString; #IMPLIED
numComponents (1|2|3|4) "4"
containerField CDATA "attrib"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Matrix3VertexAttribute ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Matrix3VertexAttribute
value %MFMatrix3f; #IMPLIED
name %SFString; #IMPLIED
containerField CDATA "attrib"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT Matrix4VertexAttribute ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Matrix4VertexAttribute
value %MFMatrix4f; #IMPLIED
name %SFString; #IMPLIED
containerField CDATA "attrib"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PackagedShader ((field)*, (IS?), (%MetadataNodes;)? ) >
<!ATTLIST PackagedShader
language %SFString; #IMPLIED
containerField CDATA "shaders"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ProgramShader ((IS?), (%MetadataNodes;)?, (ShaderProgram|%WildcardNodes;)* ) >
<!ATTLIST ProgramShader
language %SFString; #IMPLIED
containerField CDATA "shaders"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ShaderPart ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ShaderPart
url %MFString; #IMPLIED
type ( VERTEX|FRAGMENT ) #IMPLIED
containerField NMTOKEN "parts"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ShaderProgram ((field)*, (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ShaderProgram
url %MFString; #IMPLIED
type ( VERTEX|FRAGMENT ) #IMPLIED
containerField NMTOKEN "programs"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%Texture3DComponent;[
<!ELEMENT ComposedTexture3D ((IS?), (%MetadataNodes;)?, (%Texture2DNodes;)*)>
<!ATTLIST ComposedTexture3D
repeatS %SFBool; "false"
repeatT %SFBool; "false"
repeatR %SFBool; "false"
containerField NMTOKEN "texture"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT ImageTexture3D ((IS?), (%MetadataNodes;)?, (TextureProperties | %WildcardNodes;)?)>
<!ATTLIST ImageTexture3D
url %MFString; #IMPLIED
repeatS %SFBool; "false"
repeatT %SFBool; "false"
repeatR %SFBool; "false"
containerField NMTOKEN "texture"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT PixelTexture3D ((IS?), (%MetadataNodes;)?, (TextureProperties | %WildcardNodes;)?)>
<!ATTLIST PixelTexture3D
image %MFInt32; "0 0 0 0"
repeatS %SFBool; "false"
repeatT %SFBool; "false"
repeatR %SFBool; "false"
containerField NMTOKEN "texture"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureCoordinate3D ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TextureCoordinate3D
point %MFVec3f; #IMPLIED
containerField NMTOKEN "texCoord"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureCoordinate4D ((IS?), (%MetadataNodes;)?)>
<!ATTLIST TextureCoordinate4D
point %MFVec4f; #IMPLIED
containerField NMTOKEN "texCoord"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureTransformMatrix3D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureTransformMatrix3D
matrix %SFMatrix4f; "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"
containerField NMTOKEN "textureTransform"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TextureTransform3D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TextureTransform3D
center %SFVec3f; "0 0 0"
rotation %SFRotation; "0 0 1 0"
scale %SFVec3f; "1 1 1"
translation %SFVec3f; "0 0 0"
containerField NMTOKEN "textureTransform"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%ImmersiveProfile;[
<!ELEMENT LocalFog ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST LocalFog
enabled %SFBool; "true"
color %SFColor; "1 1 1"
fogType (LINEAR|EXPONENTIAL) "LINEAR"
visibilityRange %SFFloat; "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT FogCoordinate ((IS?), (%MetadataNodes;)?)>
<!ATTLIST FogCoordinate
depth %MFFloat; #IMPLIED
containerField NMTOKEN "fogCoord"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<!-- v3.2 -->
<![%FullProfile;[
<!ELEMENT ClipPlane ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ClipPlane
enabled %SFBool; "true"
plane %SFVec4f; "0 1 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT EaseInEaseOut ((IS?), (%MetadataNodes;)?)>
<!ATTLIST EaseInEaseOut
key %MFFloat; #IMPLIED
easeInEaseOut %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT SplinePositionInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST SplinePositionInterpolator
closed %SFBool; "false"
key %MFFloat; #IMPLIED
keyValue %MFVec3f; #IMPLIED
keyVelocity %MFVec3f; #IMPLIED
normalizeVelocity %SFBool; "false"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT SplinePositionInterpolator2D ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SplinePositionInterpolator2D
closed %SFBool; "false"
key %MFFloat; #IMPLIED
keyValue %MFVec2f; #IMPLIED
keyVelocity %MFVec2f; #IMPLIED
normalizeVelocity %SFBool; "false"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT SplineScalarInterpolator ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST SplineScalarInterpolator
closed %SFBool; "false"
key %MFFloat; #IMPLIED
keyValue %MFFloat; #IMPLIED
keyVelocity %MFFloat; #IMPLIED
normalizeVelocity %SFBool; "false"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT SquadOrientationInterpolator ((IS?), (%MetadataNodes;)?)>
<!ATTLIST SquadOrientationInterpolator
key %MFFloat; #IMPLIED
keyValue %MFRotation; #IMPLIED
normalizeVelocity %SFBool; "false"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TransformSensor ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TransformSensor
center %SFVec3f; "0 0 0"
size %SFVec3f; "0 0 0"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!ELEMENT TwoSidedMaterial ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST TwoSidedMaterial
ambientIntensity %SFFloat; "0.2"
diffuseColor %SFColor; "0.8 0.8 0.8"
emissiveColor %SFColor; "0 0 0"
shininess %SFFloat; "0.2"
specularColor %SFColor; "0 0 0"
transparency %SFFloat; "0"
backAmbientIntensity %SFFloat; "0.2"
backDiffuseColor %SFColor; "0.8 0.8 0.8"
backEmissiveColor %SFColor; "0 0 0"
backShininess %SFFloat; "0.2"
backSpecularColor %SFColor; "0 0 0"
backTransparency %SFFloat; "0"
separateBackColor %SFBool; "false"
containerField NMTOKEN "material"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
]]>
<![%LayeringComponent;[
<!-- TODO: Schematron rule regarding order for SFNode child Viewport -->
<!ELEMENT Layer (IS?, (%MetadataNodes;)?, Viewport?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST Layer
isPickable %SFBool; "true"
containerField NMTOKEN "layers"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT LayerSet (IS?, (%MetadataNodes;)?, (Layer | LayoutLayer | %WildcardNodes;)*)>
<!ATTLIST LayerSet
activeLayer %SFInt32; "0"
order %MFInt32; "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT Viewport (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST Viewport
clipBoundary %MFFloat; "0 1 0 1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "viewport"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<![%LayoutComponent;[
<!ELEMENT Layout ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST Layout
align %MFString; '"CENTER" "CENTER"'
offsetUnits %MFString; '"WORLD" "WORLD"'
scaleMode %MFString; '"NONE" "NONE"'
sizeUnits %MFString; '"WORLD" "WORLD"'
offset %MFFloat; "0 0"
size %SFFloat; "1.0"
containerField NMTOKEN "layout"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Minimum supported values:
align ' "LEFT" "CENTER" "RIGHT" "BOTTOM" "CENTER" "TOP" '
offsetUnits ' "WORLD" "FRACTION" "PIXEL" '
scaleMode ' "NONE" "FRACTION" "STRETCH" "PIXEL" '
sizeUnits ' "WORLD" "FRACTION" "PIXEL" ' -->
<!-- TODO: Schematron rule regarding order for SFNode children Layout and Viewport -->
<!ELEMENT LayoutGroup (IS?, (%MetadataNodes;)?, Layout, Viewport?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST LayoutGroup
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- TODO: Schematron rule regarding order for SFNode children Layout and Viewport -->
<!ELEMENT LayoutLayer (IS?, (%MetadataNodes;)?, Layout, Viewport?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST LayoutLayer
isPickable %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ScreenFontStyle ( (IS?), (%MetadataNodes;)? ) >
<!ATTLIST ScreenFontStyle
family %MFString; '"SERIF"'
horizontal %SFBool; "true"
justify %MFString; '"BEGIN"'
language %SFString; #IMPLIED
leftToRight %SFBool; "true"
pointSize %SFFloat; "1.0"
spacing %SFFloat; "1.0"
style (PLAIN|BOLD|ITALIC|BOLDITALIC) "PLAIN"
topToBottom %SFBool; "true"
containerField NMTOKEN "fontStyle"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED>
<!-- Minimum supported values:
family ' "SERIF" "SANS" "TYPEWRITER" '
justify ' "FIRST" "BEGIN" "MIDDLE" "END" ' -->
<!ELEMENT ScreenGroup (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST ScreenGroup
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<![%RigidBodyPhysicsComponent;[
<!ELEMENT BallJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)*)>
<!ATTLIST BallJoint
anchorPoint %SFVec3f; "0 0 0"
forceOutput %MFString; "NONE"
containerField NMTOKEN "joints"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CollidableOffset (IS?, (%MetadataNodes;)?, (CollidableOffset | CollidableShape | %WildcardNodes;)? )>
<!ATTLIST CollidableOffset
enabled %SFBool; "true"
rotation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CollidableShape (IS?, (%MetadataNodes;)?, (Shape | %WildcardNodes;)? )>
<!ATTLIST CollidableShape
enabled %SFBool; "true"
rotation %SFRotation; "0 0 1 0"
translation %SFVec3f; "0 0 0"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CollisionCollection (IS?, (%MetadataNodes;)?, (CollidableOffset | CollidableShape | CollisionSpace | %WildcardNodes;)* )>
<!ATTLIST CollisionCollection
appliedParameters %MFString; "BOUNCE"
bounce %SFFloat; "0"
enabled %SFBool; "true"
frictionCoefficients %SFVec2f; "0 0"
minBounceSpeed %SFFloat; "0.1"
slipFactors %SFVec2f; "0 0"
softnessConstantForceMix %SFFloat; "0.0001"
softnessErrorCorrection %SFFloat; "0.8"
surfaceSpeed %SFVec2f; "0 0"
containerField NMTOKEN "collider"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CollisionSensor (IS?, (%MetadataNodes;)?, (CollisionCollection | %WildcardNodes;)? )>
<!ATTLIST CollisionSensor
enabled %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CollisionSpace (IS?, (%MetadataNodes;)?, (CollidableOffset | CollidableShape | CollisionSpace | %WildcardNodes;)* )>
<!ATTLIST CollisionSpace
useGeometry %SFBool; "false"
enabled %SFBool; "true"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT Contact (IS?, (%MetadataNodes;)?, (RigidBody | CollidableOffset | CollidableShape | %WildcardNodes;)* )>
<!ATTLIST Contact
appliedParameters %MFString; "BOUNCE"
bounce %SFFloat; "0"
contactNormal %SFVec3f; "0 1 0"
depth %SFFloat; "0"
frictionCoefficients %SFVec2f; "0 0"
frictionDirection %SFVec3f; "0 1 0"
minBounceSpeed %SFFloat; "0"
position %SFVec3f; "0 0 0"
slipCoefficients %SFVec2f; "0 0"
softnessConstantForceMix %SFFloat; "0.0001"
softnessErrorCorrection %SFFloat; "0.8"
surfaceSpeed %SFVec2f; "0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT DoubleAxisHingeJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)* )>
<!ATTLIST DoubleAxisHingeJoint
anchorPoint %SFVec3f; "0 1 0"
axis1 %SFVec3f; "0 1 0"
axis2 %SFVec3f; "0 1 0"
desiredAngularVelocity1 %SFFloat; "0"
desiredAngularVelocity2 %SFFloat; "0"
maxAngle1 %SFFloat; "3.141592653"
maxTorque1 %SFFloat; "0"
maxTorque2 %SFFloat; "0"
minAngle1 %SFFloat; "-3.141592653"
forceOutput %MFString; "NONE"
stop1Bounce %SFFloat; "0"
stop1ConstantForceMix %SFFloat; "0.001"
stop1ErrorCorrection %SFFloat; "0.8"
suspensionErrorCorrection %SFFloat; "0.8"
suspensionForce %SFFloat; "0"
containerField NMTOKEN "joints"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT MotorJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)* )>
<!ATTLIST MotorJoint
autoCalc %SFBool; "false"
axis1Angle %SFFloat; "0"
axis1Torque %SFFloat; "0"
axis2Angle %SFFloat; "0"
axis2Torque %SFFloat; "0"
axis3Angle %SFFloat; "0"
axis3Torque %SFFloat; "0"
enabledAxes (0|1|2|3) "1"
forceOutput %MFString; "NONE"
motor1Axis %SFVec3f; "0 0 0"
motor2Axis %SFVec3f; "0 0 0"
motor3Axis %SFVec3f; "0 0 0"
stop1Bounce %SFFloat; "0"
stop1ErrorCorrection %SFFloat; "0.8"
stop2Bounce %SFFloat; "0"
stop2ErrorCorrection %SFFloat; "0.8"
stop3Bounce %SFFloat; "0"
stop3ErrorCorrection %SFFloat; "0.8"
containerField NMTOKEN "joints"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT RigidBody (IS?, (%MetadataNodes;)?, (Sphere | Box | Cone )?, (CollidableOffset | CollidableShape | %WildcardNodes;)* )>
<!ATTLIST RigidBody
angularDampingFactor %SFFloat; "0.001"
angularVelocity %SFVec3f; "0 0 0"
autoDamp %SFBool; "false"
autoDisable %SFBool; "false"
centerOfMass %SFVec3f; "0 0 0"
disableAngularSpeed %SFFloat; "0"
disableLinearSpeed %SFFloat; "0"
disableTime %SFTime; "0"
enabled %SFBool; "true"
finiteRotationAxis %SFVec3f; "0 1 0"
fixed %SFBool; "false"
forces %MFVec3f; #IMPLIED
inertia %SFMatrix3f; "1 0 0 0 1 0 0 0 1"
linearDampingFactor %SFFloat; "0.001"
linearVelocity %SFVec3f; "0 0 0"
mass %SFFloat; "1"
orientation %SFRotation; "0 0 1 0"
position %SFVec3f; "0 0 0"
torques %MFVec3f; #IMPLIED
useFiniteRotation %SFBool; "false"
useGlobalGravity %SFBool; "true"
containerField (body1 | body2 | bodies) "bodies"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT RigidBodyCollection (IS?, (%MetadataNodes;)?, (RigidBody | BallJoint | DoubleAxisHingeJoint | MotorJoint | SingleAxisHingeJoint | SliderJoint | UniversalJoint | CollisionCollection | %WildcardNodes;)* )>
<!ATTLIST RigidBodyCollection
autoDisable %SFBool; "false"
constantForceMix %SFFloat; "0.0001"
contactSurfaceThickness %SFFloat; "0"
disableAngularSpeed %SFFloat; "0"
disableLinearSpeed %SFFloat; "0"
disableTime %SFTime; "0"
enabled %SFBool; "true"
errorCorrection %SFFloat; "0.8"
gravity %SFVec3f; "0 -9.8 0"
iterations %SFInt32; "10"
maxCorrectionSpeed %SFFloat; "-1"
preferAccuracy %SFBool; "false"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT SingleAxisHingeJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)* )>
<!ATTLIST SingleAxisHingeJoint
anchorPoint %SFVec3f; "0 0 0"
axis %SFVec3f; "0 0 0"
maxAngle %SFFloat; "3.141592653"
minAngle %SFFloat; "-3.141592653"
forceOutput %MFString; "NONE"
stopBounce %SFFloat; "0"
stopErrorCorrection %SFFloat; "0.8"
containerField NMTOKEN "joints"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT SliderJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)* )>
<!ATTLIST SliderJoint
axis %SFVec3f; "0 1 0"
forceOutput %MFString; "NONE"
maxSeparation %SFFloat; "1"
minSeparation %SFFloat; "0"
sliderForce %SFFloat; "0"
stopBounce %SFFloat; "0"
stopErrorCorrection %SFFloat; "1"
containerField NMTOKEN "joints"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT UniversalJoint (IS?, (%MetadataNodes;)?, (RigidBody | %WildcardNodes;)* )>
<!ATTLIST UniversalJoint
anchorPoint %SFVec3f; "0 0 0"
axis1 %SFVec3f; "0 0 0"
axis2 %SFVec3f; "0 0 0"
forceOutput %MFString; "NONE"
stop1Bounce %SFFloat; "0"
stop1ErrorCorrection %SFFloat; "0.8"
stop2Bounce %SFFloat; "0"
stop2ErrorCorrection %SFFloat; "0.8"
containerField NMTOKEN "joints"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<![%PickingSensorComponent;[
<!-- Content model for X3DPickingSensorNode types first has varied singleton pickingGeometry node, followed by pickTarget -->
<!ELEMENT LinePickSensor (IS?, (%MetadataNodes;)?, (IndexedLineSet | LineSet | %WildcardNodes;)?, (%GroupingNodes; | Inline | %WildcardNodes;)* )>
<!ATTLIST LinePickSensor
enabled %SFBool; "true"
objectType %MFString; "ALL"
intersectionType %SFString; "BOUNDS"
sortOrder %SFString; "CLOSEST"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PickableGroup (IS?, (%MetadataNodes;)?, (%ChildrenNodes; | %WildcardNodes;)*)>
<!ATTLIST PickableGroup
objectType %MFString; "ALL"
pickable %SFBool; "true"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PointPickSensor (IS?, (%MetadataNodes;)?, (PointSet | %WildcardNodes;)?, (%GroupingNodes; | Shape | Inline | %WildcardNodes;)* )>
<!ATTLIST PointPickSensor
enabled %SFBool; "true"
objectType %MFString; "ALL"
intersectionType %SFString; "BOUNDS"
sortOrder %SFString; "CLOSEST"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PrimitivePickSensor (IS?, (%MetadataNodes;)?, (Box|Cone|Cylinder|Sphere)?, (%GroupingNodes; | Shape | Inline | %WildcardNodes;)* )>
<!ATTLIST PrimitivePickSensor
enabled %SFBool; "true"
objectType %MFString; "ALL"
intersectionType %SFString; "BOUNDS"
sortOrder %SFString; "CLOSEST"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT VolumePickSensor (IS?, (%MetadataNodes;)?, (%GeometryNodes; | %WildcardNodes;)?, (%GroupingNodes; | Shape | Inline | %WildcardNodes;)* )>
<!ATTLIST VolumePickSensor
enabled %SFBool; "true"
objectType %MFString; "ALL"
intersectionType %SFString; "BOUNDS"
sortOrder %SFString; "CLOSEST"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<![%FollowersComponent;[
<!ELEMENT ColorChaser (IS?, (%MetadataNodes;)? )>
<!ATTLIST ColorChaser
duration %SFTime; "1"
initialDestination %SFColor; "0.8 0.8 0.8"
initialValue %SFColor; "0.8 0.8 0.8"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ColorDamper (IS?, (%MetadataNodes;)? )>
<!ATTLIST ColorDamper
tau %SFTime; "0.3"
tolerance %SFFloat; "-1"
initialDestination %SFColor; "0.8 0.8 0.8"
initialValue %SFColor; "0.8 0.8 0.8"
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CoordinateChaser (IS?, (%MetadataNodes;)? )>
<!ATTLIST CoordinateChaser
duration %SFTime; "1"
initialDestination %MFVec3f; "0 0 0"
initialValue %MFVec3f; "0 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CoordinateDamper (IS?, (%MetadataNodes;)? )>
<!ATTLIST CoordinateDamper
tau %SFTime; "0.3"
tolerance %SFFloat; "-1"
initialDestination %MFVec3f; "0 0 0"
initialValue %MFVec3f; "0 0 0"
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT OrientationChaser (IS?, (%MetadataNodes;)? )>
<!ATTLIST OrientationChaser
duration %SFTime; "1"
initialDestination %MFVec3f; "0 1 0 0"
initialValue %MFVec3f; "0 1 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT OrientationDamper (IS?, (%MetadataNodes;)? )>
<!ATTLIST OrientationDamper
tau %SFTime; "0.3"
tolerance %SFFloat; "-1"
initialDestination %SFRotation; "0 1 0 0"
initialValue %SFRotation; "0 1 0 0"
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PositionChaser (IS?, (%MetadataNodes;)? )>
<!ATTLIST PositionChaser
duration %SFTime; "1"
initialDestination %SFVec3f; "0 0 0"
initialValue %SFVec3f; "0 0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PositionChaser2D (IS?, (%MetadataNodes;)? )>
<!ATTLIST PositionChaser2D
duration %SFTime; "1"
initialDestination %SFVec2f; "0 0"
initialValue %SFVec2f; "0 0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PositionDamper (IS?, (%MetadataNodes;)? )>
<!ATTLIST PositionDamper
tau %SFTime; "0.3"
tolerance %SFFloat; "-1"
initialDestination %SFVec3f; "0 0 0"
initialValue %SFVec3f; "0 0 0"
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PositionDamper2D (IS?, (%MetadataNodes;)? )>
<!ATTLIST PositionDamper2D
tau %SFTime; "0.3"
tolerance %SFFloat; "-1"
initialDestination %SFVec2f; "0 0"
initialValue %SFVec2f; "0 0"
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ScalarChaser (IS?, (%MetadataNodes;)? )>
<!ATTLIST ScalarChaser
duration %SFTime; "1"
initialDestination %SFFloat; "0"
initialValue %SFFloat; "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ScalarDamper (IS?, (%MetadataNodes;)? )>
<!ATTLIST ScalarDamper
tau %SFTime; "0.3"
tolerance %SFFloat; "-1"
initialDestination %SFFloat; "0"
initialValue %SFFloat; "0"
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT TexCoordChaser2D (IS?, (%MetadataNodes;)? )>
<!ATTLIST TexCoordChaser2D
duration %SFTime; "1"
initialDestination %MFVec2f; #IMPLIED
initialValue %MFVec2f; #IMPLIED
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT TexCoordDamper2D (IS?, (%MetadataNodes;)? )>
<!ATTLIST TexCoordDamper2D
tau %SFTime; "0.3"
tolerance %SFFloat; "-1"
initialDestination %MFVec2f; #IMPLIED
initialValue %MFVec2f; #IMPLIED
order (0 | 1 | 2 | 3 | 4 | 5) "0"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<![%ParticleSystemsComponent;[
<!ELEMENT BoundedPhysicsModel (IS?, (%MetadataNodes;)?, (%GeometryNodes; | %WildcardNodes;)? )>
<!ATTLIST BoundedPhysicsModel
enabled %SFBool; "true"
containerField NMTOKEN "physics"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ForcePhysicsModel (IS?, (%MetadataNodes;)? )>
<!ATTLIST ForcePhysicsModel
enabled %SFBool; "true"
force %SFVec3f; "0 -9.8 0"
containerField NMTOKEN "physics"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT WindPhysicsModel (IS?, (%MetadataNodes;)? )>
<!ATTLIST WindPhysicsModel
direction %SFVec3f; "1 0 0"
enabled %SFBool; "true"
gustiness %SFFloat; "0.1"
speed %SFFloat; "0.1"
turbulence %SFFloat; "0"
containerField NMTOKEN "physics"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ConeEmitter (IS?, (%MetadataNodes;)? )>
<!ATTLIST ConeEmitter
angle %SFFloat; "0.7854"
direction %SFVec3f; "0 1 0"
position %SFVec3f; "0 0 0"
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ExplosionEmitter (IS?, (%MetadataNodes;)? )>
<!ATTLIST ExplosionEmitter
position %SFVec3f; "0 0 0"
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PointEmitter (IS?, (%MetadataNodes;)? )>
<!ATTLIST PointEmitter
direction %SFVec3f; "0 1 0"
position %SFVec3f; "0 0 0"
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT PolylineEmitter (IS?, (%MetadataNodes;)?, (Coordinate | CoordinateDouble | %WildcardNodes;)? )>
<!ATTLIST PolylineEmitter
direction %SFVec3f; "0 1 0"
coordIndex %MFInt32; "-1"
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT SurfaceEmitter (IS?, (%MetadataNodes;)?, (%GeometryNodes; | %WildcardNodes;)? )>
<!ATTLIST SurfaceEmitter
coordIndex %MFInt32; "-1"
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT VolumeEmitter (IS?, (%MetadataNodes;)?, (Coordinate | CoordinateDouble | %WildcardNodes;)? )>
<!ATTLIST VolumeEmitter
direction %SFVec3f; "0 1 0"
coordIndex %MFInt32; "-1"
internal %SFBool; "true"
speed %SFFloat; "0"
variation %SFFloat; "0.25"
mass %SFFloat; "0"
surfaceArea %SFFloat; "0"
containerField NMTOKEN "emitter"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ParticleSystem
((IS?, (%MetadataNodes;)?),
(
( %AppearanceNodes;, ( %GeometryNodes; | %WildcardNodes; )? ) |
( (%GeometryNodes;), ( %AppearanceNodes; | %WildcardNodes; )? ) |
( %WildcardNodes;, ( %GeometryNodes; | %AppearanceNodes; | %WildcardNodes; )? )
)?,
(Color | ColorRGBA | %WildcardNodes;),
(ConeEmitter | ExplosionEmitter | PointEmitter | PolylineEmitter | SurfaceEmitter | VolumeEmitter | %WildcardNodes;)?,
(BoundedPhysicsModel | ForcePhysicsModel | WindPhysicsModel | %WildcardNodes;)*,
(TextureCoordinate | %WildcardNodes;)?
)
>
<!ATTLIST ParticleSystem
createParticles %SFBool; "true"
enabled %SFBool; "true"
lifetimeVariation %SFFloat; "0.25"
maxParticles %SFInt32; "200"
particleLifetime %SFFloat; "5"
particleSize %SFVec2f; "0.02 0.02"
colorKey %MFFloat; #IMPLIED
texCoordKey %MFFloat; #IMPLIED
geometryType %SFString; "QUAD"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
class NMTOKENS #IMPLIED
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
]]>
<!-- v3.3 -->
<!ENTITY % unitCategories "(angle|force|length|mass)">
<!ELEMENT unit EMPTY>
<!ATTLIST unit
category %unitCategories; #REQUIRED
name NMTOKEN #REQUIRED
conversionFactor %SFDouble; #REQUIRED>
<!ELEMENT MetadataBoolean (IS?, (%MetadataNodes; | %WildcardNodes;)?)>
<!ATTLIST MetadataBoolean
name %SFString; #IMPLIED
value %MFBool; #IMPLIED
reference %SFString; #IMPLIED
containerField %MetadataContainerFieldValues; "metadata"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<![%VolumeRenderComponent;[
<!ELEMENT BlendedVolumeStyle (IS?, (%MetadataNodes;)?, (%X3DComposableVolumeRenderStyleNode; | %Texture2DNodes; | %Texture3DTextureNodes; | %WildcardNodes;)* )>
<!ATTLIST BlendedVolumeStyle
enabled %SFBool; "true"
weightConstant1 %SFFloat; "0.5"
weightConstant2 %SFFloat; "0.5"
weightFunction1 (CONSTANT|ALPHA0|ALPHA1|TABLE|ONE_MINUS_ALPHA0|ONE_MINUS_ALPHA1) "CONSTANT"
weightFunction2 (CONSTANT|ALPHA0|ALPHA1|TABLE|ONE_MINUS_ALPHA0|ONE_MINUS_ALPHA1) "CONSTANT"
containerField NMTOKEN "renderStyle"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT BoundaryEnhancementVolumeStyle (IS?, (%MetadataNodes;)?)>
<!ATTLIST BoundaryEnhancementVolumeStyle
enabled %SFBool; "true"
boundaryOpacity %SFFloat; "0.9"
opacityFactor %SFFloat; "2"
retainedOpacity %SFFloat; "0.2"
containerField NMTOKEN "renderStyle"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT CartoonVolumeStyle (IS?, (%MetadataNodes;)?, (%Texture3DTextureNodes; | %WildcardNodes;)? )>
<!ATTLIST CartoonVolumeStyle
enabled %SFBool; "true"
colorSteps (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64) "4"
orthogonalColor %SFColorRGBA; "1 1 1 1"
parallelColor %SFColorRGBA; "0 0 0 1"
containerField NMTOKEN "renderStyle"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ComposedVolumeStyle (IS?, (%MetadataNodes;)?, (%X3DComposableVolumeRenderStyleNode; | %WildcardNodes;)* )>
<!ATTLIST ComposedVolumeStyle
enabled %SFBool; "true"
containerField NMTOKEN "renderStyle"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT EdgeEnhancementVolumeStyle (IS?, (%MetadataNodes;)?, (%Texture3DTextureNodes; | %WildcardNodes;)? )>
<!ATTLIST EdgeEnhancementVolumeStyle
enabled %SFBool; "true"
edgeColor %SFColorRGBA; "0 0 0 1"
gradientThreshold %SFFloat; "0.4"
containerField NMTOKEN "renderStyle"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT OpacityMapVolumeStyle (IS?, (%MetadataNodes;)?, (%Texture3DTextureNodes; | %WildcardNodes;)? )>
<!ATTLIST OpacityMapVolumeStyle
enabled %SFBool; "true"
containerField NMTOKEN "renderStyle"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- TODO can transferFunction field hold 2D textures? spec unclear... -->
<!ELEMENT ProjectionVolumeStyle (IS?, (%MetadataNodes;)?)>
<!ATTLIST ProjectionVolumeStyle
enabled %SFBool; "true"
intensityThreshold %SFFloat; "0"
type (MAX|MIN|AVERAGE) "MAX"
containerField NMTOKEN "renderStyle"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ShadedVolumeStyle (IS?, (%MetadataNodes;)?, (%MaterialNodes;)?, (%Texture3DTextureNodes; | %WildcardNodes;)? )>
<!ATTLIST ShadedVolumeStyle
enabled %SFBool; "true"
lighting %SFBool; "false"
shadows %SFBool; "false"
enabled %SFBool; "true"
phaseFunction (NONE|Henyey-Greenstein) "Henyey-Greenstein"
containerField NMTOKEN "renderStyle"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- TODO consider allowing alternate ordering of content model -->
<!ELEMENT SilhouetteEnhancementVolumeStyle (IS?, (%MetadataNodes;)?, (%Texture3DTextureNodes; | %WildcardNodes;)? )>
<!ATTLIST SilhouetteEnhancementVolumeStyle
enabled %SFBool; "true"
silhouetteBoundaryOpacity %SFFloat; "0"
silhouetteRetainedOpacity %SFFloat; "1"
silhouetteSharpness %SFFloat; "0.5"
containerField NMTOKEN "renderStyle"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT ToneMappedVolumeStyle (IS?, (%MetadataNodes;)?, (%Texture3DTextureNodes; | %WildcardNodes;)? )>
<!ATTLIST ToneMappedVolumeStyle
enabled %SFBool; "true"
coolColor %SFColorRGBA; "0 0 1 0"
warmColor %SFColorRGBA; "1 1 0 0"
containerField NMTOKEN "renderStyle"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT IsoSurfaceVolumeData (IS?, (%MetadataNodes;)?, (%X3DComposableVolumeRenderStyleNode; | %Texture2DNodes; | %Texture3DTextureNodes; | %WildcardNodes;)* )>
<!ATTLIST IsoSurfaceVolumeData
contourStepSize %SFFloat; "0"
dimensions %SFVec3f; "1 1 1"
surfaceTolerance %SFFloat; "0"
surfaceValues %MFFloat; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT SegmentedVolumeData (IS?, (%MetadataNodes;)?, (%X3DComposableVolumeRenderStyleNode; | %Texture2DNodes; | %Texture3DTextureNodes; | %WildcardNodes;)* )>
<!ATTLIST SegmentedVolumeData
dimensions %SFVec3f; "1 1 1"
segmentEnabled %MFBool; #IMPLIED
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!ELEMENT VolumeData (IS?, (%MetadataNodes;)?, (%X3DComposableVolumeRenderStyleNode; | %Texture2DNodes; | %Texture3DTextureNodes; | %WildcardNodes;)* )>
<!ATTLIST VolumeData
dimensions %SFVec3f; "1 1 1"
bboxCenter %SFVec3f; "0 0 0"
bboxSize %SFVec3f; "-1 -1 -1"
containerField NMTOKEN "children"
DEF ID #IMPLIED
USE IDREF #IMPLIED
>
<!-- TODO consider allowing alternate ordering of content model -->
]]>
<!-- ============= -->
<!-- Finally, Web3dExtensionComponent from separate DTDs. Note that Web3dExtensionComponent
content-model extensions needed to be added at beginning, prior to node-type definitions. -->
<![%Web3dExtensionComponent;[
<!ENTITY % Web3dExtensionsPublicDTD SYSTEM "x3d-3.3-Web3dExtensionsPublic.dtd">
<!ENTITY % Web3dExtensionsPrivateDTD SYSTEM "x3d-3.3-Web3dExtensionsPrivate.dtd">
%Web3dExtensionsPublicDTD;
%Web3dExtensionsPrivateDTD;
]]>
x3d-3.3-InputOutputFields.dtd extends the X3D version 3.3 DTD by also
including fields with accessType inputOnly and outputOnly.
Although X3D scene files cannot validly set values for any of these attributes,
the DTD defines names and relationships of all fields and can be used by
DTD-aware processing tools.
<!-- # # X3D InputOutputFields DTD: # # http://www.web3d.org/specifications/x3d-3.3-InputOutputFields.dtd # # current version: 3.3.0 # # revised: 18 July 2011 # # Author: Don Brutzman # # Purpose: the primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by field definitions in x3d-3.3-InputOutputFields.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.3.dtd # http://www.web3d.org/specifications/x3d-3.3-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.3-Web3dExtensions.dtd # # Typical system location for this resource is adjacent to x3d-3.3.dtd: # file://c:/www.web3d.org/specifications/x3d-3.3-InputOutputFields.dtd # file:///www.web3d.org/specifications/x3d-3.3-InputOutputFields.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # # Note on typing: # CDATA used for %SFBool; definitions to allow #FIXED "" initialization, # since DTD rules otherwise require enumeration values to be # initialized to true|false. # --> <!ATTLIST AudioClip elapsedTime %SFTime; #FIXED "" duration_changed %SFTime; #FIXED "" isPaused CDATA #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST Background set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST BooleanFilter set_boolean CDATA #FIXED "" inputTrue CDATA #FIXED "" inputFalse CDATA #FIXED "" inputNegate CDATA #FIXED ""> <!-- value_changed is CDATA instead of %SFBool% in order to set empty value on an enumeration --> <!ATTLIST BooleanSequencer set_fraction %SFFloat; #FIXED "" value_changed CDATA #FIXED "" previous CDATA #FIXED "" next CDATA #FIXED ""> <!ATTLIST BooleanToggle set_boolean CDATA #FIXED ""> <!ATTLIST BooleanTrigger set_triggerTime %SFTime; #FIXED "" triggerTrue CDATA #FIXED ""> <!ATTLIST Collision collideTime %SFTime; #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST ColorInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFColor; #FIXED ""> <!ATTLIST CoordinateInterpolator set_fraction %SFFloat; #FIXED "" value_changed %MFVec3f; #FIXED ""> <!ATTLIST CoordinateInterpolator2D set_fraction %SFFloat; #FIXED "" value_changed %MFVec2f; #FIXED ""> <!ATTLIST CylinderSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" rotation_changed %SFRotation; #FIXED "" trackPoint_changed %SFVec3f; #FIXED ""> <!ATTLIST ElevationGrid set_height %MFFloat; #FIXED ""> <!ATTLIST Extrusion set_crossSection %MFVec2f; #FIXED "" set_orientation %MFRotation; #FIXED "" set_scale %MFVec2f; #FIXED "" set_spine %MFVec3f; #FIXED ""> <!ATTLIST Fog set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST IndexedFaceSet set_colorIndex %MFInt32; #FIXED "" set_coordIndex %MFInt32; #FIXED "" set_normalIndex %MFInt32; #FIXED "" set_texCoordIndex %MFInt32; #FIXED ""> <!ATTLIST IndexedLineSet set_colorIndex %MFInt32; #FIXED "" set_coordIndex %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleFanSet set_index %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleSet set_index %MFInt32; #FIXED ""> <!ATTLIST IndexedTriangleStripSet set_index %MFInt32; #FIXED ""> <!ATTLIST IntegerSequencer set_fraction %SFFloat; #FIXED "" value_changed %SFInt32; #FIXED "" previous CDATA #FIXED "" next CDATA #FIXED ""> <!ATTLIST IntegerTrigger set_boolean CDATA #FIXED "" triggerValue %SFInt32; #FIXED ""> <!ATTLIST KeySensor isActive CDATA #FIXED "" keyPress %SFString; #FIXED "" keyRelease %SFString; #FIXED "" actionKeyPress %SFInt32; #FIXED "" actionKeyRelease %SFInt32; #FIXED "" altKey CDATA #FIXED "" controlKey CDATA #FIXED "" shiftKey CDATA #FIXED ""> <!ATTLIST LoadSensor isActive CDATA #FIXED "" isLoaded CDATA #FIXED "" loadTime %SFTime; #FIXED "" progress %SFFloat; #FIXED ""> <!ATTLIST LOD level_changed %SFInt32; #FIXED ""> <!ATTLIST MovieTexture elapsedTime %SFTime; #FIXED "" duration_changed %SFTime; #FIXED "" isPaused CDATA #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST NavigationInfo set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" transitionComplete CDATA #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST NormalInterpolator set_fraction %SFFloat; #FIXED "" value_changed %MFVec3f; #FIXED ""> <!ATTLIST OrientationInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFRotation; #FIXED ""> <!ATTLIST PlaneSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" trackPoint_changed %SFVec3f; #FIXED "" translation_changed %SFVec3f; #FIXED ""> <!ATTLIST PositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED ""> <!ATTLIST PositionInterpolator2D set_fraction %SFFloat; #FIXED "" value_changed %SFVec2f; #FIXED ""> <!ATTLIST ProximitySensor isActive CDATA #FIXED "" position_changed %SFVec3f; #FIXED "" orientation_changed %SFRotation; #FIXED "" centerOfRotation_changed %SFVec3f; #FIXED "" enterTime %SFTime; #FIXED "" exitTime %SFTime; #FIXED ""> <!ATTLIST ScalarInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFFloat; #FIXED ""> <!ATTLIST SphereSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" rotation_changed %SFRotation; #FIXED "" trackPoint_changed %SFVec3f; #FIXED ""> <!ATTLIST StringSensor isActive CDATA #FIXED "" enteredText %SFString; #FIXED "" finalText %SFString; #FIXED ""> <!ATTLIST Text lineBounds %MFVec2f; #FIXED "" textBounds %SFVec2f; #FIXED ""> <!ATTLIST TextureBackground set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST TimeSensor elapsedTime %SFTime; #FIXED "" cycleTime %SFTime; #FIXED "" fraction_changed %SFFloat; #FIXED "" isActive CDATA #FIXED "" isPaused CDATA #FIXED "" time %SFTime; #FIXED ""> <!ATTLIST TimeTrigger set_boolean CDATA #FIXED "" triggerTime %SFTime; #FIXED ""> <!ATTLIST TouchSensor hitNormal_changed %SFVec3f; #FIXED "" hitPoint_changed %SFVec3f; #FIXED "" hitTexCoord_changed %SFVec2f; #FIXED "" isActive CDATA #FIXED "" isOver CDATA #FIXED "" touchTime %SFTime; #FIXED ""> <!ATTLIST Viewpoint set_bind CDATA #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST VisibilitySensor enterTime %SFTime; #FIXED "" exitTime %SFTime; #FIXED "" isActive CDATA #FIXED ""> <!ATTLIST EspduTransform isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" set_articulationParameterValue0 %SFFloat; #FIXED "" set_articulationParameterValue1 %SFFloat; #FIXED "" set_articulationParameterValue2 %SFFloat; #FIXED "" set_articulationParameterValue3 %SFFloat; #FIXED "" set_articulationParameterValue4 %SFFloat; #FIXED "" set_articulationParameterValue5 %SFFloat; #FIXED "" set_articulationParameterValue6 %SFFloat; #FIXED "" set_articulationParameterValue7 %SFFloat; #FIXED "" articulationParameterValue0_changed %SFFloat; #FIXED "" articulationParameterValue1_changed %SFFloat; #FIXED "" articulationParameterValue2_changed %SFFloat; #FIXED "" articulationParameterValue3_changed %SFFloat; #FIXED "" articulationParameterValue4_changed %SFFloat; #FIXED "" articulationParameterValue5_changed %SFFloat; #FIXED "" articulationParameterValue6_changed %SFFloat; #FIXED "" articulationParameterValue7_changed %SFFloat; #FIXED "" isCollided CDATA #FIXED "" collideTime %SFTime; #FIXED "" isDetonated CDATA #FIXED "" detonateTime %SFTime; #FIXED "" firedTime %SFTime; #FIXED "" > <!ATTLIST ReceiverPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST SignalPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST TransmitterPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" isRtpHeaderHeard CDATA #FIXED "" isActive CDATA #FIXED "" timestamp %SFTime; #FIXED "" > <!ATTLIST GeoElevationGrid set_height %MFDouble; #FIXED ""> <!ATTLIST GeoPositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED "" geovalue_changed %SFVec3d; #FIXED ""> <!ATTLIST GeoTouchSensor isActive CDATA #FIXED "" isOver CDATA #FIXED "" touchTime %SFTime; #FIXED "" hitGeoCoord_changed %SFVec3d; #FIXED "" hitNormal_changed %SFVec3f; #FIXED "" hitPoint_changed %SFVec3f; #FIXED "" hitTexCoord_changed %SFVec2f; #FIXED ""> <!ATTLIST GeoViewpoint set_bind CDATA #FIXED "" set_orientation %SFRotation; #FIXED "" set_position %SFVec3d; #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST NurbsOrientationInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFRotation; #FIXED ""> <!ATTLIST NurbsPositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED ""> <!ATTLIST NurbsSurfaceInterpolator set_fraction %SFVec2f; #FIXED "" normal_changed %SFVec3f; #FIXED "" position_changed %SFVec3f; #FIXED ""> <!ATTLIST IndexedQuadSet set_index %MFInt32; #FIXED ""> <!ATTLIST ComposedShader isSelected CDATA #FIXED "" isValid CDATA #FIXED "" activate CDATA #FIXED ""> <!ATTLIST PackagedShader isSelected CDATA #FIXED "" isValid CDATA #FIXED "" activate CDATA #FIXED ""> <!ATTLIST ProgramShader isSelected CDATA #FIXED "" isValid CDATA #FIXED "" activate CDATA #FIXED "">
The public X3D DTD extension will be used to contain approved extensions that have not yet been included in Part 1 of ISO/IEC 19775. The form of the public X3D DTD extension is depicted below:
<!-- # # X3D Web3D Extensions Public DTD: # # http://www.web3d.org/specifications/x3d-3.3-Web3dExtensionsPublic.dtd # # current version: 3.3.0 # # created: 30 April 2005 # revised: 18 July 2011 # # Maintainer: Don Brutzman # # Purpose: support Web3D Consortium extensions to the X3D tagset. # The primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by node definitions in x3d-3.3-Web3dExtensionsPublic.dtd # and x3d-3.3-Web3dExtensionsPrivate.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.3.dtd # http://www.web3d.org/specifications/x3d-3.3-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.3-Web3dExtensionsPublic.dtd # http://www.web3d.org/specifications/x3d-3.3-Web3dExtensionsPrivate.dtd # # Web3D extensions update URL: # http://www.web3d.org/x3d/content/x3d-3.3-Web3dExtensionsPublic.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # --> <!-- ================================================================= --> <!ENTITY % LatticeXvlComponent "INCLUDE"> <!-- LatticeXVL 1.0 Document Type Definition (DTD) Description: Define the XVL tag and attribute profile for X3D. This X3D native node corresponds to a VRML ExternProto declaration. Elements in this tagset are enabled by setting the XvlProfile entity to "INCLUDE" at the top of an X3D scene file, as shown in several examples such as examples/LatticeXvl/XvlShellAll.x3d. This flag then triggers inclusion of the XVL tags in the x3d-3.3.dtd tagset. Status: Complete Authors: Lattice Technology, Inc. proposed the Xvl extensions, Makito Seki produced XML encoding of XVL nodes for X3D with additional work by Marc Jablonski and Don Brutzman Reference: LatticeXvl extension for X3D http://www.web3d.org/x3d/content/examples/LatticeXvl/doc/proposal/LatticeProposal.html http://www.Xvl3D.com Issues: Mark Jablonski maintains the list. Created: 10 May 2001 --> <![%LatticeXvlComponent;[ <!-- for future: G1T1 level --> <!ENTITY % XvlG1T1ShellTypes "" > <!-- Types of XVL Shells --> <!ENTITY % XvlShell.shellTypes " %XvlG1T1ShellTypes; POLYGON_MESH | LATTICE_MESH " > <!ELEMENT XvlShell (IS?, (%MetadataNodes;)?, ( ( (%TextureCoordinateNodes;), ((%CoordinateNodes;) | %WildcardNodes;) ) | ( (%CoordinateNodes;), ((%TextureCoordinateNodes;) | %WildcardNodes;)? ) | ( %WildcardNodes;, ((%TextureCoordinateNodes;) | (%CoordinateNodes;) | %WildcardNodes;)?) )? )> <!ATTLIST XvlShell shellType ( %XvlShell.shellTypes; ) #IMPLIED numberOfDivisions %SFInt32; #IMPLIED vertexRound %MFFloat; #IMPLIED edgeBeginCoordIndex %MFInt32; #IMPLIED edgeEndCoordIndex %MFInt32; #IMPLIED edgeRound %MFFloat; #IMPLIED edgeBeginVector %MFVec3f; #IMPLIED edgeEndVector %MFVec3f; #IMPLIED faceCoordIndex %MFInt32; #IMPLIED faceTexCoordIndex %MFInt32; #IMPLIED faceEmpty %MFBool; #IMPLIED faceHidden %MFBool; #IMPLIED containerField NMTOKEN "geometry" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!-- ================================================================= -->
The private X3D DTD extension will be used to contain X3D extensions that have not been approved but may exist for testing future development. The form of the private X3D DTD extension is depicted below:
<!-- # # X3D Web3D Extensions Private DTD: # # http://www.web3d.org/specifications/x3d-3.3-Web3dExtensionsPrivate.dtd # # current version: 3.3.0 # # created: 30 April 2005 # revised: 18 July 2011 # # Maintainer: Don Brutzman # # Purpose: support Web3D Consortium extensions to the X3D tagset. # The primary Extensible 3D (X3D) Document Type Definition (DTD) # is augmented by node definitions in x3d-3.3-Web3dExtensionsPublic.dtd # and x3d-3.3-Web3dExtensionsPrivate.dtd # # X3D Specification DTDs: # http://www.web3d.org/specifications/x3d-3.3.dtd # http://www.web3d.org/specifications/x3d-3.3-InputOutputFields.dtd # http://www.web3d.org/specifications/x3d-3.3-Web3dExtensionsPublic.dtd # http://www.web3d.org/specifications/x3d-3.3-Web3dExtensionsPrivate.dtd # # Web3D extensions update URL: # http://www.web3d.org/x3d/content/x3d-3.3-Web3dExtensionsPublic.dtd # # changelog: # http://www.web3d.org/specifications/x3d-dtd-changelog.txt # --> <!-- ================================================================= --> <!-- Enter ELEMENT and ATTLIST definitions here --> <!-- ================================================================= -->