Allow VERSION.data to be optional to enable logical deletion
Currently VERSION.data is mandatory, meaning that even if a logical deletion is to be represented, a data item is required. This should be changed to allow a new version to be created in which there is no data at all, and lifecycle_state is set to "deleted".
- make VERSION.data 0..1
This change allows logical deletion to be supported, while retaining the integrity of the
repository of VERSIONED_OBJECTs (such as an EHR), so that previous views still show the
Due to this change, content could be deleted from other versions as well, including earlier
versions and branch versions. The change does not force deletion to only be the most recent
trunk version. This allows for re-instatement of content (when accidental deletion has to
be rectified), but might also allow deletions when they should not occur. It is up to
application software and higher level components to implement such checks.
In theory, the lifecycle_state attribute should be set to the code for "deleted" if the
content is deleted, but we do not force this.