Extensible 3D (X3D) encodings
Part 2: Classic VRML encoding
7 Conformance
TODO, review: adjust to match corresponding organization as found in 19776-1 XML encoding Conformance,
9776-2 Classic VRML encoding, and 19776-3 Compressed binary encoding Conformance.
Consistent document structure will further assist in creation of future X3D Encoding specifications (e.g. EXI, JSON, Turtle).
This clause addresses conformance of Classic VRML encoded X3D files, and
conformance of X3D generators and X3D browsers that support the Classic VRML encoding.
Editors note, completed: the following section moved to 7.1.3
Conformance is defined for Classic VRML encoded files, for X3D generators
that produce such files, and for X3D browsers that support Classic VRML encoded
files. Conformance to an X3D profile is specified as related to technology in
this part of ISO/IEC 19776.
This clause does not define the application requirements or dictate
application functional content within an X3D file.
The primary objectives of the specifications in this clause are:
to promote interoperability by eliminating arbitrary subsets of, or
extensions to, ISO/IEC 19775;
to promote uniformity in the development of conformance tests;
to promote consistent results across X3D browsers;
to facilitate automated test generation.
7.1.3 Scope
Conformance is defined for X3D models written as Classic VRML encoded files
and for X3D browsers
which support Classic VRML encoded files.
For X3D generators, conformance guidelines
improve the likelihood of successful interoperability.
A concept of conformance to an X3D profile is introduced along with the rules
which apply to this encoding.
This clause addresses the X3D data stream and implementation requirements.
Implementation requirements include the latitude allowed for X3D generators and
X3D browsers. This clause does not directly address the environmental,
performance, or resource requirements of the generator or browser.
This clause does not define the application requirements or dictate
application functional content within a X3D file.
The scope of this clause is limited to rules for the open interchange of X3D
content using the Classic VRML encoding.
7.2 Conformance
7.2.1 Conformance of Classic VRML encoded files
An X3D file is syntactically correct according to this part of ISO/IEC 19776
if the following conditions are met:
Any UNIT statements (see 4.3.2.5 UNIT statement syntax)
in the X3D file immediately follow any COMPONENT statements or the
PROFILE statement if there are no COMPONENT statements.
Any META statements
(see 4.3.2.6 META statement
syntax) in the X3D file immediately follow any UNIT statements or any
COMPONENT statements if there are no UNIT statements or the PROFILE
statement if there are neither UNIT nor COMPONENT statements.
All entities
contained therein match the functional specification of the corresponding
entities of
ISO/IEC 19775-1 X3D Architecture.
The X3D file shall obey the
relationships defined in the formal grammar and all other syntactic
requirements.
The sequence of entities in the Classic VRML encoded file obeys the
relationships specified in
ISO/IEC 19775-1
producing the structure specified
in ISO/IEC 19775-1.
All field values in the Classic VRML encoded file obey the
relationships specified in
ISO/IEC 19775-1 producing the structure specified
in ISO/IEC 19775-1.
No nodes appear in the X3D file other than those allowed by ISO/IEC
19775-1 unless required for the Classic VRML encoding technique or those defined by the
PROTO or EXTERNPROTO entities.
The X3D file is encoded according to the specification in this part of ISO/IEC
19776.
The X3D file does not contain behaviour specified as undefined in ISO/IEC 19775-1.
A Classic VRML encoded X3D file conforms
to the profile specified in its header statementto a particular profile
if:
It is syntactically correct.
It meets the restrictions of the profile as defined in the
requirementsannexes of ISO/IEC 19775-1 or in other parts
of ISO/IEC 19775.
A Classic VRML encoded X3D file conforms to individual components if:
The X3D file conforms to the specified profile.
The X3D file meets the restrictions of the component and component
support level as defined in
ISO/IEC 19775-1 X3D Architecture
for that component.
It contains only the nodes and statements allowed by the specified
PROFILE and COMPONENT statements.
7.2.2 Conformance of Classic VRML encoding
generators
A Classic VRML encoding generator conforms to this part of ISO/IEC 19776 if all
X3D files that are generated are syntactically correct according to the
provisions of this part of ISO/IEC 19776.
A Classic VRML encoding generator conforms to a particular profile if it can be
configured such that all X3D files generated
while in that configuration
conform to that particular profile.
A Classic VRML encoding generator conforms to a particular component if it
can be configured such that all X3D files generated
while in that configuration
conform the specified component and component support level.
7.2.3 Conformance of Classic VRML encoding browsers
An X3D browser that supports the Classic VRML encoding conforms to a particular
profile if:
It is able to read any Classic VRML encoded file that conforms to that
particular profile.
It presents the graphical and audio characteristics of the X3D nodes in
any Classic VRML encoded file that conforms to the that particular profile,
within the latitude defined in the specification for that particular profile.
It correctly handles user interaction and generation of events as
specified in
ISO/IEC 19775-1 X3D Architecture,
within the latitude defined in the specification
for that particular profile as defined in the annexes of
ISO/IEC 19775-1 or in
other parts of ISO/IEC 19775.
It satisfies the requirements of that particular profile in regard to
minimum support requirements as defined in the specification for that
particular profile.
It satisfies the general conformance requirements for browsers as stated in
the Conformance clause of6 Conformance
of ISO/IEC 19775-1.
An X3D browser that supports any Classic VRML encoded file that contains
COMPONENT statements conforms to the specified component if:
It is able to read all nodes and/or statements required by that
component when encoded in the Classic VRML encoding.
It does not allow any nodes and/or statements that are specified for a
component support level that exceeds the level specified in the COMPONENT
statement.