An important feature of many repositories is the ability to distinguish the entities stored in the repository by type. In a content repository, this is done by assigning node types to nodes.
Level 1 specifies methods for the following node type-related functions:
Discovering the primary and mixin node types of an existing node.
Discovering which node types are supported in a particular repository.
Discovering the definition of a supported node type.
Discovering the constraints placed on an existing node or property due to the node type of its parent.
Level 2 additionally specifies methods for:
Assigning a primary node type to a node on node creation.
Assigning additional (optional) mixin node types.
In this section we explain the level 1 node type functionality, see 7.4 Assigning Node Types for level 2 node type functions. In some cases node type-related information accessible through the discovery methods will only be relevant to a level 2 implementation. Where this is the case, it is mentioned in the discussion below.