Content Model is very significant part of any CMS (Content Management System).Now just to give brief Idea about content model it define the different types in which stored documents going to be categorized and also define the set of properties (meta-data) which will be associated with those types. Along with this basic features it can also defined the associations between different content types, set of properties which can be applied to various content types (ASPECTS), Constrains on properties.
Initial phase for using CMS for any organization is Content Modeling. Different steps for content modeling are as follow.
1. Identify different possible content types from business requirement.
This is the phase where we need to identify the different types of content types which will be required to categories the documents and also properties associated with those content types which later can be used to search contents easily. Also identify the possible associations between them. For Instance if there is organization which wants to store Invoices , contracts ,Resumes under alfresco we can define those as different content types.
2. Create Content model
Once we identify all those things we need to define it in the content model as per the structure supported by CMS. Also need to define following things.
There are some properties on which we want to have some restrictions like length, List of allowed values etc… We need to specify that in the content model at this stage only.
NOTE: changes in constrain at later staging could lead to inconsistency and integrity violations.
Associations are used to relate the different contents for instance there is type expanse report which can be associated with the certain bills stored. We need to identify and define all those associations.
Aspects are nothing but set of properties which can be applied to multiple content types.
Alfresco also uses the content model which is a XML file out of box there are various content model files like bpmModel.xml (for workflows). contentModel.xml (for basic content types).Model allows you to inherit the basic content types defined so that all those properties defined in basic content type are automatically gets inherited in custom content types. If you want to create your custom content you need to extend those basic content types like cm:content or cm:folder.
Sample Content Model file in alfresco can be found at
3. Register content model to CMS.
Model which is created in the second phase needs to be registered with CMS to make sure it gets loaded and validated during start up and Context file used for this.
Alfresco uses Spring in its core so the context file is also xml file having name in format of
*-context.xml where * can be any name you want to specify.
You can find sample context file in following location
For enabling this sample custom content model you need to remove .sample extension from both model file and context file and need to restart the server.
4. Configure User Interface to include custom model artifacts.
Now once model is registered those various custom content types needs to be visible on the UI to use it in the CMS. Different CMS have different UI and different processes to achieve this.
Alfresco use Share and Explorer as Interface so to make it visible in respective UI you have to configure separately.
For Alfresco Explorer web-client-config-custom.xml.sample file under
For Alfresco Share share-config-custom.xml.sample file in
To enable any of them you just need to remove .sample from file and restart server.
Above mentioned files are just for reference in actual case you need to create your own model file with many more custom content types and properties. These are the steps for content modeling which is main process for converting unstructured data into structured data. We can say this is the process of defining that systematic structure.