Mixin type for versionable nodes.


[mix:versionable] > mix:referenceable mixin
- jcr:versionHistory (REFERENCE) mandatory protected < nt:versionHistory
- jcr:predecessors   (REFERENCE) mandatory protected multiple < nt:version
- jcr:baseVersion    (REFERENCE) mandatory protected IGNORE < nt:version
- jcr:isCheckedOut   (BOOLEAN)   = true autocreated mandatory protected IGNORE
- jcr:mergeFailed    (REFERENCE) protected multiple ABORT


This is the key type of the JCR versioning system. All versionable nodes have the mix:versionable mixin type.

All versionable nodes must also be referenceable, thus mix:versionable is a subtype of mix:referenceable. There are no other constraints on the content or structure of the versionable nodes.

A versionable node has a corresponding nt:versionHistory node within the /jcr:system/jcr:versionStorage tree. The jcr:baseVersion property references the nt:version node that represents the base version of this node within the version history.

The jcr:predecessors property contains one or more (because of merges) references to nt:version nodes within the version history. When this node is checked in, these versions will be recorded as the predecessors of the checked in version.

The jcr:isCheckedOut flag indicates whether the node is checked out, i.e. can be modified and then checked in as a new version.

The jcr:mergeFailed property is populated with references to the base versions of conflicting nodes during a merge. An application needs to resolve the merge failure before checking in this node, as the presence of the jcr:mergeFailed property will abort a checkin.

Comments and questions

mix:versionable (last edited 2009-09-20 23:45:06 by localhost)