Extensible 3D (X3D) encodings
Part 5: JSON encoding

7 Conformance

--- X3D separator bar ---

cube 7.1 Introduction and topics

7.1.1 Introduction

This clause addresses conformance of JSON encoded files and conformance of X3D generators and X3D browsers that support the JSON encoding.

7.1.2 Topics

Table 7.1 lists the topics in this clause.

Table 7.1 — Topics

7.1.3 Overview

Conformance is defined for JSON encoded files, for X3D generators that produce such files, and for X3D browsers that support JSON 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.

--- X3D separator bar ---

cube 7.2 Conformance

7.2.1 Conformance of JSON encoded files

An X3D file is syntactically correct according to this part of ISO/IEC 19776 if the following conditions are met:

  1. The X3D file starts with the text specified in 4.3.2.2 "X3D" property syntax.
  2. The "X3D" object contains a "@profile" property as specified in 4.3.2.3 "@profile" property syntax.
  3. If the "X3D" object contains a "component" property it is in accordance with 4.3.2.5 "component" property syntax.
  4. If the "X3D" object contains a "unit" property it is in accordance with 4.3.2.6 "unit" property syntax.
  5. If the "head" object contains a "meta" property it is in accordance with 4.3.2.7 "meta" property syntax.
  6. All entities contained therein match the functional specification of the corresponding entities of ISO/IEC 19775-1. The X3D file shall obey the relationships defined in the formal grammar and all other syntactic requirements.
  7. The sequence of entities in the JSON encoded file obeys the relationships specified in ISO/IEC 19775-1 producing the structure specified in ISO/IEC 19775-1.
  8. All field values in the JSON encoded file obey the relationships specified in ISO/IEC 19775-1 producing the structure specified in ISO/IEC 19775-1.
  9. No nodes appear in the X3D file other than those allowed by ISO/IEC 19775-1 except for nodes defined by the "ProtoDeclare" (see 4.3.2.11 "ProtoDeclare" property syntax) or "ExternProtoDeclare" entities (see 4.3.2.12 "ExternProtoDeclare" property syntax).
  10. The X3D file is encoded according to the specification in this part of ISO/IEC 19776.
  11. The X3D file does not contain behaviour specified as undefined in ISO/IEC 19775-1.

A JSON encoded X3D file conforms to a particular profile if:

  1. It is syntactically correct.
  2. It meets the restrictions of the profile as defined in the annexes of ISO/IEC 19775-1 or in other parts of ISO/IEC 19775.

A JSON encoded X3D file conforms to individual components if:

  1. The X3D file conforms to the specified profile.
  2. The X3D file meets the restrictions of the component and component support level as defined in ISO/IEC 19775-1 for that component.
  3. It contains only the nodes and statements allowed by the specified "@profile" and "component" properties.

7.2.2 Conformance of JSON encoding generators

A JSON 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 JSON 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 JSON 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 JSON encoding browsers

An X3D browser that supports the JSON encoding conforms to a particular profile if:

  1. It is able to read any JSON encoded file that conforms to that particular profile.
  2. It presents the graphical and audio characteristics of the X3D nodes in any JSON encoded file that conforms to the that particular profile, within the latitude defined in the specification for that particular profile.
  3. It correctly handles user interaction and generation of events as specified in ISO/IEC 19775-1, 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.
  4. It satisfies the requirements of that particular profile in regard to minimum support requirements as defined in the specification for that particular profile.
  5. It satisfies the general conformance requirements for browsers as stated in 6 Conformance of ISO/IEC 19775-1.

An X3D browser that supports any JSON encoded file that contains an "component" property conforms to the specified component if:

  1. It is able to read all nodes and/or statements required by that component when encoded in the JSON encoding.
  2. 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" property.

--- X3D separator bar ---