Dictionary References allow to reference externally defined Dictionaries like ECLASS or the Common Data Dictionary of the IEC to bind an OPC UA Node to the semantic defined in that dictionary. OPC 10000-19 defines the OPC UA mechanism for this. This includes, that the NodeIds of the Dictionary Entries use a specific NodeId in a specific Namespace, one Namespace for IRDIs and one for URIs.

In theory, the Server does not need to provide the Nodes of those NodeIds, but Clients would look up the dictionaries or already have internal knowledge about those dictionaries.

Companion specifications like PA-DIM define specific Dictionary Entries to be referenced from some of their standardized Nodes. Accordingly, they have references in their UaNodeSet to Nodes not defined in their Namespace. Therefore, they need to reference to another UaNodeSet containing those Dictionary Entries. Such UaNodeSets do not necessarily exist for the external Dictionary and there would also not be the need to have a full UaNodeSet with all entries of such a Dictionary. And since there are exactly two Namespaces, all dictionaries would need to be in one of those files, each representing one namespace.

Therefore, Companion Specifications using Dictionary References should create an individual UaNodeSet containing all Dictionary Entries they are references as a flat list (like PA-DIM provides) and reference from their UaNodeSet to that file.

If a server implementer is using the specification, and potentially other specifications or models using dictionary references as well, it is their responsibility to merge those Dictionary-Entry-UaNodeSets and provide those in the server (or leave the Nodes out, see 9.1).