A 'Custom Data Model' is a data model customized by the user. This is usually created to separate data from view i.e. not attaching ANY STATIC data to the view component. This is done by overriding the default data model with custom or user defined data model. The source of the user defined data model can be an array, arraylist or any other structure.