*/ interface 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. The simplest case would be to return nt:base, * which is the base of all primary node types and therefore, in this * context, represents the least restrictive requirement. *

* A node must still have only one assigned primary node type, though * this attribute can restrict that node type by taking advantage of any * inheritance hierarchy that the implementation may support. * * @return an array of NodeType objects. */ public function getRequiredPrimaryTypes(); /** * Gets the default primary node type that will be assigned to the child * node if it is created without an explicitly specified primary node type. * This node type must be a subtype of (or the same type as) the node types * 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. * * @return a NodeType. */ public function getDefaultPrimaryType(); /** * 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. * * @return a boolean. */ public function allowSameNameSibs(); } ?>