04/02/2019
Hi,
I’m working myself through the OPC UA specification, trying to make some sense of it. Having prior knowledge in object oriented programming languages I’m having trouble figuring out the subtle differences of concepts that appear so familiar.
It appears to me that the Node Model defines the fundamental building blocks of everything else. Kind of like a grammar maybe?
So here’s a little detail question that I have related to the Node Model, based on the following observations:
- Every Node Class is based on the Base NodeClass and therefore has an Attribute of NodeId that is of Data Type NodeId. (Spec pt. 3, 5.5, see image below)
- NodeClasses are used to define Data Types as well, for example the NodeId Data Type (Spec pt. 3, 8.2)
Given that every Node Class consists of elements that are themselves defined by NodeClasses, does this imply some infinitely recursive structure somehow?
If every Value of an Attribute NodeId (which exists in every Node) is a Node, wouldn’t that mean that it itself has (among others) an Attribute NodeId …ad infinitum?
Or
Is it that the Data Type NodeId has an Attribute NodeId, which is indeed of Data Type NodeId?
I connected to a reference server and could not find any such recursion. Displaying the NodeId Attribute of elements in the tree in the address space (including that of Types.DataTypes.NodeId) only displayed the Attributes as defined in the Data Type definition (namely: namespaceIndex, identifierType and identifier).
Why is that?
1 Guest(s)