Glossary · Address space

Namespace URI

In OPC UA, a namespace URI is the globally unique string that identifies who defined a set of nodes, for example http://opcfoundation.org/UA/Machinery/. It is the stable, portable half of node identity: URIs never change, while the namespace indexes that abbreviate them are per-server and volatile. Configuration should store URIs.

Ownership and uniqueness

A namespace URI declares authorship. The OPC Foundation owns http://opcfoundation.org/UA/ and the companion model URIs beneath it; a vendor or integrator picks a URI under a domain they control, or a urn: form. It is a name, not a location: nothing fetches it, and it does not have to resolve in a browser. Uniqueness is by convention and DNS ownership, which in practice is enough.

URI plus identifier is the portable node address

Because URIs are stable and indexes are not, the durable way to record a node is the pair (namespace URI, identifier). That is what ExpandedNodeId encodes, what the nsu= textual form expresses, and what OPC Publisher and opcua-commander accept in configuration. Resolve to an index once per session against the NamespaceArray, and keep the URI as the source of truth on disk.

Reading a URI as a version statement

Companion specifications version their URIs when they break compatibility - http://opcfoundation.org/UA/PlasticsRubber/Extrusion_v2/ is a different namespace from the v1 model, not a newer revision of it. The nodeset Model element carries the finer version and publication date. Seeing which URIs a server publishes tells you which model generation you must code against before you look at a single node.

Example

Namespace URIs you will actually meet

http://opcfoundation.org/UA/                          core UA, always index 0
http://opcfoundation.org/UA/DI/                        Devices (Part 100)
http://opcfoundation.org/UA/Machinery/                 Machinery building blocks
http://opcfoundation.org/UA/MachineTool/               MachineTool
http://opcfoundation.org/UA/PackML/                    PackML
http://opcfoundation.org/UA/PlasticsRubber/Extrusion_v2/   note the version in the URI
urn:PlantA-Line3-PLC:UA:Server                         a server's own local namespace
http://example.com/PlantA/Line3/                       your own model - use a domain you own
The mistake people make: Inventing a namespace URI under a domain you do not control, or reusing one vendor's URI for your own extension nodes. Both make two different models collide in any client that keys on the URI, and neither shows up until a second server or a nodeset import brings the real owner's model into the same session.

Defined in: Part 3 - Address Space Model, namespaces and NodeId; Part 5 - Information Model for standard namespace URIs.

Status codes you will meet

Last verified 7 September 2026 against OPC UA 1.05.07. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.

Free download
OPC UA Server Acceptance Test Pack
A 40-check acceptance test you run against a vendor's server before commissioning sign-off. Weighted scoring, three hard gates, and a one-page verdict for the supplier meeting.
Get the free test pack →
Free, no course, no login