*/
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
.
*
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();
}
?>