Content Types: The little engine that could...

One of the most overlooked and underutilized pieces of WSSv3/MOSS2007 are Content Types. There are many uses, functionalities and services that depend on the proper use and implementation of content types within SharePoint. Over the next few weeks I will be exploring content types and the power they give you to really start getting everything you can out of SharePoint. But first a bit of an intro as to what exactly content types represent within the context of MOSS/WSS.

 In SPS2003/WSSv2 we were given the ability to assign Metadata to documents and lists. This metadata allowed us to track information outside of what the standard document properties would allow. Fields of information that would be stored in the database outside of the document and could also be displayed in the columns within the list or library where the document resided. This gave us a great way of adding information that further described the document for tracking or even for search clarification and differentiation. Different people and companies came up with different uses for metadata, but some items still limited its usability. Metadata could be associated with a library or list so that the information had to be filled in during creation or upload of documents to the list or library. This meant that the metadata was tied to that list and was not exactly portable or reusable without recreating the fields for each library where you wanted to track the data.

For WSSv3/MOSS the concept was taken to a new level and much thought was put into the actual use, portability, reuse and management of metadata. Content Types. Content Types are in all reality simply a grouping of fields. They do not actually need to be tied to a specific document. You can make lists that simply hold instances of a content type. For example if I want a list of addresses, I do not necessarily need to have actual documents where the information is stored. Why not just create a series of fields (Site Columns, More on that later...) to hold the desired data; Address, City, State, Zip, etc... In SPS2003 I could simply create a list and create the columns I wanted for that list. But that isn’t exactly reusable within other lists or libraries in my site. With content types I can create the fields that I want and save them as a content type which can be reused throughout my site and even other sites within SharePoint.

This is all thanks to the magic of site columns. All lists and libraries within MOSS/WSSv3 share a common group of columns. These columns actually are a collection that belongs to the site itself and so are available to all lists and libraries throughout the site. Content types take advantage of this by allowing you to create a grouping of these site columns (Fields) and save it as a content type. You can then create instances of this content type as fits your needs for different lists and libraries. This is the simplest definition of a content type. A reusable grouping of metadata fields (site columns). I can then enable my lists to use the content type, which has a few notable effects. One of the most obvious to the end users is that when they hit the “New” dropdown menu while working on the list, they get more than just the option to create a new word doc or folder; they will now have the option to create a new instance of my content type. So in my address list, they would have the option of adding a new address to the list. The more content types I enable in the list, the more options they users get on the “New” menu for that list.

Again, this is the simplest definition and usage for a content type. Next time I will dig a bit more into some of the other options you have in terms of being able to tie in document templates, Workflows and the Document Information Panel into your content types.

Until next time…