This Built-in DataTypeis composed of three elements that identify a Nodewithin a Server. They are defined in Table 21.

Table 21– NodeId Definition

Name

Type

Description

NodeId

structure

NamespaceIndex

UInt16

The index for a namespace URI (see 8.2.2).

IdType

Enum

The format and data type of the identifier (see 8.2.3).

Identifier

*

The identifier for a Nodein the AddressSpaceof an OPC UA Server(see 8.2.4).

See OPC 10000-6for a description of the encoding of the identifier into OPC UA Messages.

The namespace is a URI that identifies the naming authority responsible for assigning the identifier element of the NodeId. Naming authorities include the local Server, the underlying system, standards bodies and consortia. It is expected that most Nodeswill use the URI of the Serveror of the underlying system.

Using a namespace URI allows multiple OPC UA Serversattached to the same underlying system to use the same identifier to identify the same Object. This enables Clientsthat connect to those Serversto recognise Objectsthat they have in common.

Namespace URIs, like Servernames, are identified by numeric values in OPC UA Servicesto permit more efficient transfer and processing (e.g. table lookups). The numeric values used to identify namespaces correspond to the index into the NamespaceArray. The NamespaceArrayis a Variablethat is part of the Server Objectin the AddressSpace(see OPC 10000-5for its definition).

The URI for the OPC UA namespace is:

http://opcfoundation.org/UA/”

Its corresponding index in the namespace table is 0.

The namespace URI is case sensitive.

The IdType element identifies the type of the NodeId, its format and its scope. Its values are defined in Table 22.

Table 22– IdType Values

Name

Value

Description

Numeric

0

Numeric value

String

1

String value

Guid

2

Globally Unique Identifier

Opaque

3

Namespace specific format

Normally the scope of NodeIdsis the Serverin which they are defined. For certain types of NodeIds, NodeIdscan uniquely identify a Nodewithin a system, or across systems (e.g. GUIDs). System-wide and globally-unique identifiers allow Clientsto track Nodes, such as work orders, as they move between OPC UA Serversas they progress through the system.

Opaque identifiers are identifiers that are free-format byte strings that might or might not be human interpretable.

String identifiers are case sensitive. That is, Clientsshall consider them case sensitive. Serversare allowed to provide alternative NodeIds(see 5.2.2) and using this mechanism severs can handle NodeIdsas case insensitive.

The Identifiervalue element is used within the context of the first three elements to identify the Node. Its data type and format is defined by the IdType.

Identifiervalues of IdType Stringare restricted to 4096 characters. Identifiervalues of IdType Opaqueare restricted to 4096 bytes.

A Nodein the AddressSpaceshall not have a null NodeId. However, many services defined in OPC 10000-4define special behaviour if a null NodeIdis passed as a parameter.

A canonical null NodeIdhas an IdTypeequal to Numeric, a NamespaceIndexequal to 0 and an Identifierequal to 0.

In addition to the canonical null NodeIdthe alternative values defined in Table 23shall be considered a null NodeId.

Table 23– NodeId Alternative Null Values

IdType

NamespaceIndex

Null Value

String

0

A null or Empty String (“”)

Guid

0

A Guid initialised with zeros (e.g. 00000000-0000-0000-0000-000000)

Opaque

0

A null or Empty ByteString