Object Identifiers and Internal Identifiers

Meta Data Services Programming

Meta Data Services Programming

Object Identifiers and Internal Identifiers

Each RepositoryObject instance has two identifiers: an object identifier and an internal identifier.

An object identifier is global in scope. It uniquely distinguishes a repository object from all other repository objects represented in all other repository databases.

Internal identifiers correspond to object identifiers, except that internal identifiers are used by the engine.

Both object identifiers and internal identifiers are explained in this topic. Another kind of repository identifier is used for a RepositoryObjectVersion instance. For more information, see Object-Version Identifiers and Internal Object-Version Identifiers.

About Object Identifiers

Object identifiers have the following format.

The first 16 bytes of each object identifier constitute a globally unique identifier (or GUID). The next 4 bytes constitute a local identifier.

RepositoryObjects do not include version information. When you are working with RepositoryObject instances, the repository engine follows a resolution strategy to select a specific version of a RepositoryObject instance. The resolution strategy, not the version indicator, determines which object is selected.

About Internal Identifiers

Each RepositoryObject instance also has an internal identifier that distinguishes it from every other object within the same repository database. The internal identifier is used by the repository engine to manipulate the object specified by the object identifier. The internal identifier is an 8-byte quantity of the following form.

The first 4 bytes constitute a site identifier (site ID). For more information about site IDs, see How Repository Identifiers are Stored and Instantiated.

The last 4 bytes constitute the local identifier (local ID). For a RepositoryObject instance, the local identifier portion of the internal identifier and the object identifier is the same. That is, each repository object has a single 4-byte local identifier, regardless of whether you are using an object identifier or an internal identifier.

See Also

Assigning Object Identifiers

How Repository Identifiers are Stored and Instantiated

Repository Identifier Data Structures

Repository Identifiers

RepositoryObject Object

RTblSites SQL Table