Similarly, each child node definition contains the following information:
The name of the child node to which this definition applies.
The required primary node types for this child node. That is, the primary node types that this child node must have. This attribute is capable of listing more than one node type to accommodate those implementations that support multiple inheritance of primary node types.
The default primary node type for this child node. This is the primary node type automatically assigned if no node type information is specified when the node is created.
Whether this child node will be auto-created when its parent node is created.
Whether the child node is mandatory. A mandatory child node is one that must exist. If a mandatory child node is missing from a parent node then save on the parent node will fail.
The onParentVersion status of the child node. This specifies what to do with the child node if its parent node is versioned.
Whether the child node is protected. A protected node is one which cannot be modified (have child items added to it or removed from it) or be removed (except by removing its parent) by the client of this API but which may be modified or removed by the repository implementation itself.
Whether this child node can have same-name siblings, meaning that the parent node can have more than one child node of this name.