6.7.8 Inheritance Among Node Types

A node type may have one (or in some implementations, more than one) supertype. A subtype inherits the property and child node definitions of its supertype(s) (and possibly other attributes) and may declare further property or child node definitions.

Configuring the inheritance hierarchy of node types available within a particular repository is outside the scope of this specification. For this reason the specification does not define how conflicts between multiple super types are resolved or exactly which attributes of a node type (other than its child node and property definitions) are inherited by its subtypes. For example, the question of whether the orderable child nodes setting of a node type is inherited by its subtypes is left up to the particular implementation. See also, 6.7.22.2 Additions to the Hierarchy.

Some repositories may support multiple inheritance of node types. As a result, the methods for discovering node type information must allow for the possibility that a node type has more than one supertype. See 6.7.11 Discovering the Definition of a Node Type.