ReposRoot Class

Meta Data Services Programming

Meta Data Services Programming

ReposRoot Class

There is one root object in each repository. The root object is the starting point for navigating to other objects in the repository. The root object serves as the starting point for both type data navigation and instance data navigation.

  • Type data navigation

    When you create an information model, the corresponding repository type library is attached to the root object through the ReposTypeLibs collection. This collection can be used to enumerate all of the information models (type data) that are contained in a repository.

  • Instance data navigation

    Once an information model is defined, the repository can be populated with instance data. This instance data consists of objects and relationships that conform to the classes and relationship types of the information model.

    Because the objects are connected via relationships, you can navigate through this data. However, to enable general purpose repository browsers to navigate this data, the first navigational step must be from the root object of the repository through a root relationship collection to the primary objects of your information model. Primary objects are objects that make a good starting point for navigating to other objects of your information model.

    Because this root relationship collection is different for each information model, it must be defined by the information model. There are two options for attaching this relationship collection to the root object:

    1. The ReposRoot class implements the IReposRoot interface. This interface is provided to information model creators as a connection point. You can add your connecting relationship collection to this interface.

    2. You can extend the ReposRoot class to implement a new interface that is defined in your information model. This interface implements a relationship collection that attaches the root object to the primary objects in your information model.

To facilitate navigation, the root object in all repositories always has the same object identifier. The symbolic name for this object identifier is OBJID_REPOSROOTOBJ.

When to Use

Use the ReposRoot class to:

  • Obtain a starting point for navigating to objects in the repository.

  • Create a new information model.

  • Attach a relationship collection to the root object of the repository that connects to the primary objects of your information model.
Interfaces
Interface Description
IAnnotationalProps Gets and sets annotational properties
IManageReposTypeLib Adds information models (repository type libraries) to a repository
IRepositoryDispatch Provides enhanced dispatch support
IRepositoryItem Manages repository objects and relationships
IRepositoryObject Retrieves repository object identifiers
IRepositoryObjectStorage Creates and loads repository objects
IReposRoot Provides an attachment point for information model instance data
IVersionAdminInfo2 Retains properties inherited from IVersionAdminInfo and sets or retrieves version comments
IWorkspaceContainer Manages the set of workspaces in a repository

See Also

IManageReposTypeLib Interface

ReposRoot Object

RTIM Classes