Over the course of a project, you might create several types of documents, such as proposals, legal contracts, and product specifications. While you can store those documents together because they belong to a single project, you can also create, share, and retain them in different ways. For that reason, you might want to collect and maintain different kinds of metadata (data about your documents) for each type of content.
Note: This article refers to an example SharePoint site created by Adventure Works, a fictitious company that manufactures bicycles, bicycle components, and bicycling accessories.
Microsoft Office SharePoint Server 2007 enables you to define these different sets of documents as content types. A content type is a reusable group of settings for a category of content. You can use content types to manage the metadata, templates, and behavior of items and documents consistently. For example, when you create a new document in the Adventure Works Document Center, the New menu gives you a set of content types, and you choose the type that corresponds to the document that you want to create.
In addition, different content types in the same document library can collect different metadata. For example, in the Adventure Works Document Center, user manuals have a Due Date field, while product comparisons have an Approver Name field, and both content types use the % Complete field.
Features of content types
You can define content types for any item type in Office SharePoint Server 2007, including documents, list items, and folders. Each content type can specify:
The columns (metadata) that you want to assign to the type.
The document template that you want to apply to new items (available for document content types only).
Custom New, Edit, and Display forms.
Workflows for items of the content type.
Custom solutions or features.
Information management policies.
Document Information Panels, which you can then use in compatible Microsoft Office programs.
The document conversions for items of the content type (available for document content types only).
Kinds of content types
You can create and use two basic kinds of content types:
Site content types These content types are available for use in any subsites created below a parent site. For example, if you define a site content type for the top-level site in a site collection, that type is available for use in lists and document libraries throughout all the sites in that collection. SharePoint Server provides site content types by default.
List content types These content types can be added to a list or library. After you add them, you can customize them for that specific location. By default, list content types are children of the site content types from which you created them. List content types can make your document libraries and lists more flexible, because a single list or library can contain multiple item types or document types, each of which can have unique metadata, policies, or behaviors. If you set up a list or library to allow multiple content types, you can add content types to that list or library from your groups of site content types. The New command in that list or library then lists the types available for that list or library.
Adventure Works uses site content types, and then adapts those types to individual lists or libraries, because that approach is the most flexible. For example, when you open the New menu in the Document Center, you see several content types, including Price List, Specification Sheet, and Product Comparison. Each of these list content types is based on the Document site content type. The following figure shows the list types and their parent.
About attribute inheritance
You never create content types from scratch. Instead, SharePoint Server 2007 provides a default set of content types, which you can use as-is or customize. SharePoint Server organizes content types into a hierarchy that allows one content type to inherit its characteristics from another. This structure enables you to handle entire categories of documents consistently across your organization.
When you define a new site content type, you start by choosing a parent from the existing content types. The new type inherits the attributes of the parent, such as its document template, read-only setting, workflows, and columns. After you create the new type, you can change any of those inherited attributes, and you can specify whether you want those changes to apply to other site or list content types that inherit their attributes from your custom type.
If you customize a child type with attributes that the parent type doesn't have, such as extra columns, those customizations aren't written to the parent type. In other words, changes to inherited attributes can cascade downward from parent to child, but never upward.
The same rules apply when you create a list content type. For example, if you customize a list type with attributes that the parent type doesn't have, such as extra columns, those customizations don't affect the parent type. Also, remember you can customize a list type only for the list or library to which it was added, and when you change attributes in the parent type, your changes can overwrite the attributes in the child list type.