Extensible 3D (X3D)
Part 1: Architecture and base components

6 Conformance

--- X3D separator bar ---

cube 6.1 General

6.1.1 Topics

This clause addresses conformance of X3D files, X3D generators and X3D browsers.

The topics covered in this clause are shown in Table 6.1.

Table 6.1: Topics in this clause

6.1.2 Objectives

The primary objectives of the specifications in this clause are:

  1. to promote interoperability by eliminating arbitrary subsets of, or extensions to, ISO/IEC 19775;
  2. to promote uniformity in the development of conformance tests;
  3. to promote consistent results across X3D browsers;
  4. to facilitate automated test generation.

6.1.3 Scope

Conformance is defined for X3D files and for X3D browsers. For X3D generators, conformance guidelines are presented for enhancing the likelihood of successful interoperability.

A concept of base profile conformance is defined to ensure interoperability of X3D generators and X3D browsers. Base profile conformance is based on a set of limits and minimal requirements. Base profile conformance is intended to provide a functional level of reasonable utility for X3D generators while limiting the complexity and resource requirements of X3D browsers. Base profile conformance may not be adequate for all uses of X3D.

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.

cube 6.2 Conformance

6.2.1 Conformance of X3D files

A X3D file is syntactically correct according to ISO/IEC 19775 if the following conditions are met:

  1. The X3D file contains as its first element an X3D header statement (see 7.2.3.2, Header statement).
  2. All entities contained therein match the functional specification of the corresponding entities of ISO/IEC 19775. The X3D file shall obey the relationships defined in the formal grammar and all other syntactic requirements.
  3. The sequence of entities in the X3D file obeys the relationships specified in ISO/IEC 19775 producing the structure specified in ISO/IEC 19775.
  4. All field values in the X3D file obey the relationships specified in ISO/IEC 19775 producing the structure specified in ISO/IEC 19775.
  5. No nodes appear in the X3D file other than those specified for the applicable profile as specified in ISO/IEC 19775 unless required for the encoding technique or those defined by the PROTO or EXTERNPROTO entities should such be available in the profile.
  6. The X3D file is encoded according to the rules of ISO/IEC 19776.
  7. It does not contain behaviour described as undefined elsewhere in this specification.

6.2.2 Conformance of X3D generators

A X3D generator is conforming to ISO/IEC 19775 if all X3D files that are generated are syntactically correct and meet the requirements state in 6.2.1, Conformance of X3D files.

A X3D generator conforms to a profile if it can be configured such that all X3D files generated conform to that profile.

6.2.3 Conformance of X3D browsers

An X3D browser is conforming if:

  1. It is able to read any X3D file that conforms to the profiles supported by that browser.
  2. It presents the graphical and audio characteristics of the X3D nodes in any X3D file that conforms to the applicable profile, within the latitude defined in for that profile and as allowed in this clause.
  3. It correctly handles user interaction and generation of events as specified for the applicable profile within the latitude defined for that profile and as allowed in this clause.
  4. It satisfies the minimum support requirements for browsers for the applicable profile as enumerated in the table of minimum support requirements for that profile.

cube 6.3 Minimum support requirements

6.3.1 Minimum support requirements for generators

There is no minimum complexity which is required of (or appropriate for) X3D generators. Any compliant set of nodes of arbitrary complexity may be generated, as appropriate to represent application content, and which produce only the nodes allowed by the applicable profile.

6.3.2 Minimum support requirements for browsers

Each profile defines the minimum complexity which shall be supported by an X3D browser in support of that profile. Browser implementations may choose to support greater limits but may not reduce the limits described for the applicable profile. When the X3D file contains nodes which exceed the limits implemented by the browser, the results are undefined. The words "optionally supported" in the minimum browser support column refers only to the display of the item; in particular, set_ events to ignored inputOutput fields shall still generate corresponding _changed events. Where latitude is specified in a table of minimum support requirements for a particular node, full support is required for other aspects of that node.

--- X3D separator bar ---