It is important to understand what is a namespace in order to understand CDM definitions, as CDM definitions comprise a namespace and class name. A namespace (for example, BMC.CORE) serves as a label to identify classes that serve different purposes and serves also to create unique names. A namespace is prepended to the names of its class forms, though not its attribute fields. Therefore, a class you create 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.
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 to 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 Atrium CMDB that hold information such as federated data definitions are in the BMC.CORE.CONFIG namespace.
The following link provides the class details for BMC.CORE, BMC.CORE.CONFIG, BMC.FED, and BMC.MAINFRAME namespaces.