6.7.5 Special Properties jcr:primaryType and jcr:mixinTypes

A node's primary node type must be stored in content as a NAME property of that node called jcr:primaryType. Similarly, any mixin node types assigned to it must be recorded in the multi-value NAME property jcr:mixinTypes.

Note that the mixin node types listed in the jcr:mixinTypes property are those that have been explicitly assigned (using Node.addMixin) to a node. It does not include mixin types that may be among the supertypes of a node's primary type.

These properties are used to persist node type information across serialization/deserialization cycles. See 7.4.5 Serialization and Node Types. Both of these properties are protected; they cannot be removed or changed by the application using the API. The jcr:primaryType and jcr:mixinTypes properties are specified in the predefined primary node type nt:base, which is the supertype of all other primary node types (be they defined by this specification or implementation or application specific).