Extensible 3D (X3D) encodings
Part 5: JSON encoding
7 Conformance
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.
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.
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:
- The X3D file starts with the text specified in
4.3.2.2 "X3D" property syntax.
- The "X3D" object contains a "@profile" property as specified in
4.3.2.3 "@profile" property syntax.
- If the "X3D" object contains a "component" property it is in accordance with
4.3.2.5 "component" property syntax.
- If the "X3D" object contains a "unit" property it is in accordance with
4.3.2.6 "unit" property syntax.
- If the "head" object contains a "meta" property it is in accordance with
4.3.2.7 "meta" property syntax.
- 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.
- 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.
- 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.
- 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).
- 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 JSON encoded X3D file conforms to a particular profile if:
- It is syntactically correct.
- 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:
- 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 for that component.
- 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:
- It is able to read any JSON encoded file that conforms to that particular
profile.
- 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.
- 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.
- 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 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:
- It is able to read all nodes and/or statements required by that component
when encoded in the JSON 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"
property.
