Extensible 3D (X3D) encodings
Part 1: Extensible Markup Language (XML) encoding
Annex B
(informative)
X3D XML Schema
(Updated using X3D Specifications: Schema and DOCTYPE Validation)
This annex provides a detailed description of the grammar for each syntactic element in this part of ISO/IEC 19776. Table B.1 lists the topics in this clause:
Table B.1 — Topics in this clause
An XML Schema defines the syntax of an XML tagset using an XML-based grammar as specified in [XML_SCHEMA]. Further information about XML Schema design is found in [XML_SCHEMA_PRIMER].
The X3D Schema has sufficient expressive power to:
MF
numeric arrays, only allow commas as whitespace between
individual SF
values and not within them.
This whitespace restriction provides significant benefit when validating the correctness of large numeric arrays.
The X3D Schema does not have sufficient expressive power to:
Editors note: adding explanatory excerpts from X3D XML Schema source seems like unnecessary detail.
Current versions of X3D XML Schema files are maintained at
[X3DVALIDATION].
Additional capabilities for validation of field values are provided by XML Document Type Definition (DTD), X3D Regular Expressions (regexes) [X3DREGEX], and X3D Schematron [SCHEMATRON.1] [SCHEMATRON.2] [X3DSCHEMATRON].
NOTE Additional information about X3D XML scene structure, allowed field values, data type restrictions, authoring hints, warnings, and errors can be found in X3D Tooltips [X3DTOOLTIPS] and X3D Unified Object Model [X3DUOM]. Validation assets are maintained in human-readable and machine-readable forms, in version control, and with corresponding documentation at [X3DVALIDATION].
x3d-3.0.xsd is the X3D schema file that validates model correctness for X3D version 3.0 content.
<!-- prior source document deleted for readability -->
x3d-3.0-Web3dExtensionsPublic.xsd extends the X3D version 3.0 schema. It is the public X3D schema file for X3D version 3.0 that can will be used to contain approved extensions that have not yet been included in Part 1 of ISO/IEC 19775. The form of the public X3D schema file is depicted below.
<!-- prior source document deleted for readability -->
x3d-3.0-Web3dExtensionsPrivate.xsd extends the X3D version 3.0 schema. It is the private X3D schema file for X3D version 3.0 that can will be used to contain extensions that have not been formally approved but may exist for testing future development. The form of the public X3D schema file is depicted below.
<!-- prior source document deleted for readability -->
x3d-3.1.xsd is the X3D schema file that validates model correctness for X3D version 3.1 content. Validation is backwards compatible with earlier versions of X3D models as well.
<!-- prior source document deleted for readability -->
x3d-3.1-Web3dExtensionsPublic.xsd extends the X3D version 3.1 schema. It is the public X3D schema file for X3D version 3.1 that can will be used to contain approved extensions that have not yet been included in Part 1 of ISO/IEC 19775. The form of the public X3D schema file is depicted below.
<!-- prior source document deleted for readability -->
x3d-3.1-Web3dExtensionsPrivate.xsd extends the X3D version 3.0 schema. It is the private X3D schema file for X3D version 3.1 that can will be used to contain extensions that have not been formally approved but may exist for testing future development. The form of the private X3D schema file is depicted below.
<!-- prior source document deleted for readability -->
x3d-3.2.xsd is the X3D schema file that validates model correctness for X3D version 3.2 content. Validation is backwards compatible with earlier versions of X3D models as well.
<!-- prior source document deleted for readability -->
x3d-3.2-Web3dExtensionsPublic.xsd extends the X3D version 3.2 schema. It is the public X3D schema file for X3D version 3.2 that can will be used to contain approved extensions that have not yet been included in Part 1 of ISO/IEC 19775. The form of the public X3D schema file is depicted below.
<!-- prior source document deleted for readability -->
x3d-3.2-Web3dExtensionsPrivate.xsd extends the X3D version 3.2 schema. It is the private X3D schema file for X3D version 3.2 that can will be used to contain extensions that have not been formally approved but may exist for testing future development. The form of the private X3D schema file is depicted below.
<!-- prior source document deleted for readability -->
x3d-3.3.xsd is the X3D schema file that validates model correctness for X3D version 3.3 content. Validation is backwards compatible with earlier versions of X3D models as well.
<!-- prior source document deleted for readability -->
x3d-3.3-Web3dExtensionsPublic.xsd extends the X3D version 3.3 schema. It is the public X3D schema file for X3D version 3.3 that can will be used to contain approved extensions that have not yet been included in Part 1 of ISO/IEC 19775. The form of the public X3D schema file is depicted below.
<!-- prior source document deleted for readability -->
x3d-3.3-Web3dExtensionsPrivate.xsd extends the X3D version 3.3 schema. It is the private X3D schema file for X3D version 3.3 that can will be used to contain extensions that have not been formally approved but may exist for testing future development. The form of the private X3D schema file is depicted below.
<!-- prior source document deleted for readability -->
x3d-4.0.xsd is the X3D schema file that validates model correctness for X3D version 4.0 content. Validation is backwards compatible with earlier versions of X3D models as well with one significant variation.
A containerField
value defines the field relationship between a given node and its parent.
X3D version 4 default containerField
values were changed for all six X3dMetadataObject nodes
(MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataSet, MetadataString).
This change was applied to version 4.0 (and greater) of the X3D DTD and X3D Schema in order to facilitate
more-readable construction of large metadata structures.
No functional or naming changes to field interfaces were made in the X3D Architecture [I19775-1].
This change can affect X3D files defined using the XML encoding that depend on implicit definition of
containerField
values in Metadata nodes by the X3D XML Schema declaration.
The following examples show how legacy X3D3 XML content that depends upon implicit containerField
values
may need to be modified for consistent definition as X3D4 XML.
Editors note: the following example excerpts can be found at WorldInfoExampleMetadataSetX3D3.x3d and WorldInfoExampleMetadataSetX3D4.x3d
EXAMPLE
Table B.2 — Equivalent representations of a metadata collection
X3D version 3.0-3.3 or version 4.0 content using explicit containerField values throughout |
|
X3D version 3.0-3.3 content using default containerField values |
|
X3D version 4.0 content using default containerField values |
|
The form of the public X3D schema file is depicted below.
Editors note: copying source document excerpts here, even if just for latest version, seems superfluous.
x3d-4.0-Web3dExtensionsPublic.xsd extends the X3D version 4.0 schema. It is the public X3D schema file for X3D version 4.0 that can will be used to contain approved extensions that have not yet been included in Part 1 of ISO/IEC 19775. The form of the public X3D schema file is depicted below.
Editors note: copying source document excerpts here, even if just for latest version, seems superfluous.
x3d-4.0-Web3dExtensionsPrivate.xsd extends the X3D version 4.0 schema. It is the private X3D schema file for X3D version 4.0 that can will be used to contain extensions that have not been formally approved but may exist for testing future development. The form of the private X3D schema file is depicted below.
Editors note: copying source document excerpts here, even if just for latest version, seems superfluous.