CDM definitions comprise a namespace and class name.

A namespace is a label that identifies classes that serve a similar purpose. It also serves to create unique names. Example, BMC.CORE.

You can partition your data model by using namespaces. Namespaces partition classes and attributes in the data model. This allows you to specify the provider or consumer of a certain type of data or make other arbitrary groupings. For instance, all classes in the Common Data Model are in the BMC.CORE namespace, and other classes provided by the BMC Helix CMDB that hold information, such as federated data definitions are in the BMC.CORE.CONFIG namespace.

A namespace is prepended to the names of its class forms; but not to its attribute fields. Therefore, a class that is created in one namespace can have the same name as an existing class in another namespace. However, attributes of the same class in different namespaces cannot share the same name.

Namespaces can be applied at the attribute level, as well as the class level. This means that some, or even all the attributes of a class, can reside in a different namespace from the class itself. This is useful when you have a class that is used for more than one purpose, but one of those purposes requires an extra attribute.