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.
See 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.
fontStyleValues are allowed enumeration values for FontStyle node type 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.
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 author lightweight compelling content.
Interactive Profile adds interaction nodes (Anchor, KeySensor) to the minimum subset of nodes needed to author 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.
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.
Nodes of this type can be used as child nodes for Appearance.
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.
Composed geometry nodes produce renderable geometry, can contain Color Coordinate Normal TextureCoordinate, and are contained by a Shape node.
X3DField is equivalent to SF (Single Field) simple non-Node types in the VRML 97 Specification.
Geometry nodes produce renderable geometry and are contained by a Shape node.
This is the base node type for all geometric property node types.
Grouping nodes can contain other nodes as children, thus making up the backbone of a scene graph.
children
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.
Light nodes provide illumination for rendering geometry in the scene.
Each X3DMetadataObject node contains a single array of strictly typed values: MFBool, MFInt32, MFFloat, MFDouble, MFString, of MFNode of ther Metadata nodes.
Default containerField='metadata', otherwise apply containerField='value' for contained payload metadata inside MetadataSet element.
All instantiable nodes implement X3DNode, which corresponds to SFNode in the X3D specification.
metadata
Note that direct children nodes are disallowed, let fieldValue with type SFNode/MFNode contain them.
metadata
metadata
Nodes implementing X3DSoundSourceNode are allowed as children of Sound node.
X3DUrlObject indicates that a node has content loaded from a URL and can be tracked via a LoadSensor.
SceneGraphStructureStatement is a marker interface that identifies nonrenderable nodes relating to scene graph structure. SceneGraphStructureStatement extends from Base rather than X3DNode since DEF/USE not appropriate for declarations.
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 are ProtoDeclare, ExternProtoDeclare, IMPORT, EXPORT or ROUTE statements.
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 X3DSoundNode. 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
Default containerField='metadata', otherwise apply containerField='value' for contained payload metadata inside MetadataSet element.
Appropriately typed substitution node
Appropriately typed substitution node
Appropriately typed substitution node
StaticGroup is similar to Group node but does not allow access to children after creation time.
children
field can contain either attribute-value or node content. field is utilized by ExternProtoDeclare, ProtoDeclare and Script nodes.
fieldValue 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, ProtoInstances are allowed by 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.
rootNode
Appropriately typed substitution node
GeoOrigin is deprecated and discouraged (but nevertheless allowed) in X3D v3.3.
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