Every repository must support at least the primary node typent:base. All other primary node types must be subtypes ofnt:base. A number of predefined primary node types are defined for common application domains.
In general, support for these additional primary node types is optional.
Three mixin node typesmix:referenceable,mix:versionable andmix:lockable are defined. In general support for these types is also optional. However:
mix:referenceable is required in order to support UUID-bearing nodes, which in turn supportREFERENCE property types and versioning.
Additionally, versioning requires the mixin node typemix:versionable and the primary node typesnt:version,nt:versionHistory,nt:versionLabels,nt:versionedChild andnt:frozenNode. See8.2Versioning.
Locking requires the mixin node typemix:lockable. See8.4Locking.