6.7.14 NodeDefinition

The NodeDefinition represents a child node definition. It inherits all the methods of ItemDefinition and adds the following:

NodeDefinition extends ItemDefinition



Gets the minimum set of primary node types that the child node must have. Returns an array to support those implementations with multiple inheritance. This method never returns an empty array. If this node definition places no requirements on the primary node type, then this method will return an array containing only the NodeType object representing nt:base, which is the base of all primary node types and therefore constitutes the least restrictive node type requirement. Note that any particular node instance still has only one assigned primary node type, but in multiple-inheritance-supporting implementations the RequiredPrimaryTypes attribute can be used to restrict that assigned node type to be a subtype of all of a specified set of node types.



Gets the default node type that will be assigned to the child node if it is created without an explicitly specified node type. This node type must be a subclass of (or the same class as) the node type(s) returned by getRequiredPrimaryTypes.

If null is returned this indicates that no default primary type is specified and that therefore an attempt to create this node without specifying a node type will throw a ConstraintViolationException. Note that to indicate a null value for this attribute in a node type definition that is stored in content, the jcr:defaultPrimaryType property is simply removed (since null values for properties are not allowed, see 6.7.20 Node Type Definitions in Content).



Reports whether this child node can have same-name siblings. In other words, whether the parent node can have more than one child node of this name.