Extensible 3D (X3D) encodings
Part 1: Extensible Markup Language (XML) encoding
Annex B
(informative)
XML Document Type Definition (DTD) for X3D
This annex provides a detailed description of the grammar for each syntactic element in this part of ISO/IEC 14772. Table B.1 contains a table of contents that lists the topics in this clause:
B.1 Table of contents and introduction B.1.1 Table of contents B.1.2 Introduction |
B.2 x3d-3.0.dtd B.3 x3d-3.0-InputOutputFields.dtd |
An XML Document Type Definition (DTD) defines syntax of an XML tagset [XML] using a grammar first derived as part of the Standard Generalized Markup Language [WEBSGML].
The X3D DTD has sufficient expressive power to:
The X3D DTD does not have sufficient expressive power to:
x3d-3.0.dtd is the X3D DTD.
<!-- # Extensible 3D (X3D) Document Type Definition (DTD) x3d-3.0.dtd # # X3D SpecificationDTD: # # http://www.web3D.org/specifications/x3d-3.0.dtd # # current version: 3.0.3 # # revised: 13 January 2003 # # 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 # # changelog: # http://www.web3d.org/TaskGroups/x3d/translation/x3d-dtd-changelog.txt # # X3D editor testing this DTD: # http://www.web3d.org/TaskGroups/x3d/translation/README.X3D-Edit.html # # DTD version plans: # - initial well-defined DTD 0.5 # - all nodes available in test scene and checked in DTD 0.6 # - Xeena able to present translated X3D scene using DTD 0.7 # - DTD compliance exercised by NIST's VRML & XML test suites 0.8 # - pre-SIGGRAPH 2002 change series 0.8.x # - post-SIGGRAPH 2002 change series 0.9.x # - matching X3D abstract specification, consolidation of parts, and 3.0 # to include rename and possibly several profile-customized DTDs # - approval by task group, community, Web3D Consortium 3.0 # # Further information on the Extensible 3D (X3D) specification is available at # http://www.web3D.org/x3d.html --> <!-- Profile: authors can override these default IGNORE/INCLUDE values. If InterchangeProfile is INCLUDEd, all other profiles must be IGNOREd. Note InterchangeProfile enforces strict compliance with Core capabilities. --> <!ENTITY % ImmersiveProfile "INCLUDE"> <!ENTITY % InterchangeProfile "IGNORE"> <!-- if InterchangeProfile INCLUDE, then IGNORE all others --> <!ENTITY % InteractiveProfile "IGNORE"> <!-- still needed... --> <!-- consider changing default from Full profile to Immersive profile, which would turn the following 5 component flags to IGNORE --> <!ENTITY % DISComponent "INCLUDE"> <!ENTITY % GeoSpatialComponent "INCLUDE"> <!ENTITY % HAnimComponent "INCLUDE"> <!ENTITY % NurbsComponent "INCLUDE"> <!ENTITY % LatticeXvlComponent "INCLUDE"> <!ENTITY % X3dInputOutputFields "INCLUDE"> <!ENTITY % X3dExtensions "IGNORE"> <!ENTITY % profileNames "(Core|Interchange|Interactive|Immersive|MPEG4|Full)" > <!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 | SFVec3f | MFVec3f| SFVec3d | MFVec3d " > <!ENTITY % SFBool "(true|false)"> <!-- Boolean --> <!ENTITY % MFBool "CDATA"> <!-- Booleans --> <!ENTITY % SFColor "CDATA"> <!-- Color --> <!ENTITY % MFColor "CDATA"> <!-- Colors --> <!ENTITY % SFColorRGBA "CDATA"> <!-- ColorRGBA --> <!ENTITY % MFColorRGBA "CDATA"> <!-- ColorsRGBA --> <!ENTITY % SFFloat "CDATA"> <!-- Float --> <!ENTITY % MFFloat "CDATA"> <!-- Floats --> <!ENTITY % SFDouble "CDATA"> <!-- Double --> <!ENTITY % MFDouble "CDATA"> <!-- Doubles --> <!ENTITY % SFImage "CDATA"> <!-- Image data --> <!ENTITY % MFImage "CDATA"> <!-- Image array--> <!ENTITY % SFInt32 "CDATA"> <!-- Integer --> <!ENTITY % MFInt32 "CDATA"> <!-- Integers --> <!ENTITY % SFNode "#PCDATA"> <!-- Node - handled by tag rules --> <!ENTITY % MFNode "#PCDATA"> <!-- Nodes - handled by tag rules --> <!ENTITY % SFRotation "CDATA"> <!-- Rotation --> <!ENTITY % MFRotation "CDATA"> <!-- Rotations --> <!ENTITY % SFString "CDATA"> <!-- String --> <!ENTITY % MFString "CDATA"> <!-- Strings --> <!ENTITY % SFTime "CDATA"> <!-- Time --> <!ENTITY % MFTime "CDATA"> <!-- Times --> <!ENTITY % SFVec2f "CDATA"> <!-- Vector2Float --> <!ENTITY % MFVec2f "CDATA"> <!-- Vector2FloatArray --> <!ENTITY % SFVec3f "CDATA"> <!-- Vector3Float --> <!ENTITY % MFVec3f "CDATA"> <!-- Vector3FloatArray --> <!ENTITY % SFVec3d "CDATA"> <!-- Vector3Double --> <!ENTITY % MFVec3d "CDATA"> <!-- Vector3DoubleArray --> <!-- MultiTexture modePrefix and modeSuffix will likely get different names --> <!ENTITY % MultiTextureModes "(MODULATE|REPLACE|MODULATE2X|MODULATE4X|ADD|ADDSIGNED|ADDSIGNED2X|SUBTRACT|ADDSMOOTH|BLENDDIFFUSEALPHA|BLENDTEXTUREALPHA|BLENDFACTORALPHA|BLENDCURRENTALPHA|MODULATEALPHA_ADDCOLOR|MODULATEINVALPHA_ADDCOLOR|MODULATEINVCOLOR_ADDALPHA|OFF|SELECTARG1|SELECTARG2|DOTPRODUCT3)" > <!ENTITY % MultiTextureSourceValues "(PREVIOUS|DIFFUSE|SPECULAR|FACTOR)" > <!ENTITY % MultiTextureFunctionValues "(NONE|COMPLEMENT|ALPHAREPLICATE)" > <!ENTITY % TextureCoordinateGeneratorModes "(SPHERE|CAMERASPACENORMAL|CAMERASPACEPOSITION|CAMERASPACEREFLECTIONVECTOR|SPHERE-LOCAL|COORD|COORD-EYE|NOISE|NOISE-EYE|SPHERE-REFLECT|SPHERE-REFLECT-LOCAL)" > <!-- User needs to append | after each new node in any of these extensions. For an example, see examples/ProtoTagDtdDeclarationExamples.xml --> <!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 % 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 % UrlNodeExtensions "" > <!ENTITY % WorldInfoNodeExtensions "" > <!-- Users defining PROTOs do not override any of the following parameter entity declarations. --> <![%ImmersiveProfile;[ <!ENTITY % WildcardNodes " (ProtoInstance) " > ]]> <![%InterchangeProfile;[ <!ENTITY % WildcardNodes " " > <!-- USE --> ]]> <![%DISComponent;[ <!ENTITY % DISGroupingNodes " EspduTransform | SignalPdu | ReceiverPdu | TransmitterPdu | " > ]]> <![%GeoSpatialComponent;[ <!ENTITY % GeoCoordinateNode " GeoCoordinate | " > <!ENTITY % GeoElevationGridNode " GeoElevationGrid | " > <!ENTITY % GeoGroupingNodes " GeoInline | 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 " Contour2D | CoordinateDeformer | NurbsGroup | NurbsTextureSurface | " > <!ENTITY % NurbsGeometryNodes " NurbsCurve | NurbsCurve2D | NurbsSurface | ContourPolyline2D | TrimmedSurface | " > <!ENTITY % NurbsInterpolators " NurbsPositionInterpolator | " > ]]> <![%LatticeXvlComponent;[ <!ENTITY % LatticeXvlGeometryNodes " XvlShell | " > ]]> <!-- otherwise set tag lists to null strings if not previously defined by DIS, GeoSpatial, HAnim, LatticeXvl, Nurbs --> <!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 % LatticeXvlGroupingNodes "" > <!ENTITY % LatticeXvlGeometryNodes "" > <!-- 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 "" > ]]> <!ENTITY % UrlNodes " %UrlNodeExtensions; Anchor | AudioClip | GeoInline | ImageTexture | Inline | MovieTexture | Script " > <!-- Declarations appearing only in ImmersiveProfile --> <![%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 " > <!ENTITY % TextureTransformNodes " %TextureTransformNodeExtensions; TextureTransform | MultiTextureTransform " > ]]> <!-- Declarations appearing differently in X3dExtensions, ImmersiveProfile and InterchangeProfile --> <!-- X3D Extensions (superset overriding some ImmersiveProfile declarations) not yet defined. --> <![%X3dExtensions;[ <!ENTITY % AppearanceNodeX3dExtensions "" > <!ENTITY % GeometryNodesX3dExtensions "" > ]]> <!ENTITY % AppearanceNodeX3dExtensions "" > <!ENTITY % GeometryNodesX3dExtensions "" > <![%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 " > <!ENTITY % GeometryNodes " IndexedFaceSet | IndexedLineSet | PointSet " > <!ENTITY % GroupingNodes " Anchor | Group | Inline | Transform " > <!ENTITY % LightNodes " DirectionalLight " > <!ENTITY % MaterialNodes " Material " > <!ENTITY % ShapeNodes " Shape " > <!ENTITY % TextureNodes " ImageTexture " > <!ENTITY % WorldInfoNodes " WorldInfo " > ]]> <![%ImmersiveProfile;[ <!ENTITY % AppearanceNodes " %AppearanceNodeExtensions; %AppearanceNodeX3dExtensions; 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 " > <!ENTITY % BindableNodes " %BindableNodeExtensions; %GeoViewpointNode; Background | Fog | NavigationInfo | TextureBackground | Viewpoint " > <!ENTITY % ColorNodes " %ColorNodeExtensions; Color | ColorRGBA " > <!ENTITY % CoordinateNodes " %CoordinateNodeExtensions; %GeoCoordinateNode; Coordinate " > ]]> <![%ImmersiveProfile;[ <!ENTITY % Geometry2DNodes " Arc2D | ArcClose2D | Circle2D | Disk2D | Polyline2D | Polypoint2D | Rectangle2D | TriangleSet2D " > <!ENTITY % GeometryNodes " %GeometryNodeExtensions; %GeometryNodesX3dExtensions; %GeoElevationGridNode; %NurbsGeometryNodes; %LatticeXvlGeometryNodes; %Geometry2DNodes; | Box | Cone | Cylinder | ElevationGrid | Extrusion | IndexedFaceSet | IndexedLineSet | PointSet | Sphere | Text | TriangleFanSet | TriangleSet | TriangleStripSet " > <!ENTITY % GroupingNodes " %GroupingNodeExtensions; %DISGroupingNodes; %GeoGroupingNodes; %HAnimGroupingNodes; %NurbsGroupingNodes; %LatticeXvlGroupingNodes; Anchor | Billboard | Collision | Group | Inline | LOD | StaticGroup | Switch | Transform " > <!ENTITY % LightNodes " %LightNodeExtensions; DirectionalLight | SpotLight | PointLight " > <!ENTITY % MaterialNodes " %MaterialNodeExtensions; Material " > <!ENTITY % ShapeNodes " %ShapeNodeExtensions; Shape " > <!ENTITY % TextureNodes " %TextureNodeExtensions; ImageTexture | MovieTexture | MultiTexture | PixelTexture " > <!--| CompositeTexture3D --> <!ENTITY % MultiTextureChildTextures " %TextureNodeExtensions; ImageTexture | MovieTexture | PixelTexture " > <!ENTITY % WorldInfoNodes " %WorldInfoNodeExtensions; %GeoMetadataNode; WorldInfo " > ]]> <!-- These VRML 97 specification terms relate to an object hierarchy of nodes. For details, see VRML 97 4.6.5 Grouping and children nodes http://www.web3D.org/technicalinfo/specifications/vrml97/part1/concepts.html#4.6.5 --> <![%InterchangeProfile;[ <!ENTITY % GeometricPropertyNodes " %ColorNodes; " > <!ENTITY % AppearanceChildNodes " %MaterialNodes; " > <!ENTITY % SceneLeafNodes " %LightNodes; | %ShapeNodes; | %WorldInfoNodes; " > <!ENTITY % ProtoNodes "" > ]]> <![%ImmersiveProfile;[ <!ENTITY % GeometricPropertyNodes " %CoordinateNodes; | %ColorNodes; | %NormalNodes; | %TextureCoordinateNodes; " > <!ENTITY % AppearanceChildNodes " %MaterialNodes; | %TextureNodes; | %TextureTransformNodes; " > <!ENTITY % SceneLeafNodes " %GeoOriginNode; %LightNodes; | %ShapeNodes; | %SoundNodes; | %WorldInfoNodes; " > <!ENTITY % ProtoNodes " %AppearanceNodes; | %AppearanceChildNodes; | %BehaviorLeafNodes; | %BindableNodes; | %FontStyleNodes; | %GeometricPropertyNodes; | %GeometryNodes; | %GroupingNodes; | %SceneLeafNodes; | ProtoDeclare | ProtoInstance " > ]]> <![%InterchangeProfile;[ <!ENTITY % ChildrenNodes " %BehaviorLeafNodes; | %BindableNodes; | %GroupingNodes; | %SceneLeafNodes; | ROUTE | EXPORT | IMPORT " > <!ENTITY % SceneNodes " ( %ChildrenNodes; | %WildcardNodes; )* " > ]]> <![%ImmersiveProfile;[ <!ENTITY % ChildrenNodes " %BehaviorLeafNodes; | %BindableNodes; | %GroupingNodes; | %SceneLeafNodes; | ROUTE | EXPORT | IMPORT " > <!-- need any order for prototypes --> <!ENTITY % SceneNodes " (ExternProtoDeclare | ProtoDeclare | %ChildrenNodes; | %WildcardNodes; )* " > ]]> <!ENTITY % AllVRML97Nodes " Anchor|Appearance|AudioClip|Background|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|Billboard|Box|Collision|Color|ColorInterpolator|Cone|Coordinate|CoordinateInterpolator|Cylinder|CylinderSensor|DirectionalLight|ElevationGrid|Extrusion|FillProperties|Fog|FontStyle|Group|head|ImageTexture|IndexedFaceSet|IndexedLineSet|Inline|IntegerSequencer|IntegerTrigger|KeySensor|LineProperties|LOD|Material|MovieTexture|MultiTextureCoordinate|NavigationInfo|Normal|NormalInterpolator|OrientationInterpolator|PixelTexture|PlaneSensor|PointLight|PointSet|PositionInterpolator|ProximitySensor|ScalarInterpolator|Scene|Script|Shape|Sound|Sphere|SphereSensor|SpotLight|StringSensor|StaticGroup|Switch|Text|TextureBackground|TextureCoordinate|TextureCoordinateGenerator|TextureTransform|TimeSensor|TimeTrigger|TouchSensor|Transform|TriangleFanSet|TriangleSet|TriangleStripSet|Viewpoint|VisibilitySensor|PositionInterpolator2D|CoordinateInterpolator2D|WorldInfo " > <!ENTITY % AllGeoSpatialTags " GeoCoordinate|GeoElevationGrid|GeoInline|GeoLocation|GeoLOD|GeoMetadata|GeoOrigin|GeoPositionInterpolator|GeoTouchSensor|GeoViewpoint " > <!ENTITY % AllHAnimTags " HAnimDisplacer|HAnimHumanoid|HAnimJoint|HAnimSegment|HAnimSite " > <!-- Not used (yet, anyway) in tagset 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 " > <!-- External DTDs now integrated. --> <!-- ****************************** X3D DTD ****************************** --> <![%ImmersiveProfile;[ <!-- isOver, touchTime added to Anchor to match multiple interface with TouchSensorNodeType --> <!ELEMENT Anchor (IS?, ( %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 ( %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?, ( (FillProperties, LineProperties?) | (LineProperties, FillProperties)? )?, ( ((%MaterialNodes;), (((%TextureNodes;),((%TextureTransformNodes;)|%WildcardNodes;)?) | ((%TextureTransformNodes;),((%TextureNodes;)|%WildcardNodes;)?) | (%WildcardNodes;,((%TextureNodes;)|(%TextureTransformNodes;)|%WildcardNodes;)?) )? ) | ((%TextureNodes;), ( ((%MaterialNodes;),((%TextureTransformNodes;)|%WildcardNodes;)?) | ((%TextureTransformNodes;),((%MaterialNodes;)|%WildcardNodes;)?) | (%WildcardNodes;,((%MaterialNodes;)|(%TextureTransformNodes;)|%WildcardNodes;)?) )? ) | ((%TextureTransformNodes;), (((%MaterialNodes;),((%TextureNodes;)|%WildcardNodes;)?) | ((%TextureNodes;),((%MaterialNodes;)|%WildcardNodes;)?) | (%WildcardNodes;,((%MaterialNodes;)|(%TextureNodes;)|%WildcardNodes;)?) )? ) | (%WildcardNodes;, ( ((%MaterialNodes;),((%TextureNodes;)|(%TextureTransformNodes;)|%WildcardNodes;)?) | ((%TextureNodes;),((%MaterialNodes;)|(%TextureTransformNodes;)|%WildcardNodes;)?) | ((%TextureTransformNodes;),((%MaterialNodes;)|(%TextureNodes;)|%WildcardNodes;)?) | (%WildcardNodes;,((%MaterialNodes;)|(%TextureNodes;)|(%TextureTransformNodes;)|%WildcardNodes;)?) )? ) )? ) > ]]> <![%InterchangeProfile;[ <!ELEMENT Appearance ( ((%MaterialNodes;), (%TextureNodes;)? ) | ((%TextureNodes;), (%MaterialNodes;)? ) )? > ]]> <!ATTLIST Appearance containerField NMTOKEN "appearance" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <![%ImmersiveProfile;[ <!ELEMENT AudioClip (IS?) > <!ATTLIST AudioClip description %SFString; #IMPLIED loop %SFBool; "false" pitch %SFFloat; "1.0" startTime %SFTime; "0" stopTime %SFTime; "0" url %MFString; #IMPLIED containerField NMTOKEN "source" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!ELEMENT Background (IS?)> <!ATTLIST Background groundAngle %MFFloat; #IMPLIED groundColor %MFColor; "0 0 0" 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?, ( %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?) > <!ATTLIST BooleanFilter containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT BooleanSequencer (IS?) > <!ATTLIST BooleanSequencer key %MFFloat; #IMPLIED keyValue %MFFloat; #IMPLIED containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT BooleanToggle (IS?) > <!ATTLIST BooleanToggle toggle %SFBool; "false" containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT BooleanTrigger (IS?) > <!ATTLIST BooleanTrigger containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <![%ImmersiveProfile;[ <!-- Geometry2D nodes --> <!ELEMENT Arc2D (IS?)> <!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?)> <!ATTLIST ArcClose2D radius %SFFloat; "1" startAngle %SFFloat; "0" endAngle %SFFloat; "1.570796" closureType (PIE|CHORD) "PIE" containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT Circle2D (IS?)> <!ATTLIST Circle2D radius %SFFloat; "1" containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT Disk2D (IS?)> <!ATTLIST Disk2D innerRadius %SFFloat; "0" outerRadius %SFFloat; "1" containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT Polyline2D (IS?)> <!ATTLIST Polyline2D lineSegments %MFVec2f; #IMPLIED containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT Polypoint2D (IS?)> <!ATTLIST Polypoint2D points %MFVec2f; #IMPLIED containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT Rectangle2D (IS?)> <!ATTLIST Rectangle2D isFilled %SFBool; "true" size %SFVec2f; "2 2" containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT TriangleSet2D (IS?)> <!ATTLIST TriangleSet2D vertices %MFVec2f; #IMPLIED containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <![%ImmersiveProfile;[ <!ELEMENT Box (IS?)> <!ATTLIST Box size %SFVec3f; "2 2 2" containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!-- <!ELEMENT proxy ( %GroupingNodes; | Shape | %WildcardNodes; )? > --> <!-- <!ELEMENT Collision ( ( %ChildrenNodes; | %WildcardNodes; )*, (proxy, ( %ChildrenNodes; | %WildcardNodes; )* )? ) > --> <!ELEMENT Collision ( ( %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?) > <!ATTLIST Color color %MFColor; #IMPLIED class CDATA #IMPLIED containerField NMTOKEN "color" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT ColorRGBA (IS?) > <!ATTLIST ColorRGBA color %MFColorRGBA; #IMPLIED containerField NMTOKEN "color" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <![%ImmersiveProfile;[ <!ELEMENT ColorInterpolator (IS?)> <!ATTLIST ColorInterpolator key %MFFloat; #IMPLIED keyValue %MFColor; #IMPLIED containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!-- component(s) can extend an X3D profile, and may include choice of component level. still under discussion and development. --> <!ELEMENT component EMPTY> <!ATTLIST component name NMTOKEN #REQUIRED level CDATA "1" originator CDATA #IMPLIED url CDATA #IMPLIED version CDATA #IMPLIED > <![%ImmersiveProfile;[ <!ELEMENT Cone (IS?)> <!ATTLIST Cone bottomRadius %SFFloat; "1" height %SFFloat; "2" side %SFBool; "true" bottom %SFBool; "true" containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!ELEMENT Coordinate (IS?) > <!ATTLIST Coordinate point %MFVec3f; #IMPLIED containerField NMTOKEN "coord" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT CoordinateInterpolator (IS?)> <!ATTLIST CoordinateInterpolator key %MFFloat; #IMPLIED keyValue %MFVec3f; #IMPLIED containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <![%ImmersiveProfile;[ <!ELEMENT CoordinateInterpolator2D (IS?) > <!ATTLIST CoordinateInterpolator2D key %MFFloat; #IMPLIED keyValue %MFVec2f; #IMPLIED containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT Cylinder (IS?)> <!ATTLIST Cylinder bottom %SFBool; "true" height %SFFloat; "2" radius %SFFloat; "1" side %SFBool; "true" top %SFBool; "true" containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT CylinderSensor (IS?)> <!ATTLIST CylinderSensor description %SFString; #IMPLIED autoOffset %SFBool; "true" diskAngle %SFFloat; "0.262" 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?)> <!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 EMPTY> <!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?, ( ((%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?) > <!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?) > <!ATTLIST FillProperties fillStyle (NONE|HATCHED) "NONE" hatchStyle %SFInt32; "1" hatchColor %SFColor; "1 1 1" containerField NMTOKEN "fillProperties" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT Fog (IS?) > <!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?) > <!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 mentioned in VRML 97 specification family ' "SERIF" "SANS" "TYPEWRITER" ' justify ' "FIRST" "BEGIN" "MIDDLE" "END" ' --> ]]> <!ELEMENT Group (IS?, ( %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 head ( component*, meta* ) > <!ELEMENT ImageTexture (IS?) > <!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?, ( ((%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; > <!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> <!ELEMENT IndexedLineSet (IS?, ( ( (%ColorNodes;), ((%CoordinateNodes;) | %WildcardNodes;)? ) | ( (%CoordinateNodes;), ((%ColorNodes;) | %WildcardNodes;)? ) | ( %WildcardNodes;, ((%ColorNodes;) | (%CoordinateNodes;) | %WildcardNodes;)?) )? ) > ]]> <![%InterchangeProfile;[ <!ELEMENT IndexedFaceSet ( ((%ColorNodes;), Coordinate?) | (Coordinate, (%ColorNodes;)?) )? > <!ATTLIST IndexedFaceSet ccw %SFBool; "true" colorIndex %MFInt32; #IMPLIED colorPerVertex %SFBool; "true" convex %SFBool; #IMPLIED coordIndex %MFInt32; #IMPLIED creaseAngle %SFFloat; "0" solid %SFBool; "true" containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT IndexedLineSet ( ( Color, Coordinate? ) | ( Coordinate, Color?) )? > ]]> <!ATTLIST IndexedLineSet colorIndex %MFInt32; #IMPLIED colorPerVertex %SFBool; "true" coordIndex %MFInt32; #IMPLIED containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT Inline (IS?) > <!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 exportedDEF NMTOKEN #REQUIRED AS ID #IMPLIED> <![%ImmersiveProfile;[ <!ELEMENT IntegerSequencer (IS?) > <!ATTLIST IntegerSequencer key %MFFloat; #IMPLIED keyValue %MFFloat; #IMPLIED containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT IntegerTrigger (IS?) > <!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?) > <!ATTLIST KeySensor enabled %SFBool; "true" containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <![%ImmersiveProfile;[ <!ELEMENT LineProperties (IS?) > <!ATTLIST LineProperties lineStyle %SFInt32; "0" lineWidthScaleFactor %SFFloat; "0" containerField NMTOKEN "lineProperties" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!ELEMENT LoadSensor (IS?, ( %UrlNodes; | %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?, ( %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?) > <!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 EMPTY > <!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, should convert to external declaration when tools are robust *** --> <!-- 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" > <!-- 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; > <!-- FAQ: MovieTexture containerField='source' when used as a Sound source --> <![%ImmersiveProfile;[ <!ELEMENT MovieTexture (IS?) > <!ATTLIST MovieTexture loop %SFBool; "false" speed %SFFloat; "1.0" startTime %SFTime; "0" stopTime %SFTime; "0" url %MFString; #IMPLIED repeatS %SFBool; "true" repeatT %SFBool; "true" containerField NMTOKEN "texture" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT MultiTexture ( (IS?), ( ((%MultiTextureChildTextures;)+, (%TextureTransformNodes;)* ) | ((%TextureTransformNodes;)+, (%MultiTextureChildTextures;)* ) )? ) > <!ATTLIST MultiTexture materialColor %SFBool; "false" materialAlpha %SFBool; "false" transparent %SFBool; "false" noMipMap %SFBool; "false" mode %MultiTextureModes; #IMPLIED source %MultiTextureFunctionValues; #IMPLIED function %MultiTextureSourceValues; #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?), (TextureCoordinate | TextureCoordinateGenerator)* ) > <!ATTLIST MultiTextureCoordinate containerField NMTOKEN "texCoord" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!ELEMENT NavigationInfo (IS?) > <!ATTLIST NavigationInfo avatarSize %MFFloat; "0.25 1.6 0.75" headlight %SFBool; "true" speed %SFFloat; "1" type %MFString; "WALK ANY" visibilityLimit %SFFloat; "0" containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <![%ImmersiveProfile;[ <!ELEMENT Normal (IS?) > <!ATTLIST Normal vector %MFVec3f; #IMPLIED containerField NMTOKEN "normal" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT NormalInterpolator (IS?) > <!ATTLIST NormalInterpolator key %MFFloat; #IMPLIED keyValue %MFVec3f; #IMPLIED containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!ELEMENT OrientationInterpolator (IS?) > <!ATTLIST OrientationInterpolator key %MFFloat; #IMPLIED keyValue %MFRotation; #IMPLIED containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <![%ImmersiveProfile;[ <!ELEMENT PixelTexture (IS?) > <!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?) > <!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?) > <!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?, ( ( (%ColorNodes;), ((%CoordinateNodes;) | %WildcardNodes;)? ) | ( (%CoordinateNodes;), ((%ColorNodes;) | %WildcardNodes;)? ) | ( %WildcardNodes;, ((%ColorNodes;) | (%CoordinateNodes;) | %WildcardNodes;)?) )? ) > ]]> <![%InterchangeProfile;[ <!ELEMENT PointSet ( ( Color, Coordinate? ) | ( Coordinate, Color? ) )? > ]]> <!ATTLIST PointSet containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT PositionInterpolator (IS?) > <!ATTLIST PositionInterpolator key %MFFloat; #IMPLIED keyValue %MFVec3f; #IMPLIED containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <![%ImmersiveProfile;[ <!ELEMENT PositionInterpolator2D (IS?) > <!ATTLIST PositionInterpolator2D key %MFFloat; #IMPLIED keyValue %MFVec2f; #IMPLIED containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT ProtoInterface ( field+ ) > <!-- choice of required first node contained in ProtoBody constrained by valid ( %ProtoNodes; ) rather than %SceneNodes; ) > --> <!ELEMENT ProtoBody ( ( %ProtoNodes; ), %SceneNodes; ) > <!-- include previous and proposed forms until content is updated and evaluated. work in progress. --> <!ELEMENT ProtoDeclare (ProtoInterface? , ProtoBody) > <!-- ( | ( field*, ( %ProtoNodes; ), %SceneNodes; )) --> <!ATTLIST ProtoDeclare name NMTOKEN #REQUIRED appInfo %SFString; #IMPLIED documentation %SFString; #IMPLIED> <!ELEMENT ProtoInstance ( fieldValue*, IS? ) > <!-- %SceneNodes; --> <!ATTLIST ProtoInstance name NMTOKEN #REQUIRED containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT ProximitySensor (IS?) > <!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?) > <!ATTLIST ScalarInterpolator key %MFFloat; #IMPLIED keyValue %MFFloat; #IMPLIED containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT Scene %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 )* --> <!-- can this mixed model be further tighted to allow only one IS, following zero or more field tags, prior to PCDATA? --> <!ELEMENT Script ( #PCDATA | 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?, ( ( (%AppearanceNodes;), (( %GeometryNodes; ) | %WildcardNodes;)? ) | ( ( %GeometryNodes; ), ((%AppearanceNodes;) | %WildcardNodes;)? ) | ( %WildcardNodes;, (( %GeometryNodes; ) | (%AppearanceNodes;) | %WildcardNodes;)? ) )? ) > ]]> <![%InterchangeProfile;[ <!ELEMENT Shape ( ( (%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?, ( %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?) > <!ATTLIST Sphere radius %SFFloat; "1" containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT SphereSensor (IS?) > <!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?) > <!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?, ( %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?) > <!ATTLIST StringSensor enabled %SFBool; "true" deletionAllowed %SFBool; "true" containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!ELEMENT Switch (IS?, ( %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?, ( (%FontStyleNodes;)? | %WildcardNodes; ) ) > <!ATTLIST Text string %MFString; #IMPLIED length %MFFloat; #IMPLIED maxExtent %SFFloat; "0.0" 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?, (%TextureNodes;)* )> <!ATTLIST TextureBackground groundAngle %MFFloat; #IMPLIED groundColor %MFColor; "0 0 0" 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?) > <!ATTLIST TextureCoordinate point %MFVec2f; #IMPLIED containerField NMTOKEN "texCoord" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT TimeSensor (IS?) > <!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 TextureCoordinateGenerator (IS?) > <!ATTLIST TextureCoordinateGenerator mode %TextureCoordinateGeneratorModes; "SPHERE" parameter %MFFloat; #IMPLIED containerField NMTOKEN "texCoord" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT TextureTransform (IS?) > <!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)* ) > <!ATTLIST MultiTextureTransform containerField NMTOKEN "textureTransform" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <![%ImmersiveProfile;[ <!ELEMENT TimeTrigger (IS?) > <!ATTLIST TimeTrigger containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT TouchSensor (IS?) > <!ATTLIST TouchSensor description %SFString; #IMPLIED enabled %SFBool; "true" containerField NMTOKEN "children" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <!ELEMENT Transform (IS?, ( %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 > <!-- Triangle*Set nodes are Interchange profile --> <!ELEMENT TriangleFanSet %ColorCoordinateNormalTextureCoordinateContentModel; > <!ATTLIST TriangleFanSet ccw %SFBool; "true" colorPerVertex %SFBool; "true" creaseAngle %SFFloat; "0" fanCount %MFInt32; #IMPLIED 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" creaseAngle %SFFloat; "0" normalPerVertex %SFBool; "true" solid %SFBool; "true" containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT TriangleStripSet %ColorCoordinateNormalTextureCoordinateContentModel; > <!ATTLIST TriangleStripSet ccw %SFBool; "true" colorPerVertex %SFBool; "true" creaseAngle %SFFloat; "0" normalPerVertex %SFBool; "true" solid %SFBool; "true" stripCount %MFInt32; #IMPLIED containerField NMTOKEN "geometry" class CDATA #IMPLIED DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT Viewpoint (IS?) > <!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?) > <!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?) > <!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 profile %profileNames; #IMPLIED version %SFString; #FIXED "3.0"> <![%DISComponent;[ <!-- DIS-Java-VRML 1.2 Document Type Definition (DTD) Description: Define the DIS tag and attribute profile for X3D. These X3D native nodes correspond to VRML ExternProto declarations. Elements in this tagset are enabled by setting the DIS-Java-VRMLProfile entity to "INCLUDE" at the top of an X3D scene file, as shown in several examples. This flag then triggers inclusion of the DIS-Java-VRML tags in the x3d-3.0.dtd tagset. Status: Supports the following Protocol Data Units (PDUs): - EspduTransform (Entity State, Collision, Detonation, Fire) - Radio communications family: ReceiverPdu, SignalPdu, Transmitter Testing results need updating to match new node signatures. Authors: Don Brutzman and Dave Laflam References: http://www.web3D.org/WorkingGroups/vrtp/dis-java-vrml Created: 15 October 2000 --> <!ELEMENT EspduTransform (IS?, ( %ChildrenNodes; | %WildcardNodes; )* ) > <!ATTLIST EspduTransform marking %SFString; #IMPLIED siteID %SFInt32; #IMPLIED applicationID %SFInt32; #IMPLIED entityID %SFInt32; #IMPLIED forceID %SFInt32; #IMPLIED entityKind %SFInt32; #IMPLIED entityDomain %SFInt32; #IMPLIED entityCountry %SFInt32; #IMPLIED entityCategory %SFInt32; #IMPLIED entitySubCategory %SFInt32; #IMPLIED entitySpecific %SFInt32; #IMPLIED entityExtra %SFInt32; #IMPLIED readInterval %SFTime; "0.1" writeInterval %SFTime; "1" networkMode (standAlone|networkReader|networkWriter) "networkReader" 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; #IMPLIED port %SFInt32; #IMPLIED multicastRelayHost %SFString; #IMPLIED multicastRelayPort %SFInt32; #IMPLIED rtpHeaderExpected %SFBool; "false" deadReckoning %SFBool; "true" linearVelocity %SFVec3f; #IMPLIED linearAcceleration %SFVec3f; #IMPLIED fired1 %SFBool; "false" fired2 %SFBool; "false" munitionStartPoint %SFVec3f; #IMPLIED munitionEndPoint %SFVec3f; #IMPLIED munitionSiteID %SFInt32; #IMPLIED munitionApplicationID %SFInt32; #IMPLIED munitionEntityID %SFInt32; #IMPLIED fireMissionIndex %SFInt32; #IMPLIED warhead %SFInt32; #IMPLIED fuse %SFInt32; #IMPLIED munitionQuantity %SFInt32; #IMPLIED firingRate %SFInt32; #IMPLIED firingRange %SFInt32; #IMPLIED articulationParameterCount %SFInt32; #IMPLIED articulationParameterDesignatorArray %MFInt32; #IMPLIED articulationParameterChangeIndicatorArray %MFInt32; #IMPLIED articulationParameterIdPartAttachedArray %MFInt32; #IMPLIED articulationParameterTypeArray %MFInt32; #IMPLIED articulationParameterArray %MFFloat; #IMPLIED containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED > <!-- also included in EspduTransform: CollisionPdu DetonatePdu FirePdu --> <!ELEMENT ReceiverPdu (IS?) > <!ATTLIST ReceiverPdu whichGeometry %SFInt32; #IMPLIED siteID %SFInt32; #IMPLIED applicationID %SFInt32; #IMPLIED entityID %SFInt32; #IMPLIED readInterval %SFTime; "1" writeInterval %SFTime; "0" networkMode (standAlone|networkReader|networkWriter) "networkReader" address %SFString; #IMPLIED port %SFInt32; #IMPLIED multicastRelayHost %SFString; #IMPLIED multicastRelayPort %SFInt32; #IMPLIED rtpHeaderExpected %SFBool; "false" radioID %SFInt32; #IMPLIED receiverPower %SFFloat; #IMPLIED receiverState %SFInt32; #IMPLIED transmitterSiteID %SFInt32; #IMPLIED transmitterApplicationID %SFInt32; #IMPLIED transmitterEntityID %SFInt32; #IMPLIED transmitterRadioID %SFInt32; #IMPLIED containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED > <!ELEMENT SignalPdu (IS?) > <!ATTLIST SignalPdu whichGeometry %SFInt32; #IMPLIED siteID %SFInt32; #IMPLIED applicationID %SFInt32; #IMPLIED entityID %SFInt32; #IMPLIED readInterval %SFTime; "1" writeInterval %SFTime; "0" networkMode (standAlone|networkReader|networkWriter) "networkReader" address %SFString; #IMPLIED port %SFInt32; #IMPLIED multicastRelayHost %SFString; #IMPLIED multicastRelayPort %SFInt32; #IMPLIED rtpHeaderExpected %SFBool; "false" radioID %SFInt32; #IMPLIED encodingScheme %SFInt32; #IMPLIED tdlType %SFInt32; #IMPLIED sampleRate %SFInt32; #IMPLIED samples %SFInt32; #IMPLIED dataLength %SFInt32; #IMPLIED data %MFInt32; #IMPLIED containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED > <!ELEMENT TransmitterPdu (IS?) > <!ATTLIST TransmitterPdu whichGeometry %SFInt32; #IMPLIED siteID %SFInt32; #IMPLIED applicationID %SFInt32; #IMPLIED entityID %SFInt32; #IMPLIED readInterval %SFTime; "1" writeInterval %SFTime; "0" networkMode (standAlone|networkReader|networkWriter) "networkReader" address %SFString; #IMPLIED port %SFInt32; #IMPLIED multicastRelayHost %SFString; #IMPLIED multicastRelayPort %SFInt32; #IMPLIED rtpHeaderExpected %SFBool; "false" radioID %SFInt32; #IMPLIED antennaLocation %SFVec3f; #IMPLIED antennaPatternLength %SFInt32; #IMPLIED antennaPatternType %SFInt32; #IMPLIED cryptoKeyId %SFInt32; #IMPLIED cryptoSytem %SFInt32; #IMPLIED frequency %SFInt32; #IMPLIED inputSource %SFInt32; #IMPLIED lengthOfModulationParameters %SFInt32; #IMPLIED modulationTypeDetail %SFInt32; #IMPLIED modulationTypeMajor %SFInt32; #IMPLIED modulationTypeSpreadSpectrum %SFInt32; #IMPLIED modulationTypeSystem %SFInt32; #IMPLIED power %SFInt32; #IMPLIED radioEntityTypeCategory %SFInt32; #IMPLIED radioEntityTypeCountry %SFInt32; #IMPLIED radioEntityTypeDomain %SFInt32; #IMPLIED radioEntityTypeKind %SFInt32; #IMPLIED radioEntityTypeNomenclature %SFInt32; #IMPLIED radioEntityTypeNomenclatureVersion %SFInt32; #IMPLIED relativeAntennaLocation %SFVec3f; #IMPLIED transmitFrequencyBandwidth %SFInt32; #IMPLIED transmitState %SFInt32; #IMPLIED containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED > ]]> <![%GeoSpatialComponent;[ <!-- GeoSpatial (GeoVrml 1.0) Document Type Definition (DTD) Description: Define the GeoSpatial tag and attribute profile for X3D. These X3D native nodes correspond to VRML ExternProto declarations. Elements in this tagset are enabled by setting the GeoSpatialProfile entity to "INCLUDE" at the top of an X3D scene file, as shown in several examples such as examples/GeoSpatial/newGeoSpatialScene.xml. This flag then triggers inclusion of the GeoSpatial tags in the x3d-compromise.dtd tagset. Thus the GeoSpatial.dtd demonstrates X3D extensibility for profiles. Status: Testing results satisfactory. Compact form also needed. Authors: Martin Reddy and GeoVrml Working Group for GeoVrml specifications Don Brutzman produced XML encoding for X3D Reference: GeoVrml 1.0 Specification, http://www.geovrml.org/1.0 Address: http://www.web3D.org/TaskGroups/x3d/translation/GeoSpatial-compact.dtd Created: 16 May 2000 Revised: 2 January 2003 --> <!-- supported GeoSystem values: GD (GDC), UTM, GC (GCC) --> <!ENTITY % GeoSystemType ' CDATA "GDC" ' > <!-- field tags for contained nodes: only rootNode needed --> <!-- GeoSpatial's rootNode depends on profile-specific parameter-entity definitions, so it appears inside the X3D DTD rather than in GeoSpatial.dtd --> <!ELEMENT rootNode ( %ChildrenNodes; | %WildcardNodes; )* > <!-- element nodes --> <!ELEMENT GeoCoordinate ( IS?, GeoOrigin? ) > <!-- X3DCoordinateNodeType --> <!ATTLIST GeoCoordinate geoSystem %GeoSystemType; point %MFVec3d; #IMPLIED nodeType NMTOKEN #FIXED "Coordinate" containerField NMTOKEN "coord" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!-- (GeoOrigin, ((color, ((normal,texCoord?) | (texCoord,normal)?)?) | (normal,((color,texCoord?) | (texCoord,color?))?) | (texCoord,((color,normal?) | (normal,color?))?) )? ) | (color, ( (GeoOrigin, ((normal,texCoord?) | (texCoord,normal)?)?) | (normal,((GeoOrigin,texCoord?) | (texCoord,GeoOrigin?))?) | (texCoord,((GeoOrigin,normal?) | (normal,GeoOrigin?))?) )? ) | (normal, ( (color, ((GeoOrigin,texCoord?) | (texCoord,GeoOrigin?))?) | (GeoOrigin,((color,texCoord?) | (texCoord,color?))?) | (texCoord,((color,GeoOrigin?) | (GeoOrigin,color?))?) )? ) | (texCoord, ( (color, ((GeoOrigin,normal?) | (normal,GeoOrigin?))?) | (GeoOrigin,((color,normal?) | (normal,color?))?) | (normal,((color,GeoOrigin?) | (GeoOrigin,color?))?) )? )? --> <!ELEMENT GeoElevationGrid (IS?, ( ((%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 %GeoSystemType; geoGridOrigin %SFVec3d; "0 0 0" xDimension %SFInt32; "0" xSpacing %SFDouble; "1.0" yScale %SFFloat; "1.0" zDimension %SFInt32; "0" zSpacing %SFDouble; "1.0" height %MFFloat; #IMPLIED normalPerVertex %SFBool; "true" ccw %SFBool; "true" colorPerVertex %SFBool; "true" creaseAngle %SFFloat; "0" solid %SFBool; "true" nodeType NMTOKEN #FIXED "ElevationGrid" containerField NMTOKEN "geometry" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!-- Inline may contain nodes once url is loaded. --> <!-- This permits external access - open technical issue. --> <!-- Will be ( %SceneNodes; ) in x3d-compact.dtd form. --> <!ELEMENT GeoInline (IS?, ( %ChildrenNodes; | %WildcardNodes; )* ) > <!ATTLIST GeoInline url %MFString; #IMPLIED load %SFBool; "true" bboxCenter %SFVec3d; "0 0 0" bboxSize %SFVec3d; "-1 -1 -1" nodeType NMTOKEN #FIXED "Inline" containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!-- ((GeoOrigin, children?) | (children, GeoOrigin?))? --> <!ELEMENT GeoLocation (IS?, ( %ChildrenNodes; | %WildcardNodes; )*, (GeoOrigin, ( %ChildrenNodes; | %WildcardNodes; )* )? ) > <!ATTLIST GeoLocation geoSystem %GeoSystemType; geoCoords %MFVec3d; #IMPLIED nodeType NMTOKEN #FIXED "Transform" containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!-- (GeoOrigin, ((children, rootNode?) | (rootNode, children?))? ) | (children, ((GeoOrigin, rootNode?) | (rootNode, GeoOrigin?))? ) | (rootNode, ((children, GeoOrigin?) | (GeoOrigin, children?))? )? --> <!ELEMENT GeoLOD (IS?, ( ( %ChildrenNodes; | %WildcardNodes; )*, ( (GeoOrigin?, ( %ChildrenNodes; | %WildcardNodes; )*, rootNode?, ( %ChildrenNodes; | %WildcardNodes; )* )? | (rootNode, ( %ChildrenNodes; | %WildcardNodes; )*, GeoOrigin?, ( %ChildrenNodes; | %WildcardNodes; )* )? ) )? ) > <!ATTLIST GeoLOD geoSystem %GeoSystemType; rootUrl %MFString; #IMPLIED child1Url %MFString; #IMPLIED child2Url %MFString; #IMPLIED child3Url %MFString; #IMPLIED child4Url %MFString; #IMPLIED range %SFDouble; #IMPLIED center %SFVec3d; #IMPLIED nodeType NMTOKEN #FIXED "LOD" containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!-- GeoMetadata includes proposed itemization of specified 'summary' attributes in the X3D encoding --> <!ELEMENT GeoMetadata (IS?) > <!ATTLIST GeoMetadata url %MFString; #IMPLIED data IDREFS #IMPLIED summary %MFString; #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 nodeType NMTOKEN #FIXED "WorldInfo" containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT GeoOrigin (IS?) > <!ATTLIST GeoOrigin geoSystem %GeoSystemType; geoCoords %MFVec3d; #IMPLIED rotateYUp %SFBool; "false" nodeType NMTOKEN #FIXED "geoOrigin" containerField NMTOKEN "geoOrigin" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT GeoPositionInterpolator ( IS?, GeoOrigin? ) > <!ATTLIST GeoPositionInterpolator geoSystem %GeoSystemType; key %MFFloat; #IMPLIED keyValue %MFVec3d; #IMPLIED geoValue %SFVec3d; #IMPLIED nodeType NMTOKEN #FIXED "PositionInterpolator" containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT GeoTouchSensor ( IS?, GeoOrigin? ) > <!ATTLIST GeoTouchSensor geoSystem %GeoSystemType; enabled %SFBool; "true" hitNormal %SFVec3f; #IMPLIED hitGeoCoordinate %SFVec3d; #IMPLIED hitPoint %SFVec3f; #IMPLIED hitTexCoord %SFVec2f; #IMPLIED isActive %SFBool; #IMPLIED isOver %SFBool; #IMPLIED touchTime %SFTime; #IMPLIED nodeType NMTOKEN #FIXED "TouchSensor" containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT GeoViewpoint ( IS?, GeoOrigin? ) > <!ATTLIST GeoViewpoint geoSystem %GeoSystemType; position %SFVec3d; "0 0 100000" orientation %SFRotation; "0 0 1 0" fieldOfView %SFFloat; "0.785398" jump %SFBool; "true" navType %MFString; #IMPLIED headlight %SFBool; "true" description %SFString; #IMPLIED speed %SFFloat; "1" examine %SFVec3f; "0 0 0" nodeType NMTOKEN #FIXED "Viewpoint" containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <![%HAnimComponent;[ <!-- Humanoid Animation (H-Anim) 2.0 Document Type Definition (DTD) Description: Define the H-Anim tag and attribute profile for X3D. These X3D native nodes correspond to VRML Prototype declarations. Elements in this tagset are enabled by setting the H-AnimProfile entity to "INCLUDE" at the top of an X3D scene file, as shown in several examples such as examples/HumanoidAnimation/NancyNativeTags.xml. This flag then triggers inclusion of the HumanoidAnimation tags in the x3d-compact.dtd tagset. Thus the HumanoidAnimation.dtd demonstrates X3D extensibility for profiles. Added bboxCenter and bboxSize to Joint and Site as part of Schema development and SAI API normalization of node types. Work in progress. See ongoing 2000/2001 e-mail threads for details. Status: Testing results in progress. Compromise form also needed. JointNames need to be verified/split. Authors: Don Brutzman produced XML encoding for X3D Bernie Roehl and H-Anim Working Group for H-Anim specifications Matt Beitler for syntax/semantics of upgrades from 1.1 to 2.0 James Smith provided BoxMan model for testing 2.0 nodes and prototypes References: H-Anim 2001 Specification (Draft) http://h-anim.org/Specifications/H-Anim2001 http://www.web3D.org/TaskGroups/x3d/translation/examples/HumanoidAnimation/JointNames.txt Address: http://www.web3D.org/TaskGroups/x3d/translation/HumanoidAnimation2.0-compact.dtd Created: 4 July 2000 Revised: 30 December 2002 --> <!-- These need to get verified. Matt will split into JointNames, SegmentNames and SiteNames. Note that setting as enumerations does not permit validation of other names. --> <!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)" > <!-- Nodes --> <!ELEMENT HAnimDisplacer (IS?) > <!ATTLIST HAnimDisplacer name %SFString; #IMPLIED coordIndex %MFInt32; #IMPLIED displacements %MFVec3f; #IMPLIED containerField NMTOKEN #IMPLIED class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!-- no nodeType for Displacer since it has no similar node in VRML 97 --> <!-- humanoidBody is H-Anim 1.1, superceded by 2.0 specification --> <!ELEMENT humanoidBody ( %ChildrenNodes; | %WildcardNodes; )* > <!-- skeleton, skin defined by 2.0 specification --> <!ELEMENT skeleton ( %ChildrenNodes; | %WildcardNodes; )* > <!ELEMENT skin ( Shape | %WildcardNodes; )* > <!ELEMENT skinCoord ( Coordinate | %WildcardNodes; )* > <!ELEMENT skinNormal ( Normal | %WildcardNodes; )* > <!-- the following content model can likely be improved but it supports either 1.1 or 2.0 --> <!ELEMENT HAnimHumanoid (IS?, (humanoidBody? | (skeleton, (skinCoord, skinNormal?, skin)?)), (HAnimJoint | HAnimSegment | HAnimSite | Viewpoint)* ) > <!ATTLIST HAnimHumanoid name %SFString; #IMPLIED version (1.1|2.0) #IMPLIED humanoidVersion %SFString; #IMPLIED info %MFString; #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 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> <!ELEMENT HAnimJoint (IS?, ( %ChildrenNodes; | %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 Displacer nodes must appear consecutively inside Segment --> <!-- (children, ((coord, Displacer*) | (Displacer+, coord?))? ) | (coord, ((children, Displacer*) | (Displacer+, children?))? ) | (Displacer+, ((coord, children?) | (children, coord?))? )? --> <!ELEMENT HAnimSegment (IS?, ( ((%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?, ( %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;[ <!-- Nurbs 1.0 Document Type Definition (DTD) Description: Define the Nurbs tag and attribute profile for X3D. These X3D native nodes will correspond to forthcoming VRML ExternProto declarations. Elements in this tagset are enabled by setting the NurbsProfile entity to "INCLUDE" at the top of an X3D scene file, as shown in several examples such as examples/Nurbs/newNurbsScene.xml. This flag then triggers inclusion of the Nurbs tags in the x3d-compromise.dtd tagset. Thus the Nurbs.dtd demonstrates X3D extensibility for profiles. Status: Under development. Working node prototypes needed. Compact form also needed (eliminate all field tags except inputCoord and outputCoord). Authors: blaxxun interactive proposed the Nurbs extensions, Don Brutzman produced XML encoding of Nurbs nodes for X3D Reference: Nurbs Extension for VRML 97 proposal http://www.blaxxun.com/developer/contact/3d/nurbs/overview.html http://www.blaxxun.com/support/developerguide/developer/contact/3d/nurbs/spec/nurbsproposal.html Issues: - why isn't a complete set of prototype implementations available? - nodeTypeHints need to be checked, proposal and examples inconsistent - what are NurbsCurve2ILS and NurbsSurface2ILS? Utility prototypes? (yes) - should they be included in the DTD and extension profile? (no, but these can be good example/prototype authoring assists) - how is (unimplemented) NurbsTextureSurface utilized? examples? - what is default value of NurbsCurve tessellation, 0? (yes) - should NurbsPositionInterpolator have more fields: fraction (is in prototype; how else to set fraction along curve)? (yes) value (is in prototype; how else to get output)? (yes) key (probably not, keyValues probably correspond to knots)? dimension (probably not, but mentioned in description paragraph)? computeTangent, tangent (seem important to add)? Address: http://www.web3D.org/TaskGroups/x3d/translation/Nurbs.dtd Created: 7 November 2000 Revised: 30 December 2002 --> <!-- Field tags for contained nodes --> <!ELEMENT inputCoord ( Coordinate? ) > <!ELEMENT inputTransform ( Transform? ) > <!ELEMENT outputCoord ( Coordinate? ) > <!-- Nurbs nodes --> <!ELEMENT Contour2D (IS?, ( %ChildrenNodes; | %WildcardNodes; )* ) > <!ATTLIST Contour2D bboxCenter %SFVec3f; "0 0 0" bboxSize %SFVec3f; "-1 -1 -1" containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT CoordinateDeformer (IS?, ( (inputCoord, ((outputCoord, ((inputTransform,( %ChildrenNodes; | %WildcardNodes; )*) | (( %ChildrenNodes; | %WildcardNodes; )*,inputTransform)?)?) | (inputTransform,((outputCoord,( %ChildrenNodes; | %WildcardNodes; )*) | (( %ChildrenNodes; | %WildcardNodes; )*,outputCoord?))?) | (( %ChildrenNodes; | %WildcardNodes; )*,((outputCoord,inputTransform?) | (inputTransform,outputCoord?))?) )? ) | (outputCoord, ((inputCoord, ((inputTransform,( %ChildrenNodes; | %WildcardNodes; )*) | (( %ChildrenNodes; | %WildcardNodes; )*,inputTransform)?)?) | (inputTransform,((inputCoord,( %ChildrenNodes; | %WildcardNodes; )*) | (( %ChildrenNodes; | %WildcardNodes; )*,inputCoord?))?) | (( %ChildrenNodes; | %WildcardNodes; )*,((inputCoord,inputTransform?) | (inputTransform,inputCoord?))?) )? ) | (inputTransform, ((outputCoord,((inputCoord,( %ChildrenNodes; | %WildcardNodes; )*) | (( %ChildrenNodes; | %WildcardNodes; )*,inputCoord?))?) | (inputCoord,((outputCoord,( %ChildrenNodes; | %WildcardNodes; )*) | (( %ChildrenNodes; | %WildcardNodes; )*,outputCoord?))?) | (( %ChildrenNodes; | %WildcardNodes; )*,((outputCoord,inputCoord?) | (inputCoord,outputCoord?))?) )? ) | (( %ChildrenNodes; | %WildcardNodes; )*, ( (outputCoord, ((inputCoord,inputTransform?) | (inputTransform,inputCoord?))?) | (inputCoord,((outputCoord,inputTransform?) | (inputTransform,outputCoord?))?) | (inputTransform,((outputCoord,inputCoord?) | (inputCoord,outputCoord?))?) )? )? ) )> <!ATTLIST CoordinateDeformer uDimension %SFInt32; "0" vDimension %SFInt32; "0" wDimension %SFInt32; "0" uKnot %MFDouble; #IMPLIED vKnot %MFDouble; #IMPLIED wKnot %MFDouble; #IMPLIED uOrder %SFInt32; "2" vOrder %SFInt32; "2" wOrder %SFInt32; "2" controlPoint %MFVec3f; #IMPLIED weight %MFFloat; #IMPLIED bboxCenter %SFVec3f; "0 0 0" bboxSize %SFVec3f; "-1 -1 -1" containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT NurbsCurve (IS?) > <!ATTLIST NurbsCurve knot %MFDouble; #IMPLIED order %SFInt32; "3" controlPoint %MFVec3f; #IMPLIED weight %MFDouble; #IMPLIED tessellation %SFInt32; "0" containerField NMTOKEN "geometry" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT NurbsCurve2D (IS?) > <!ATTLIST NurbsCurve2D knot %MFFloat; #IMPLIED order %SFInt32; "3" controlPoint %MFVec2f; #IMPLIED weight %MFFloat; #IMPLIED tessellation %SFInt32; "0" containerField NMTOKEN "geometry" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT NurbsGroup (IS?, (%ChildrenNodes; | %WildcardNodes; )* ) > <!ATTLIST NurbsGroup 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 NurbsPositionInterpolator (IS?) > <!ATTLIST NurbsPositionInterpolator knot %MFDouble; #IMPLIED dimension %SFInt32; "0" order %SFInt32; "3" keyValue %MFVec3f; #IMPLIED keyWeight %MFDouble; #IMPLIED fractionAbsolute %SFBool; "true" containerField NMTOKEN "children" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT NurbsSurface (IS?, ( %TextureCoordinateNodes; )? ) > <!ATTLIST NurbsSurface uDimension %SFInt32; "0" vDimension %SFInt32; "0" uKnot %MFDouble; #IMPLIED vKnot %MFDouble; #IMPLIED uOrder %SFInt32; "3" vOrder %SFInt32; "3" controlPoint %MFVec3f; #IMPLIED weight %MFDouble; #IMPLIED uTessellation %SFInt32; "0" vTessellation %SFInt32; "0" ccw %SFBool; "true" solid %SFBool; "true" containerField NMTOKEN "geometry" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT NurbsTextureSurface (IS?) > <!ATTLIST NurbsTextureSurface uDimension %SFInt32; "0" vDimension %SFInt32; "0" uKnot %MFDouble; #IMPLIED vKnot %MFDouble; #IMPLIED uOrder %SFInt32; "3" vOrder %SFInt32; "3" controlPoint %MFVec2f; #IMPLIED weight %MFFloat; #IMPLIED containerField NMTOKEN "texCoord" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!ELEMENT ContourPolyline2D (IS?) > <!ATTLIST ContourPolyline2D point %MFVec2f; #IMPLIED containerField NMTOKEN "geometry" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> <!-- single NurbsSurface, preceded or followed by Contour2D --> <!ELEMENT TrimmedSurface (IS?, ((NurbsSurface,Contour2D*) | (Contour2D+,NurbsSurface,Contour2D*)) ) > <!ATTLIST TrimmedSurface containerField NMTOKEN "geometry" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <![%LatticeXvlComponent;[ <!-- LatticeXVL will likely get moved back into a separate DTD. --> <!-- XVL 1.0 Document Type Definition (DTD) Filename: LatticeXvl-compact.dtd Description: Define the XVL tag and attribute profile for X3D. This X3D native node corresponds to a VRML ExternProto declaration. Elements in this tagset are enabled by setting the XvlProfile entity to "INCLUDE" at the top of an X3D scene file, as shown in several examples such as examples/LatticeXvl/XvlShellAll.x3d. This flag then triggers inclusion of the XVL tags in the x3d-compact.dtd tagset. Thus the Xvl.dtd demonstrates X3D extensibility for profiles. Status: In testing and preparation for February 2002 SDK CDs Authors: Lattice Technology, Inc. proposed the Xvl extensions, Makito Seki produced XML encoding of XVL nodes for X3D with additional work by Marc Jablonski and Don Brutzman Reference: LatticeXvl extension for X3D http://www.web3d.org/TaskGroups/x3d/translation/examples/LatticeXvl/doc/proposal/LatticeProposal.html http://www.Xvl3D.com Issues: Mark has the list! Address: http://www.web3D.org/TaskGroups/x3d/translation/LatticeXvl-compact.dtd Created: 10 May 2001 Revised: 10 November 2002 --> <!-- for future: G1T1 level --> <!ENTITY % XvlG1T1ShellTypes "" > <!-- Types of XVL Shells --> <!ENTITY % XvlShell.shellTypes " %XvlG1T1ShellTypes; POLYGON_MESH | LATTICE_MESH " > <!ELEMENT XvlShell (IS?, ( ( (%TextureCoordinateNodes;), ((%CoordinateNodes;) | %WildcardNodes;) ) | ( (%CoordinateNodes;), ((%TextureCoordinateNodes;) | %WildcardNodes;)? ) | ( %WildcardNodes;, ((%TextureCoordinateNodes;) | (%CoordinateNodes;) | %WildcardNodes;)?) )? )> <!ATTLIST XvlShell shellType ( %XvlShell.shellTypes; ) #IMPLIED numberOfDivisions %SFInt32; #IMPLIED vertexRound %MFFloat; #IMPLIED edgeBeginCoordIndex %MFInt32; #IMPLIED edgeEndCoordIndex %MFInt32; #IMPLIED edgeRound %MFFloat; #IMPLIED edgeBeginVector %MFVec3f; #IMPLIED edgeEndVector %MFVec3f; #IMPLIED faceCoordIndex %MFInt32; #IMPLIED faceTexCoordIndex %MFInt32; #IMPLIED faceEmpty %MFBool; #IMPLIED faceHidden %MFBool; #IMPLIED containerField NMTOKEN "geometry" class CDATA "" DEF ID #IMPLIED USE IDREF #IMPLIED> ]]> <![%X3dInputOutputFields;[ <!ENTITY % FieldsDTD SYSTEM "x3d-3.0-InputOutputFields.dtd"> %FieldsDTD; ]]>
x3d-3.0-InputOutputFields.dtd extends the
X3D 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.
<!-- # Purpose: the 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 # # current version: 3.0.2 # # revised: 13 January 2003 # # 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/TaskGroups/x3d/translation/x3d-dtd-changelog.txt # --> <!ATTLIST AudioClip duration_changed %SFTime; #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 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 %SFInt32; #FIXED "" keyRelease %SFInt32; #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 duration_changed %SFTime; #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 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 "" rtpHeaderHeard %SFBool; #IMPLIED isActive CDATA #FIXED "" timestamp %SFTime; #IMPLIED 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 %SFBool; "false" collideTime %SFTime; #IMPLIED isDetonated %SFBool; "false" detonateTime %SFTime; #IMPLIED firedTime %SFTime; #IMPLIED > <!ATTLIST ReceiverPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" rtpHeaderHeard %SFBool; #IMPLIED isActive CDATA #FIXED "" timestamp %SFTime; #IMPLIED > <!ATTLIST SignalPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" rtpHeaderHeard %SFBool; #IMPLIED isActive CDATA #FIXED "" timestamp %SFTime; #IMPLIED > <!ATTLIST TransmitterPdu isStandAlone CDATA #FIXED "" isNetworkReader CDATA #FIXED "" isNetworkWriter CDATA #FIXED "" rtpHeaderHeard %SFBool; #IMPLIED isActive CDATA #FIXED "" timestamp %SFTime; #IMPLIED > <!ATTLIST GeoPositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED "" geovalue_changed %SFVec3d; #FIXED ""> <!ATTLIST GeoViewpoint set_bind CDATA #FIXED "" set_position %SFVec3d; #FIXED "" bindTime %SFTime; #FIXED "" isBound CDATA #FIXED ""> <!ATTLIST GeoTouchSensor hitGeoCoord_changed %SFString; #FIXED ""> <!ATTLIST NurbsPositionInterpolator set_fraction %SFFloat; #FIXED "" value_changed %SFVec3f; #FIXED "">