OPC UA allows information from many different sources to be combined into a single coherent AddressSpace. Namespaces are used to make this possible by eliminating naming and id conflicts between information from different sources. Namespaces in OPC UA have a globally unique string called a NamespaceUri and a locally unique integer called a NamespaceIndex. The NamespaceIndexis only unique within the context of a Sessionbetween an OPC UA Clientand an OPC UA Server. The Servicesdefined for OPC UA use the NamespaceIndexto specify the Namespace for qualified values.
There are two types of values in OPC UA that are qualified with Namespaces: NodeIds and QualifiedNames. NodeIds are globally unique identifiers for Nodes. This means the same Nodewith the same NodeId can appear in many Servers. This, in turn, means Clientscan have built in knowledge of some Nodes. OPC UA Information Modelsgenerally define globally unique NodeIdsfor the TypeDefinitionsdefined by the Information Model.
QualifiedNames are non-localized names qualified with a Namespace. They are used for the BrowseNamesof Nodesand allow the same names to be used by different information models without conflict. TypeDefinitionsare not allowed to have children with duplicate BrowseNames; however, instances do not have that restriction.