h1. Node Type Management

h1. Overview

#startfloatingbox()
*See also*
* [NameSpace Management|ECM:JCR Namespaces]
* [NodeType Management|ECM:Node Type Management]
* [Publication Service|Publication Service]
* [ECM Action Type Management]
#endfloatingbox()

The NodeType concept has been introduced by the JCR specification to allow developers to define content structures. A simple example would be the description of the eXo: sample NodeType which defines what properties and children nodes an article node should have. In eXo ECM we are providing an advanced administration functionality to allow ECM admins to define new NodeTypes through the user interface.

The UI leverages advanced eXo JCR functionalities that add XML NodeType import/export features. Each newly created NodeType is itself stored in the JCR tree and made available through the JCR API like the NodeTypeManager class. It is not possible to remove a created NodeType for integrity reasons, hence we have introduced the draft mode which allows you to modify the newly created NodeType before a final registration.

Adding a new NodeType is a simple process itself if you are familiar with the JCR specification as all options are available in different forms defined all by the specification.

Each NodeType may define several properties. Here again adding a new property is a very simple process as well as the admin knows the specification.

When defining a new property, one must set its type. According to the type, there exists several possibilities for the constraints. Indeed, a String property with constraints will for example allow you to limit the number of accepted values while a Reference property will allow you to define nodetype constraints.

Adding a child node is quite similar to adding a property. Once again refer to the JCR specification if you need more information on the meaning of each field.




