The HasTypeDefinition ReferenceType is a concrete ReferenceType and can be used directly. It is a subtype of NonHierarchicalReferences.

The semantic of this ReferenceType is to bind an Object or Variable to its ObjectType or VariableType, respectively. The relationships between types and instances are described in 4.6.

The SourceNode of this ReferenceType shall be an Object or Variable. If the SourceNode is an Object, then the TargetNode shall be an ObjectType; if the SourceNode is a Variable, then the TargetNode shall be a VariableType.

Each Variable and each Object shall be the SourceNode of exactly one HasTypeDefinition Reference.