The ReferenceType hierarchy can be extended with user-defined ReferenceTypes. Many Companion
Specifications for OPC UA define new ReferenceTypes to be used in their domain of interest.
For the following example of custom ReferenceTypes, we attempt to model the structure of a tech-
nical system. For this, we introduce two custom ReferenceTypes. First, the hierarchical contains
ReferenceType indicates that a system (represented by an OPC UA object) contains a component (or
subsystem). This gives rise to a tree-structure of containment relations. For example, the motor (ob-
ject) is contained in the car and the cranksha is contained in the motor. Second, the symmetric
connectedTo ReferenceType indicates that two components are connected. For example, the motor’s
cranksha is connected to the gear box. Connections are independent of the containment hierarchy
and can induce a general graph-structure. Further subtypes of connectedTo could be used to dif-
ferentiate between physical, electrical and information related connections. A client can then learn
the layout of a (physical) system represented in an OPC UA information model based on a common
understanding of just two custom reference types.
2.2.6 DataTypeNode
DataTypes represent simple and structured data types. DataTypes may contain arrays. But they al-
ways describe the structure of a single instance. In open62541, DataTypeNodes in the information
model hierarchy are matched to UA_DataType type descriptions for Generic Type Handling via their
NodeId.
Abstract DataTypes (e.g. Number) cannot be the type of actual values. They are used to constrain
values to possible child DataTypes (e.g. UInt32).
2.2.7 MethodNode
Methods define callable functions and are invoked using the Call service. MethodNodes may have
special properties (variable children with a hasProperty reference) with the QualifiedName (0,
"InputArguments") and (0, "OutputArguments"). The input and output arguments are both de-
scribed via an array of UA_Argument. While the Call service uses a generic array of Variant for input
and output, the actual argument values are checked to match the signature of the MethodNode.
Note that the same MethodNode may be referenced from several objects (and object types). For this,
the NodeId of the method and of the object providing context is part of a Call request message.
2.2.8 ViewNode
Each View defines a subset of the Nodes in the AddressSpace. Views can be used when browsing an
information model to focus on a subset of nodes and references only. ViewNodes can be created and
be interacted with. But their use in the Browse service is currently unsupported in open62541.
12