Type Definition Model

A type_definition tree contains data type definitions. These can either be complex datatypes that are not part of the primitive datatypes defined by HIM, or it can be common allowed definitions.

If a tree with data or service information contains links to a typedefinition tree then this tree must be available to the server managing the data/service tree. The server shall use the type definition information to verify that client requests are valid in the case of links as mentioned.

Root node name

The name of the root node of the type definitions tree shall be “TypesX” where X can be any sequence of readable characters, with a length from zero and up. With an empty X the name will be “Types” and thus conformant with the COVESA VSS rule set. If an implementation of a server ecosystem selects to use multiple type definition trees then X must be used to distinguish between the different trees. X can then be a number or more descriptive such as Car, Trailer, etc.

Node Types

The currently supported node types can be used for either the definition of structs, or for the definition of allowed value restrictions.

The node types for representing type definitions are:

  • Branch
  • Struct
  • Property
  • Attribute

Please see more information about these node types here.

Attribute node used for allowed definition

In this usage the attribute node type must have a node of type branch as parent, and must not have any children. When used for allowed definition, the metadata types Unit, Min, Max or Default must not be used.

An example of the specification of a attribute node for an allowed definition is given below.

Types.Cabin.DriverPositionValues:
  type: attribute
  datatype: string
  allowed: ['LEFT', 'MIDDLE', 'RIGHT']
  description: DriverPosition allowed values.