VRML97 logo

7 Conformance and minimum support requirements

--- VRML separator bar ---

7.1 Introduction

7.1.1 Table of contents

Table 7.1 defines the topics in this clause.
 
Table 7.1 -- Table of contents
7.1 Introduction  
 7.1.1 Table of contents 
 7.1.2 Objectives 
 7.1.3 Scope 

7.2 Conformance 
 7.2.1 Conformance to ISO/IEC 14772 Part 1 
 7.2.2 Language Bindings

7.3 Minimum support requirements  
 7.3.1 Requirements for implementations 
 7.3.2 Base Profile
 
 

7.1.2 Objectives

This clause addresses conformance of VRML browsers that provide an external authoring interface.

The primary objectives of the specifications in this clause are:

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

7.1.3 Scope

Conformance is defined for language bindings to this specification and therefore VRML Browsers and applications that use the facilities provided by the External Authoring Interface language-specific bindings.

Due to the nature of this Part, it is not possible to specify the conformance tests of an individual language bindings to the specification. Separate Conformance sections shall be provided within each language that provide the necessary information to implement language specific binding conformance tests.

A concept of base profile conformance is defined to ensure interoperability of VRML applications and VRML 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 VRML language bindings while limiting the complexity and resource requirements of VRML browsers. Base profile conformance may not be adequate for all uses of the SAI.

--- VRML separator bar ---

7.2 Conformance

7.2.1 Conformance to ISO/IEC 14772-1

A VRML browser is only conformant to ISO/IEC 14772-2 if it is required to also be conformant to ISO/IEC 14772-1. See ISO/IEC 14772-1 7 Conformance and minimum support criteria.In addition, the following conditions shall be met:
  1. Requests of the Browser services shall conform exactly to the behaviour as specified in ISO/IEC 14772-1 4.12 Scripting.Where there are differences, the provisions of 6.3, Browser Services shall take precedence over ISO/IEC 14772-1 4.12.
  2. Where a browser is required to read and parse VRML content, it shall be able to handle any VRML file that conforms to the base profile defined in ISO/IEC 14772-1 7.3.3 VRML requirements for conforming to the base profile.
  3. Only nodes in the top level world (the file defined by the getWorldURL service) that are named with the DEF construct shall be visible to the getNode browser service request.
  4. There shall be no difference in treatment of events that result from an external service request compared to events generated within the VRML browser environment. That is, externally generated event cascades shall have no favoured treatment.

7.2.2 Language bindings

A langauge binding to this part of ISO/IEC 14772 is conforming if:
  1. It implements the services defined in this specification including return values, error conditions and asychronous events.
  2. The services implemented conform to the base profile of required services.
  3. It provides sections outlining conformance and minimum requirements of implementations of that binding.

--- VRML separator bar ---

7.3 Minimum Requirements

7.3.1 Requirements for implementations

All implementations of the SAI specification are required to support the minimum level of functionality as defined in this section. There are two levels of conformance, that of the language binding and the browser implementation.

A language binding must at a minimum implement the service requirements outlined in 7.3.2 Base Profile. It may also define its own optional set of minimum requirements that are no less than the requirements of this section. A browser implementation must, in addition to the base support profile, also support the minimum capabilities defined in 7.3.2 Base Profile. In general, the browser requirements are specified as more general requirements with the underlying representation that specific language issues.

Where a browser implements two or more langauge bindings with different levels of minimum requirements, the browser must support the minimum requirements for each language separately. Therefore, if one language has higher requirements, the lower requirements of the other shall not be used.

7.3.2 Base Profile

Table 7.2 defines the minimum requirements for a base profile. The first column defines the item for which conformance is being defined. These refer to the services as defined by this specification. The second column defines the requirements for a language binding specifcation of that item. The third column defines the requirements of a browser implementation of that service.

For all these requirements it shall be assumed that the language binding shall provide complete implementation of all the parameters required for the individual services. Language bindings of data types may be implemented as primitive types in the target language rather than separate data types. Table 7.2 indicates where this may be permitted.
 

Table 7.2 Specifications for SAI implementations conforming to the base profile 
Item Binding Support Minimum Browser Support
SAIAction Full support as required by the individual service request As defined by the language
SAIBrowserApp Full Support if createBrowser supported. 

Not required if only getBrowser supported.

Optional (based on getBrowser/createBrowser requirements)
SAIBrowserName Primitive Type n/a
SAIBrowserRef Full Support Full Support
SAIBrowserVersion Primitive type n/a
SAIFieldAccess Separate data types for the four types defined by ISO/IEC 14772-1. Full Support
SAIFieldID Full Support Full Support
SAIFieldName Primitive type Full Support
SAIFieldType Separate data types for all types defined in ISO/IEC 14772-1, 5 Field and Event Reference Full Support
SAIFieldValue Primitive type as appropriate to the given field. 
Where field is an SF/MFNode shall be SAINodeID
Number of values for setting and getting defined by ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile
SAIFrameRate Primitive Type n/a
SAINavSpeed Primitive Type n/a
SAINodeID Full Support Full Support
SAINodeType Primitive type SAIString representation of the node name
SAIParameterList As required by langauge and service definition. Dependent on language and browser implementation
SAIPropertyList Primitive type 5 key value pairs. Values dependent on language bindings
SAIRequesterID Full Support n/a
SAIURL Both URL and URN support See ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile, all url fields
SAIString Primitive Type n/a
SAIError Separate types for each error condition that may occur as defined in 5.3 Error Types. Generate error conditions as appropriate.
Establishing a Connection
getBrowser, createBrowser At least one of getBrowser or createBrowser services shall be provided. At least one method of connection with a browser shall be provided. Unsupported connection methods shall throw an error. 
Ignore SAIParameterList
Browser Services
Browser getName Shall provide Return NULL if not supported
getVersion Shall provide Return NULL if not supported.
getCurrentSpeed Shall provide Return 0.0 if not supported
getCurrentFrameRate Shall provide Return 0.0 if not supported
getWorldURL Shall provide Full Support
replaceWorld Full support 500 SAINodeIDs set in single call. See ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile, all groups
loadURL Shall provide Full support. Ignore SAIPropertyList parameter values. 
setDescription Shall provide No restriction
createVrmlFromString Shall provide Support File Limits as defined by ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile.
createVrmlFromURL Shall provide Support File Limits as defined by ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile.
Dynamic Route Handling SAIActions of add and delete route Full support.
Update Control SAIActions of start buffering and end buffering Full support
Register Browser Interest SAIActions of add and remove interest. Events for initialisation, shutdown, invalid URLs and connection lost.
getNode Full Support Full Support
dispose Shall provide No restrictions
Node Services
getName Shall provide Full support
getType Shall provide no restrictions
getField Full Support field, eventIn and eventOut fields shall be accesible.
dispose Shall provide No restrictions
Field Services
getAccessType Shall provide Full support
getType see SAIFieldType Full support
getName Not Required Field name without set_ or _changed modifiers
getValue Full support Full Support
setValue Full support Full Support. Where fields are MF fields, minimum number of values to be supported defined by ISO/IEC 14772-1, Table 7.1 Specifications for VRML browsers conforming to the base profile
Register Field Interest SAIActions of add and remove interest 

eventOut and the output side of exposedFields shall be supported

As per supported langauge binding(s). 
 

--- VRML separator bar ---

http://www.vrml.org/Specifications/VRML97/part2/conformance.html