As in C++, a namespace is a "boundary" within which keys must be unique. As illustrated in my section on instance naming, starting on page 66, the namespace actually forms part of the full name of an instance.
Generally, namespace names look like a UNIX directory tree (e.g., root/CIMV2 and root/CIMV2/test) but this is misleadingthere is actually neither structure nor hierarchy in these names. The slashes in the names are simply characters and each namespace is independent of all others.
When classes are created and loaded into the WBEM server, their superclasses must exist in the same namespace, which may mean that the CIM schema need to be loaded into several namespaces. An association, however, may relate classes or instances in different namespaces as the namespace can be included in the reference fields.