Object-Version Identifiers and Internal Object-Version Identifiers

Meta Data Services Programming

Meta Data Services Programming

Object-Version Identifiers and Internal Object-Version Identifiers

Each RepositoryObjectVersion instance has two identifiers: an object-version identifier and an internal object-version identifier.

An object-version identifier uniquely distinguishes a repository object from all other repository object versions represented in all other repository databases.

Internal object-version identifiers correspond to object-version identifiers, except that internal object-version identifiers are used by the repository engine. Object-version identifiers and internal object-version identifiers are described in this topic. Another kind of repository identifier identifies a RepositoryObject instance. To use identifiers, you need to know about both kinds. For more information about other repository identifiers, see Object Identifiers and Internal Identifiers.

About Object-Version Identifiers

The object-version identifier has the following format.

The first 16 bytes of each object-version identifier constitute a globally unique identifier (or GUID).

The next 4 bytes constitute a local identifier. Note that the local identifier of a repository object version does not equal the local identifier of a RepositoryObject instance.

The next 8 bytes constitute a version indicator. Each object version gets a unique value that identifies a specific version of a particular object (for example, version 3 of an Employee object). To get a specific version of an object, you have to traverse the version tree of an object.

About Internal Object-Version Identifiers

Each RepositoryObjectVersion instance also has an internal object-version identifier that distinguishes it from every other object version within the same repository database. The internal object-version identifier is a 16-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 first 4 bytes constitute the local identifier (local ID) of the repository object. The second 4 bytes constitute a branch identifier (branch ID); a branch is a portion of a version graph. The third 4 bytes constitute a version-within-branch identifier.

The first 8 bytes make up the internal identifier of the repository object version. The next 8 bytes make up a version identifier.

See Also

Branches in the Version Graph

Repository Identifier Data Structures

Repository Identifiers

RepositoryObjectVersion Object

Version Graph