8.2.2 Version Storage

A version history consists of a single nt:versionHistory node with a set of immediate child nodes all of type nt:version, representing all the versions within that version history.

An nt:versionHistory has at least one child, the nt:version node representing the root version. From the root version the version graph proceeds through a network of REFERENCE properties linking any additional child nt:version nodes into a version graph defining the successor relations among the versions. The version graph within any given version history must include all and only the children of that version history’s nt:versionHistory node. The following diagram illustrates a single version history:

The solid arrows represent parent node to child node relations while the dotted arrows represent the successor relations between versions, implemented through REFERENCE properties.

Here we see an nt:versionHistory node, VH with child nt:version nodes Vroot VA VB and VC. The version graph begins at Vroot, which has successors VA and VB, both of which, in turn, have VC as their respective successor.