1.2. Content Types

Dividing site content into discrete Content Types gives control over exactly which fields, attributes, and associations are allowable for the various types. Content Types are defined in a hierarchy so that certain data fields and associations may be shared across several content types by assigning them to base types. All content types extend the class com.arsdigita.cms.ContentItem, either directly or indirectly. ContentItem is itself a subtype of com.arsdigita.kernel.ACSObject.

There are two basic ways of creating a content type. The primary method is to define it programmatically by creating the domain class, the PDL Object Type definition, the authoring kit, and the XSL stylesheet for item presentation. In addition, CMS supports the creation of user-defined Content Types, with a limited degree of flexibility. The other method is performed by a CMS administrator, who can create a new content type via the admin UI by choosing a base type to extend (any current content type) and adding additional type attributes and associations.