The nt:frozenNode node type has the following definition (repeated from 6.7.22.16 nt:frozenNode):
NodeTypeName
nt:frozenNode
Supertypes
nt:base
mix:referenceable
IsMixin
false
HasOrderableChildNodes
true
PrimaryItemName
null
PropertyDefinition
Name jcr:frozenPrimaryType
RequiredType NAME
ValueConstraints []
DefaultValues null
AutoCreated true
Mandatory true
OnParentVersion ABORT
Protected true
Multiple false
PropertyDefinition
Name jcr:frozenMixinTypes
RequiredType NAME
ValueConstraints []
DefaultValues null
AutoCreated false
Mandatory false
OnParentVersion ABORT
Protected true
Multiple true
PropertyDefinition
Name jcr:frozenUuid
RequiredType STRING
ValueConstraints []
DefaultValues null
AutoCreated true
Mandatory true
OnParentVersion ABORT
Protected true
Multiple false
PropertyDefinition
Name *
RequiredType UNDEFINED
ValueConstraints []
DefaultValues null
AutoCreated false
Mandatory false
OnParentVersion ABORT
Protected true
Multiple false
PropertyDefinition
Name *
RequiredType UNDEFINED
ValueConstraints []
DefaultValues null
AutoCreated false
Mandatory false
OnParentVersion ABORT
Protected true
Multiple true
ChildNodeDefinition
Name *
RequiredPrimaryTypes [nt:base]
DefaultPrimaryType null
AutoCreated false
Mandatory false
OnParentVersion ABORT
Protected true
SameNameSiblings true
The properties and child nodes of the versioned node (call it N) are dealt with according to their respective OnParentVersion attribute, as defined in the node type of N. Those child nodes and properties of N with OnParentVersion=COPY are copied to jcr:frozenNode. The residual property and child node definitions in nt:frozenNode provide the “space” into which these copies are placed.
Those child nodes and properties of N with OnParentVersion=IGNORE are not copied.
Those versionable child nodes of N (i.e., children of N that are themselves also versionable) with OnParentVersion=VERSION are dealt with in a special way: a node with the same name as the child node but of type nt:versionedChild is placed as a child of jcr:frozenNode. This special node is not a copy of the child node of N but instead holds a single reference property (called jcr:childVersionHistory) that points to the version history of the child of N. The OnParentVersion mechanism has other options as well, for a full discussion, see 8.2.11 The OnParentVersion Attribute.
Among the properties of N that are copied over to jcr:frozenNode, a special exception must be made for jcr:primaryType, jcr:mixinTypes and jcr:uuid. These properties cannot be copied to their corresponding jcr:frozenNode node without conflicting with that node’s existing properties of the same name (recall for example, that jcr:frozenNode is of type nt:frozenNode, and so its jcr:primaryType property will, of course, hold the value “nt:frozenNode”, not the node type of N). To address this problem, the copies are renamed jcr:frozenPrimaryType, jcr:frozenMixinTypes, and jcr:frozenUuid, respectively.