Containment Modeling Framework (CMF) Overview
Containment Modeling Framework (CMF) is a framework to construct data models and automatically generate the repository layer for SCM systems. A containment model is the repository schema definition for a particular SCM system. The actual data stored in the repository is an instance of the containment model for that system.
CMF is a specialized form of E-R modeling. It has two basic modeling primitives: entities and relationships:
Entities represent data abstractions and relationships describe connections and constraints between entities. Entities have two basic types: atom and container. Atoms cannot contain other entities and they often represent things like file content, attributes, or metadata items like author, last modified time, etc. Containers are used to form containment structures consisting of atoms or other containers.
Relationships can be either inclusive or referential. An inclusive relationship means if the container gets deleted, the containees are removed too; but for a referential relationship, the container only stores pointers to the containees and containees don't get removed when the container is deleted.
Entities and relationships can have attributes like ordering and multiplicity. For details, please refer to Uniform Comparison of Configuration Management Data Models.
CMF Textual Modeling Language
In order for computer programs to process graphical models of CM systems, we invented two XML schema files (graphical structure is shown below) scm.xds and repos.xsd to translate graphical models into textual models. One is to describe CM model, its entities, relationships and properties; the other is for repository description, its logical and physical data types.

XML Schema for Model Description
