<p>I've worked on a number of CMS systems using the .NET platform (the CMS management system is in ASP.NET, and the site which renders the content is both ASP.NET and PHP).</p>

<p>I've traditionally stored the generated content in classes that serialize to XML, which is stored in MSSQL 2005/2008 in a varchar(max) field.  This has made it convenient structuarally for different consumers of the content to work with, and it can be bound to classes (for re-opening the CMS record and editing it, or for the consuming website).</p>

<p>However, I've been wondering what type of storage mechanism is popular with other CMS shops, and if anyone likes or has serious issue with the approach I'm most familiar with.</p>

<p>Good, bad, ugly?  What would you do?</p>

I personally treat the data as any other data that would be stored in the system, for example I have a module built for DNN that stores collection of text data, I have the following collection of columns in a table for it.
EntryId
UpdatedBy
UpdatedDate
CreatedBy
CreatedDate
SortOrder
Content (NTEXT)
Hidden (Bit)
I find that this keeps the data easy to find, and it is easy to manipulate regardless of the caller.