The type of VERSIONED_OBJECT.uid doesn't match the type of VERSION.uid.object_id

Description

VERSIONED_OBJECT<T> has a 'uid' attribute that is meant to represent a unique identifier for all versions of this object - so kind of like the master identifier for this document set. It is of type HIER_OBJECT_ID

VERSION<T> is a particular instance of a document version - so many VERSION<T> documents may be part of one overall VERSIONED_OBJECT (amendments etc). It also has a 'uid' attribute of type OBJECT_VERSION_ID.

A OBJECT_VERSION_ID consists of object_id, version_tree_id and creating_system_id. Section 6.3.3 says that the object_id part is a copy of the uid attribute of VERSIONED_OBJECT. However, this doesn't really work because VERSIONED_OBJECT has a uid which is a HIER_OBJECT_ID (could be in the form 1.23.4.5.6.4::abcd), whereas object_id can only be a plain UID (i.e. 1.23.4.5.6.4).

See for slightly different description.

Environment

None

Activity

Show:
Heath Frankel
May 7, 2015, 11:48 PM

Yes I agree with this. There is also a representation issue with OBJECT_VERSION_ID if we allow an extension in the object_id, it becomes a 4 part string. This may cause issues with some systems that assume only a three part string.

Changing VERSIONED_OBJECT uid to UID would be ideal but a significant change. I suggest a constraint on VERSIONED_OBJECT uid to have no extension.

This may have an impact on systems that use a similar scheme as CDA document identifiers.

Reporter

Andrew Patterson

Labels

None

Components

Affects versions

Priority

Minor
Configure