XML Schema for the Extensible 3D (X3D) Graphics Specification tagset
boundingBoxSizeType dimensions are non-negative values, default value (-1 -1 -1) indicates that no bounding box size has been computed.
intensityType values are floats ranging [0..1]
SFBool is a logical type with possible values (true|false) to match the XML boolean type.
Hint: X3D SFBool values are lower case (true|false) in order to maintain compatibility with other XML documents.
MFBool is an array of Boolean values.
Type MFBool was previously undefined in the VRML 97 Specification, but nevertheless needed for event utilities and scripting.
Example use: MFBool is useful for defining a series of behavior states using a BooleanSequencer prototype.
Array values are optionally separated by commas.
SFDouble is a double-precision floating-point type. Array values are optionally separated by commas.
See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations of Single Precision for rationale.
MFDouble is an array of Double values, i.e. a double-precision floating-point array type.
See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations of Single Precision for rationale.
SFDouble/MFDouble are analagous to SFDouble/MFDouble. Array values are optionally separated by commas.
SFFloat is a single-precision floating-point type.
MFFloat is an array of SFFloat values, i.e. a single-precision floating-point array type. Array values are optionally separated by commas.
The SFImage field specifies a single uncompressed 2-dimensional pixel image. SFImage fields contain three integers representing the width, height and number of components in the image, followed by (width x height) hexadecimal or integer values representing the pixels in the image.
MFImage is an array of SFImage values.
An SFInt32 field specifies one 32-bit signed integer.
An MFInt32 field defines an array of 32-bit signed integers. Array values are optionally separated by commas.
SFRotation is an axis-angle 4-tuple, indicating X-Y-Z direction plus angle orientation about that axis. The first three values specify a normalized rotation axis vector about which the rotation takes place. (Thus the first three values shall be within the range [-1..+1] in order to represent a normalized unit vector. Problem: scientific notation allows leading digit.) The fourth value specifies the amount of right-handed rotation about that axis in radians.
MFRotation is an array of SFRotation values. Array values are optionally separated by commas.
SFString defines a single string encoded with the UTF-8 universal character set.
MFString is an array of SFString values, each "quoted" and separated by whitespace. Array values are optionally separated by commas.
The SFTime field specifies a single time value. Time values are specified as a double-precision floating point number. Typically, SFTime fields represent the number of seconds since Jan 1, 1970, 00:00:00 GMT.
MFTime is an array of SFTime values. Array values are optionally separated by commas.
SFVec2f is a 2-tuple pair of SFFloat values.
Hint: SFVec2f can be used to specify a 2D single-precision coordinate.
MFVec2f is an array of SFVec2f values. Array values are optionally separated by commas.
SFVec2d is a 2-tuple pair of SFDouble values. Array values are optionally separated by commas.
Hint: SFVec2d can be used to specify a 2D double-precision coordinate.
MFVec2d is an array of SFVec2d values. Array values are optionally separated by commas.
SFVec3f is a 3-tuple triplet of SFFloat values.
Hint: SFVec3f can be used to specify a 3D coordinate or a 3D scale value.
MFVec3f is an array of SFVec3f values. Array values are optionally separated by commas.
SFVec3d is a 3-tuple triplet of SFDouble values.
See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations of Single Precision.
Hint: SFVec3d can be used to specify a georeferenced 3D coordinate.
MFVec3d is an array of SFVec3d values. Array values are optionally separated by commas.
Original rationale for inclusion: GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations of Single Precision.
Hint: MFVec3d can be used to specify a list of georeferenced 3D coordinates.
accessTypeNames are allowed enumeration values for accessType. Prior names in VRML 97 were eventIn, eventOut, field, exposedField respectively.
ArcClose2dTypeValues are allowed enumeration values for ArcClose2D closureType.
componentNames are enumeration constants used to identify the profile for each scene-graph node, and also utilized by X3D element to identify the components required by the contained Scene.
Core component is provided as the basis for custom componentization.
fieldTypeName contains the names of all X3DField types.
fontFamilyValues are allowed enumeration values for FontStyle/ScreenFontStyle node family attribute.
unbounded, additional values are possible
fontStyleValues are allowed enumeration values for FontStyle/ScreenFontStyle node style attribute.
fogTypeValues are allowed enumeration values for Fog node fogType attribute.
hanimVersionValues enumeration constants are used to identify the allowed versions for an HAnimHumanoid node.
Note that HAnim version 2.0 is approved, while versions 1.0/1.1 are incompatible and version 2.2 is experimental.
HAnim 19774 V1.0 approved by ISO in 2006.
Experimental HAnim 19774 V1.0 approved by ISO in 2006.
unbounded, additional values are possible
metadataContainerFieldValues provide allowed enumeration values for Metadata node containerField: "value" if parent node is MetadataSet, otherwise "metadata" default.
this node provides metadata information regarding it's parent node
parent node is MetadataSet, this node is part of a metadata collection
metaDirectionValues are allowed enumeration values for meta element direction attribute.
right-to-left
left-to-right
networkModeValues are allowed enumeration values for DIS field networkMode.
profileName enumeration constants are used to identify the profile for each scene-graph node, and also utilized by X3D element to identify the profile of a contained Scene.
Core Profile includes no nodes and is provided as the basis for custom componentization.
Interchange Profile equals the minimum subset of nodes needed to display lightweight compelling content.
Interactive Profile adds interaction nodes (Anchor, KeySensor) to the minimum subset of nodes needed to display lightweight compelling content.
Immersive Profile equals all of the nodes in the VRML 97 Specification, plus various X3D node additions including KeySensor, StringSensor and Scene.
MPEGInteractive Profile defines base interoperability with MPEG4 standards to a small subset of nodes needed to display lightweight compelling content.
The Full Profile corresponds to all Immersive X3D nodes plus all approved/implemented extensions. Full may get renamed Integrated.
textureCoordinateGeneratorModeValues are allowed enumeration values for TextureCoordinateGenerator mode field.
x3dVersion enumeration constants are used to identify the allowed versions for an X3D scene graph.
X3D v3.0 approved by ISO in 2004.
Table of fields having accessType initializeOnly.
Table of fields having accessType inputOnly. These are not otherwise listed in element definitions since they cannot be specified in an .x3d file.
Table of fields having accessType outputOnly. These are not otherwise listed in element definitions since they cannot be specified in an .x3d file.
Table of fields having accessType inputOutput.
The class attribute is a space-separated list of classes, reserved for use by XML stylesheets.
Nodes of this type can be used as child nodes for Appearance.
Base type for all Appearance nodes.
Abstract type from which all backgrounds inherit, also defining a background binding stack.
Only one skyColor is required at level 1.
Bindable nodes implement the binding stack, so that only one of each node type is active at a given time.
X3DBoundedObject indicates that bounding box values can be provided (or computed) to encompass this node and any children.
A node that implements X3DChildNode is one of the legal children for a X3DGroupingNode parent.
Base type for color specifications in X3D.
Composed geometry nodes produce renderable geometry, can contain Color Coordinate Normal TextureCoordinate, and are contained by a Shape node.
Base type for all coordinate node types in X3D.
Base type for all drag-style pointing device sensors.
Base type for the environmental sensor nodes ProximitySensor, TransformSensor and VisibilitySensor.
X3DField is equivalent to SF (Single Field) simple non-Node types in the VRML 97 Specification.
Base type for all font style nodes.
Base type for all geometric property node types.
Geometry nodes produce renderable geometry and are contained by a Shape node.
Grouping nodes can contain other nodes as children, thus making up the backbone of a scene graph.
children
Base type for all nodes that contain only information without visual semantics.
Interpolator nodes are designed for linear keyframed animation.
Interpolators are driven by an input key ranging [0..1] and produce corresponding piecewise-linear output functions.
Base type for all sensor node types that operate using key devices.
Light nodes provide illumination for rendering geometry in the scene.
Each node inheriting the X3DMetadataObject interface contains a single array of strictly typed values: MFBool, MFInt32, MFFloat, MFDouble, MFString, or MFNode, the latter having children that are all Metadata nodes.
Base typefor all sensors that generate events based on network activity.
All instantiable nodes implement X3DNode, which corresponds to SFNode in the X3D specification.
metadata
Base type for all normal node types in X3D.
Base type for all nodes that provide control curve information in 2D space.
Abstract geometry type for all types of NURBS surfaces.
Base type for all geometry node types that are created parametrically and use control points to describe the final shape of the surface.
Base type for all pointing device sensors.
Base type for all prototype instances.
Note that direct children nodes are disallowed, instead let fieldValue with type SFNode/MFNode contain them.
Current practice is that, if desired, prototype authors must explicitly add the metadata SFNode field in the ProtoInterface.
metadata
This abstract node type is the base type for all scripting nodes.
metadata
Base type for all sensors.
Base type from which all Sequencers are derived.
Base type for all Shape nodes.
Base type for all sound nodes.
Nodes implementing X3DSoundSourceNode are allowed as children of Sound node.
Base type for all nodes which specify texture coordinates.
Base type for all nodes which specify a transformation of texture coordinates.
Base type from which all time-dependent nodes are derived.
Base type for all touch-style pointing device sensors.
Base type from which all trigger nodes are derived.
X3DUrlObject indicates that a node has content loaded from a Uniform Resource Locator (URL) and can be tracked via a LoadSensor.
The class attribute is a space-separated list of classes, reserved for use by XML stylesheets.
SceneGraphStructureStatement is a marker interface that identifies statements relating to nonrenderable scene graph structure.
SceneGraphStructureStatement does not extend from any other node type since it is not an explicit part of the X3D node interface hierarchy, and DEF/USE is not appropriate for such statements.
TODO. This complexType will likely not be needed, since integrating ProtoInstance into the content models solves the wildcard and extensibility problems.
Child-node content model corresponding to X3DAppearanceChildNode, loosely defined for better API-generation support.
Appropriately typed substitution node
Child-node content model corresponding to X3DAppearanceChildNode, loosely defined for better API-generation support.
fillProperties
lineProperties
material
texture
texture
texture
texture
textureTransform
textureTransform
ChildContentModel is the child-node content model corresponding to X3DChildNode, combining all profiles. ChildContentModel can contain most nodes, other Grouping nodes, Prototype declarations and ProtoInstances in any order and any combination. When the assigned profile is less than Full, the precise palette of legal nodes that are available depends on assigned profile and components.
children
Child-node content model corresponding to X3DChildNode for Core profile. Following an optional IS element defined by X3DNode content model, the ChildContentModelCore enables the following child element of any node to be MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataSet or MetadataString.
Child-node content model corresponding to X3DChildNode for Interchange profile.
Child-node content model corresponding to X3DChildNode for Interactive profile.
Child-node content model corresponding to X3DChildNode for Immersive profile.
Child-node content model corresponding to X3DChildNode for Full profile.
Child-node content model corresponding to X3DChildNode for DIS component.
Child-node content model corresponding to X3DChildNode for GeoSpatial component.
Child-node content model corresponding to X3DChildNode for HumanoidAnimation component.
Child-node content model corresponding to X3DChildNode for Nurbs component.
Child-node content model corresponding to ProtoInstance in Immersive profile.
Appropriately typed substitution node
Child-node content model corresponding to SceneGraphStructure elements, which are not specific X3D nodes.
These X3D statements are ProtoDeclare, ExternProtoDeclare, IMPORT, EXPORT and ROUTE.
ColorCoordinateContentModel is the child-node content model utilized by IndexedLineSet, LineSet and PointSet. ColorCoordinateContentModel can contain any-order Coordinate (or CoordinateDouble) node with Color (or ColorRGBA) node. No more than one instance of any single node type is allowed.
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
ColorNormalTexCoordContentModel is the child-node content model utilized by ElevationGrid and GeoElevationGrid. ColorNormalTexCoordContentModel can contain Color (or ColorRGBA), Normal and TextureCoordinate, in any order. No more than one instance of any single node type is allowed.
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
ColorCoordinateNormalTexCoordContentModel is the child-node content model corresponding to IndexedFaceSet and related Triangle-3D geometry nodes. ColorCoordinateNormalTexCoordContentModel can contain VertexAttribute, Color (or ColorRGBA), Coordinate (or CoordinateDouble), Normal and TextureCoordinate nodes, in any order. No more than one instance of any single node type is allowed.
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
GeometryContentModel is the child-node content model corresponding to X3DGeometryNode. No more than one instance of any single geometry node is allowed.
geometry
Child-node content model corresponding to X3DGeometryNode for Interchange profile.
Child-node content model corresponding to X3DGeometryNode for Interactive profile.
Child-node content model corresponding to X3DGeometryNode for Immersive profile.
Child-node content model corresponding to Geometry2D component.
Child-node content model corresponding to Geometry2D component.
Child-node content model corresponding to X3DGeometryNode for GeoSpatial component.
Child-node content model corresponding to X3DGeometryNode for Nurbs component.
Child-node content model corresponding to X3DChildNode. GroupingNodeChildContentModel can contain most nodes, other Grouping nodes, Prototype declarations and ProtoInstances in any order and any combination. When less that Full profile, the precise palette of legal nodes that are available depends on profile and components.
Child-node content model utilized by LoadSensor node, which determines if the retrievable content for the child X3DUrlObject nodes has been loaded from the network. When less that Full profile, the precise palette of legal nodes that are available depends on profile and components.
watchList
Child-node content model corresponding to a valid scene-graph fragment. SceneGraphFragmentContentModel can provide field or fieldValue initialization, so no ROUTEs or prototype declarations allowed.
Child-node content model corresponding to a valid scene-graph fragment. Also includes ROUTE(s) and prototype declaration(s).
ShapeChildContentModel is the child-node content model utilized by X3DShapeNode. ShapeChildContentModel can contain a single Appearance node and a single geometry node, in any order.
appearance
geometry
Appropriately typed substitution node
geometry
appearance
Appropriately typed substitution node
appearance or geometry
geometry or appearance
geometry
appearance
Appropriately typed substitution node
SoundChildContentModel is the child-node content model utilized by Sound node. SoundChildContentModel can contain a single AudioClip or MovieTexture as sound source.
source
Appropriately typed substitution node
TextChildContentModel is the child-node content model utilized by Text. TextChildContentModel can contain a single FontStyle node.
Appropriately typed substitution node
TextureBackgroundChildContentModel is the child-node content model utilized by TextureBackground. TextureBackgroundChildContentModel can contain up to six Texture nodes (ImageTexture, MovieTexture, MultiTexture or PixelTexture). Each child texture shall have a different containerField for topTexture, bottomTexture, leftTexture, rightTexture, frontTexture and backTexture.
Appropriately typed substitution node
range +/- 2pi
range +/- 2pi
range +/- 2pi
range +/- 2pi
Alpha value optionally supported until Rendering component level 4.
DirectionalLight might not be scoped by parent Group or Transform at levels 1 or 2.
A Material with emissiveColour not equal to (0,0,0) and diffuseColor equal to (0,0,0) is an unlit material.
One-bit transparency; transparency values >= 0.5 are transparent.
Default containerField='metadata' when providing information about the parent element itself, otherwise apply containerField='value' when this element contains payload metadata inside a parent/ancestor MetadataSet element.
Default containerField='metadata' when providing information about the parent element itself, otherwise apply containerField='value' when this element contains payload metadata inside a parent/ancestor MetadataSet element.
Default containerField='metadata' when providing information about the parent element itself, otherwise apply containerField='value' when this element contains payload metadata inside a parent/ancestor MetadataSet element.
Default containerField='metadata' when providing information about the parent element itself, otherwise apply containerField='value' when this element contains payload metadata inside a parent/ancestor MetadataSet element.
Default containerField='metadata' when providing information about the parent element itself, otherwise apply containerField='value' when this element contains payload metadata inside a parent/ancestor MetadataSet element.
Default containerField='texture' when parent is an Appearance node, otherwise containerField='source' when parent is a Sound node.
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
type attribute support for at least "ANY", "FLY", "EXAMINE", and "NONE" at level 1,
plus support for "WALK", "LOOKAT" at level 2.
Linear attenuation may occur at level 2, full support at level 3.
Linear attenuation may occur at level 2, full support at level 3.
StaticGroup is similar to Group node but does not allow access to children after creation time.
children
The field element can contain either attribute-value or node content. field is utilized by ExternProtoDeclare, ProtoDeclare and Script nodes.
The fieldValue element can contain either attribute-value or node content. fieldValue is utilized by ProtoInstance nodes, reinitializing default values specified in ProtoDeclare field elements.
http://www.dublincore.org/documents/dcmi-terms/#terms-description
http://www.w3.org/TR/html4/struct/global.html#adef-content
http://www.w3.org/TR/html4/struct/dirlang.html#adef-dir
http://www.w3.org/TR/html4/struct/global.html#adef-http-equiv
http://www.w3.org/TR/html4/struct/dirlang.html#h-8.1.1
http://www.w3.org/TR/html4/struct/global.html#idx-scheme
ExternProtoDeclare refers to a ProtoDeclare node declaration provided in another file.
ExternProtoDeclare interfaces are defined with field elements (without IS attributes).
ProtoDeclare defines new Prototype nodes. Nested ProtoDeclares and ProtoInstances are allowed by the specification.
ProtoInterface defines fields for new Prototype nodes.
ProtoBody contains the definition nodes for new Prototype nodes.
Nested ProtoDeclares, ProtoInstances are allowed by specification. ProtoInstance contained content normally captured via fieldValue initializations.
ROUTE connects output fields of event-producing nodes to input fields of event-consuming nodes.
Scene is the implicit root node of the X3D scene graph.
X3D is the top-most XML element for an Extensible 3D (X3D) Graphics file.
Note that MFNode rootNode field can contain multiple nodes and has accessType inputOutput.
Meanwhile MFNode children field is outputOnly, unlike other X3DGroupingNode exemplars.
rootNode
Appropriately typed substitution node
GeoOrigin is deprecated and discouraged (but nevertheless allowed) in X3D v3.3.
GeoOrigin is likely to be restored in X3D v4.0 for special use on devices with limited floating-point resolution.
CAESAR joint names for identification of HAnimJoint nodes.
CAESAR segment names for identification of HAnimSegment nodes.
CAESAR feature point names, index and description for use by HAnimDisplacer nodes.
CAESAR site names for identification of HAnimSite nodes. HAnimSite name fields can also include name="somelocation_view" and so siteNames validation is turned off by default.
skinCoord
skinNormal
restricted version of X3DGroupingNode, content model is [HAnimJoint,HAnimSegment,HAnimSite] children and HAnimDisplacer displacers
children
children
displacers
displacers
children
Appropriately typed substitution node
controlPoint
Appropriately typed substitution node
controlPoint
Appropriately typed substitution node
controlPoint
controlPoint
texCoord
texCoord
texCoord
Appropriately typed substitution node
controlPoint
Appropriately typed substitution node
geometry
Appropriately typed substitution node
controlPoint
Appropriately typed substitution node
crossSectionCurve
crossSectionCurve
trajectoryCurve
Appropriately typed substitution node
TODO recheck spec
Appropriately typed substitution node
trimmingContour
controlPoint
controlPoint
texCoord
texCoord
texCoord
Appropriately typed substitution node