In a compliant repository, a node type defines which child nodes and properties a node may (or must) have. In order to provide a set of discovery methods for node type information, the range of that information must be defined. To this end, this specification stipulates that every node type has the following attributes:
Name: Every node type registered with the repository has a unique name. The naming conventions for node types are the same as for items (i.e., they may have a colon delimited prefix). All predefined primary node types are, for example, prefixed with nt. Predefined mixin types are prefixed with mix. See 6.7.19 Predefined Node Types.
Supertypes: A primary node type (with the exception of nt:base) must extend another node type (or more than one node type, if the implementation supports multiple inheritance). A mixin node type may extend another node type. 6.7.8 Inheritance Among Node Types.
Mixin status: A node type may be either primary or mixin. This status is part of the node type’s definition. See 6.7.4 Primary and Mixin Node Types.
Orderable child nodes status: A primary node type may specify that child nodes are client-orderable. If this status is set to true, then all nodes of that node type must support the method Node.orderBefore. If this status is set to false, then nodes of that node type may support this method. Only primary node types control a node's status in this regard. This setting on a mixin node type will not have any effect on the node. See 7.1.10 Ordering Child Nodes.
Property definitions: A node type contains a set of definitions specifying the properties that nodes of this node type are allowed (or required) to have and the characteristics of those properties.
Child node definitions: A node type contains a set of definitions specifying the child nodes that nodes of this node type are allowed (or required) to have and the characteristics of those child nodes (including, in turn, their node types).
Primary Item Name: A node type may specify one child item (property or node) as the primary item. This indicator is used by the method Node.getPrimaryItem(). See 6.2.3 Node Read Methods.