A.1.1
Replace Table A.1 with the following:
“
A.1 Table of contents and
introduction A.1.1 Table of contents A.1.2 Introduction |
A.2 x3d-3.0.dtd A.3 x3d-3.0-InputOutputFields.dtd A.4 x3d-3.1.dtd A.5 x3d-3.1-InputOutputFields.dtd |
”
A.2
Replace the content of A.2 with the following text:
“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.20 # # revised: 10 January 2006 # # 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 % NurbsGroupingNodes " NurbsOrientationInterpolator|NurbsPositionInterpolator|NurbsSurfaceInterpolator|NurbsSet|" > <!ENTITY % NurbsGeometryNodes " Contour2D|NurbsCurve|NurbsCurve2D|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|" > <!ENTITY % NurbsInterpolators " NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|" > <!ENTITY % NurbsControlCurveNodes " NurbsCurve2D|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 % NurbsGroupingNodes ""> <!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; %NurbsGroupingNodes; %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|ProtoInstance "> <!ENTITY % ProtoNodes " %OtherLeafNodes;|%AppearanceNodes;|%AppearanceChildNodes;|%BehaviorLeafNodes;|%BindableNodes;|%FontStyleNodes;|%GeometricPropertyNodes;|%GeometryNodes;|%GroupingNodes;|%MetadataNodes;|%SceneLeafNodes;|ProtoDeclare|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 Node or Nodes. --> <!ELEMENT field ( %ProtoNodes; )* > <!ATTLIST field name NMTOKEN #REQUIRED accessType (inputOnly|outputOnly|initializeOnly|inputOutput) #REQUIRED type ( %X3dFieldTypes; ) #REQUIRED value CDATA #IMPLIED xml:space (default|preserve) "default" 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;)?)> <!ATTLIST MetadataDouble name %SFString; #IMPLIED value %MFDouble; #IMPLIED reference %SFString; #IMPLIED containerField NMTOKEN "metadata" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT MetadataFloat (IS?, (%MetadataNodes;)?)> <!ATTLIST MetadataFloat name %SFString; #IMPLIED value %MFFloat; #IMPLIED reference %SFString; #IMPLIED containerField NMTOKEN "metadata" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT MetadataInteger (IS?, (%MetadataNodes;)?)> <!ATTLIST MetadataInteger name %SFString; #IMPLIED value %MFInt32; #IMPLIED reference %SFString; #IMPLIED containerField NMTOKEN "metadata" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT MetadataString (IS?, (%MetadataNodes;)?)> <!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;)*)> <!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 xml:space (default|preserve) #FIXED "preserve" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <![%NurbsComponent;[ <!ELEMENT Contour2D (IS?, (%MetadataNodes;)?, ( %NurbsControlCurveNodes;|%WildcardNodes; )* ) > <!ATTLIST Contour2D containerField NMTOKEN "trimmingContour" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT ContourPolyline2D ( (IS?), (%MetadataNodes;)? ) > <!ATTLIST ContourPolyline2D point %MFVec2f; #IMPLIED containerField NMTOKEN "children" class CDATA "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!-- Finally, add inputOnly/outputOnly attributes and Web3dExtensionComponent from separate DTDs. Note that Web3dExtensionComponent content-model extensions needed to be added at beginning, prior to node-type definitions. --> <![%X3dInputOutputFields;[ <!ENTITY % FieldsDTD SYSTEM "x3d-3.0-InputOutputFields.dtd"> %FieldsDTD; ]]> <![%Web3dExtensionComponent;[ <!ENTITY % Web3dExtensionsPublicDTD SYSTEM "x3d-3.0-Web3dExtensionsPublic.dtd"> <!ENTITY % Web3dExtensionsPrivateDTD SYSTEM "x3d-3.0-Web3dExtensionsPrivate.dtd"> %Web3dExtensionsPublicDTD; %Web3dExtensionsPrivateDTD; ]]>
”
A.3
Replace the content of A.3 with the following text:
“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 "">
”
A.3
Insert the following new subclauses after A.3:
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.0.dtd # # http://www.web3d.org/specifications/x3d-3.1.dtd # # current version: 3.1.0 # # created: 30 April 2005 # revised: 10 January 2006 # # 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 % NurbsGroupingNodes " NurbsOrientationInterpolator|NurbsPositionInterpolator|NurbsSurfaceInterpolator|NurbsSet|" > <!ENTITY % NurbsGeometryNodes " Contour2D|NurbsCurve|NurbsCurve2D|NurbsPatchSurface|NurbsSweptSurface|NurbsSwungSurface|NurbsTrimmedSurface|" > <!ENTITY % NurbsInterpolators " NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|" > <!ENTITY % NurbsControlCurveNodes " NurbsCurve2D|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 % NurbsGroupingNodes ""> <!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|IndexedQuadSet|IndexedTriangleFanSet|IndexedTriangleSet|IndexedTriangleStripSet|QuadSet|TriangleFanSet|TriangleSet|TriangleStripSet " > <!ENTITY % GroupingNodes " %GroupingNodeExtensions; %DISGroupingNodes; %GeoGroupingNodes; %HAnimGroupingNodes; %NurbsGroupingNodes; %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|ProtoInstance "> <!ENTITY % ProtoNodes " %OtherLeafNodes;|%AppearanceNodes;|%AppearanceChildNodes;|%BehaviorLeafNodes;|%BindableNodes;|%CubeMapTextureNodes;|%FontStyleNodes;|%ComposedGeometryNodes;|%GeometryNodes;|%GroupingNodes;|ShaderPart|ShaderProgram|%MetadataNodes;|%SceneLeafNodes;|%Texture3DTextureNodes;|%Texture3DTextureTransformNodes;|ProtoDeclare|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 Node or Nodes. --> <!ELEMENT field ( %ProtoNodes; )* > <!ATTLIST field name NMTOKEN #REQUIRED accessType (inputOnly|outputOnly|initializeOnly|inputOutput) #REQUIRED type ( %X3dFieldTypes; ) #REQUIRED value CDATA #IMPLIED xml:space (default|preserve) "default" 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;)?)> <!ATTLIST MetadataDouble name %SFString; #IMPLIED value %MFDouble; #IMPLIED reference %SFString; #IMPLIED containerField NMTOKEN "metadata" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT MetadataFloat (IS?, (%MetadataNodes;)?)> <!ATTLIST MetadataFloat name %SFString; #IMPLIED value %MFFloat; #IMPLIED reference %SFString; #IMPLIED containerField NMTOKEN "metadata" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT MetadataInteger (IS?, (%MetadataNodes;)?)> <!ATTLIST MetadataInteger name %SFString; #IMPLIED value %MFInt32; #IMPLIED reference %SFString; #IMPLIED containerField NMTOKEN "metadata" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT MetadataString (IS?, (%MetadataNodes;)?)> <!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;)*)> <!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 xml:space (default|preserve) #FIXED "preserve" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <![%NurbsComponent;[ <!ELEMENT Contour2D (IS?, (%MetadataNodes;)?, ( %NurbsControlCurveNodes;|%WildcardNodes; )* ) > <!ATTLIST Contour2D containerField NMTOKEN "trimmingContour" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT ContourPolyline2D ( (IS?), (%MetadataNodes;)? ) > <!ATTLIST ContourPolyline2D point %MFVec2f; #IMPLIED containerField NMTOKEN "children" class CDATA "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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, add inputOnly/outputOnly attributes and Web3dExtensionComponent from separate DTDs. Note that Web3dExtensionComponent content-model extensions needed to be added at beginning, prior to node-type definitions. --> <![%X3dInputOutputFields;[ <!ENTITY % FieldsDTD SYSTEM "x3d-3.1-InputOutputFields.dtd"> %FieldsDTD; ]]> <![%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: 29 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 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 "">
”