<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.sharepointblogs.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">MOSS 2007 and Software Product Lines</title><subtitle type="html">Hi. My name is Alfred de Weerd. In this blog I will deal with MOSS 2007 and development professionalisation in general. I&amp;#39;m planning to write about subjects like a MOSS product line in general, reusable assets, software factories, processes and the like.





</subtitle><id>http://www.sharepointblogs.com/alfred/atom.aspx</id><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/default.aspx" /><link rel="self" type="application/atom+xml" href="http://www.sharepointblogs.com/alfred/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20611.960">Community Server</generator><updated>2008-01-25T21:31:00Z</updated><entry><title>Mapping Content Type schema, SPContenttype object and MOSS GUI</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/04/24/save-ct-post.aspx" /><link rel="enclosure" type="application/octet-stream" length="462336" href="http://www.sharepointblogs.com/alfred/attachment/15696.ashx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/04/24/save-ct-post.aspx</id><published>2008-04-24T09:43:00Z</published><updated>2008-04-24T09:43:00Z</updated><content type="html">This post is the first of a small series about the mapping of the representation of the core entities of MOSS. I use this info to make a complete mapping in the MOSS Feature Generator , but I thought it could be useful on its own. This first article is about Content Types, as you might have guessed from the title. Since I strive for completeness, let me know if you think I missed anything (or I&amp;#39;m dead wrong). The actual content is an attached word-file (it is indeed a rather tiny link). Most...(&lt;a href="http://www.sharepointblogs.com/alfred/archive/2008/04/24/save-ct-post.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=15696" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /></entry><entry><title>Creating Features by building a Virtual Site</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/04/15/creating-features-by-building-a-virtual-site.aspx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/04/15/creating-features-by-building-a-virtual-site.aspx</id><published>2008-04-15T16:48:00Z</published><updated>2008-04-15T16:48:00Z</updated><content type="html">In this post I&amp;#39;ll Show you take how to generate features by First creating a Virtual Site, consisting of all your selected functionality from the original MOSS site. If you have created the Virtual Site, you can create all the features at once, using default settings, or you can generate them one by one ,giving you more control. At this time, I have not included a great deal of logic into build process. It is planned for the next version of the MFG. So when you start editing Content Type ID&amp;#39;s...(&lt;a href="http://www.sharepointblogs.com/alfred/archive/2008/04/15/creating-features-by-building-a-virtual-site.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=15379" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="moss" scheme="http://www.sharepointblogs.com/alfred/archive/tags/moss/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="site column" scheme="http://www.sharepointblogs.com/alfred/archive/tags/site+column/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="tool" scheme="http://www.sharepointblogs.com/alfred/archive/tags/tool/default.aspx" /><category term="list template" scheme="http://www.sharepointblogs.com/alfred/archive/tags/list+template/default.aspx" /></entry><entry><title>MOSS Feature Generator 0.7 released</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/04/14/moss-feature-generator-0-7-released.aspx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/04/14/moss-feature-generator-0-7-released.aspx</id><published>2008-04-14T08:37:00Z</published><updated>2008-04-14T08:37:00Z</updated><content type="html">Today, the MFG, version 0.7 has been released. It allows you to generate MOSS 2007 Features quickly and accurately, according to the functionality you created by using the MOSS Gui. It generates XML files by reading the properties for the Site Columns, Content Types and List from the object model. New features include the creation of MOSS Features with drag &amp;amp; drop from your original MOSS 2007 Site, a better separation between Feature (feature.xml) and functionality (elements.xml, schema.xml,...(&lt;a href="http://www.sharepointblogs.com/alfred/archive/2008/04/14/moss-feature-generator-0-7-released.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=15313" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="moss" scheme="http://www.sharepointblogs.com/alfred/archive/tags/moss/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="site column" scheme="http://www.sharepointblogs.com/alfred/archive/tags/site+column/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="list template" scheme="http://www.sharepointblogs.com/alfred/archive/tags/list+template/default.aspx" /></entry><entry><title>Validating Features against wss.xsd</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/04/07/validating-features-against-wss-xsd.aspx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/04/07/validating-features-against-wss-xsd.aspx</id><published>2008-04-07T18:29:00Z</published><updated>2008-04-07T18:29:00Z</updated><content type="html">When looking on the net for information about validating features against their XSD, I could not find information on how to do this. Now this might be so obvious that nobody takes the bother. Or the existence of the schema files for Sharepoint 2007 is just related to its use on intellisense in Visual Studio, because it is not perfect. Since I found validating the features not that obvious, and it proved very usefull in the MOSS Feature Generator , I&amp;#39;ll show below how it is done. First, I tried...(&lt;a href="http://www.sharepointblogs.com/alfred/archive/2008/04/07/validating-features-against-wss-xsd.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=15003" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="site column" scheme="http://www.sharepointblogs.com/alfred/archive/tags/site+column/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="tool" scheme="http://www.sharepointblogs.com/alfred/archive/tags/tool/default.aspx" /><category term="list template" scheme="http://www.sharepointblogs.com/alfred/archive/tags/list+template/default.aspx" /></entry><entry><title>Generating views for  ListTemplates  with the MOSS Feature Generator</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/04/06/generating-views-for-listtemplates-with-the-moss-feature-generator.aspx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/04/06/generating-views-for-listtemplates-with-the-moss-feature-generator.aspx</id><published>2008-04-06T20:27:00Z</published><updated>2008-04-06T20:27:00Z</updated><content type="html">While in the testing process for the upcoming release of the 0.7 version of the MFG, I was actually amazed to see how well rather complex views could be generated. I tried to make it as difficult as possible, by created lists with the MOSS Gui, and then creating complicated views. When I say complicated, I mean complicated to make, without the use of a generation tool. With the MOSS Gui, creating a Gant-view or conditional rendering is easy. Most notably, I generated the following views: showing...(&lt;a href="http://www.sharepointblogs.com/alfred/archive/2008/04/06/generating-views-for-listtemplates-with-the-moss-feature-generator.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=14962" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="moss" scheme="http://www.sharepointblogs.com/alfred/archive/tags/moss/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="list template" scheme="http://www.sharepointblogs.com/alfred/archive/tags/list+template/default.aspx" /></entry><entry><title>Sneak preview MOSS Feature Generator 0.7</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/03/27/sneak-preview-moss-feature-generator-0-7.aspx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/03/27/sneak-preview-moss-feature-generator-0-7.aspx</id><published>2008-03-27T14:56:00Z</published><updated>2008-03-27T14:56:00Z</updated><content type="html">The next version of the MFG will contain a Treeview of the features you generate, with their properties. The features will be linked automatically when you drop them into the treeview. In this way, I hope to enable you to create a set of related features (ContentTypes based on Fields, ListInstances based on ListTemplates etcetera) with ease. Since I have not been posting new updates, it seemed good to give you a preview what is to come soon. Other updates will be the support of ListInstances and...(&lt;a href="http://www.sharepointblogs.com/alfred/archive/2008/03/27/sneak-preview-moss-feature-generator-0-7.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=14621" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="site column" scheme="http://www.sharepointblogs.com/alfred/archive/tags/site+column/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="tool" scheme="http://www.sharepointblogs.com/alfred/archive/tags/tool/default.aspx" /><category term="list template" scheme="http://www.sharepointblogs.com/alfred/archive/tags/list+template/default.aspx" /></entry><entry><title>Combining the MOSS Feature Generator with WSPBuilder</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/03/16/combining-the-moss-feature-generator-with-wspbuilder.aspx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/03/16/combining-the-moss-feature-generator-with-wspbuilder.aspx</id><published>2008-03-16T20:04:00Z</published><updated>2008-03-16T20:04:00Z</updated><content type="html">The MOSS Feaure Generator is very well suited to be used with the WSPBuilder. One using both in a combination, you can get from zero to solution packaged feature in minutes. All you need to do is generate the features in the directorystructure required bij WSPBuilder. You can find both at CodePlex: http://www.codeplex.com/wspbuilder http://www.codeplex.com/mossfeaturegenerator Alfred Posted on SharePoint Blogs...(&lt;a href="http://www.sharepointblogs.com/alfred/archive/2008/03/16/combining-the-moss-feature-generator-with-wspbuilder.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=14150" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="moss" scheme="http://www.sharepointblogs.com/alfred/archive/tags/moss/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="site column" scheme="http://www.sharepointblogs.com/alfred/archive/tags/site+column/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="tool" scheme="http://www.sharepointblogs.com/alfred/archive/tags/tool/default.aspx" /><category term="list template" scheme="http://www.sharepointblogs.com/alfred/archive/tags/list+template/default.aspx" /></entry><entry><title>MOSS Feature Generator to codeplex</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/03/08/moss-feature-generator-to-codeplex.aspx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/03/08/moss-feature-generator-to-codeplex.aspx</id><published>2008-03-08T11:05:00Z</published><updated>2008-03-08T11:05:00Z</updated><content type="html">Hi, I moved application and the Visual Studio solution to CodePlex, here: MOSS Feature Generator Alfred Posted on SharePoint Blogs...(&lt;a href="http://www.sharepointblogs.com/alfred/archive/2008/03/08/moss-feature-generator-to-codeplex.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=13766" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="site column" scheme="http://www.sharepointblogs.com/alfred/archive/tags/site+column/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="tool" scheme="http://www.sharepointblogs.com/alfred/archive/tags/tool/default.aspx" /><category term="list template" scheme="http://www.sharepointblogs.com/alfred/archive/tags/list+template/default.aspx" /></entry><entry><title>Professionalizing the work of Power Users: another use case for the MOSS Feature Generator</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/03/02/professionalizing-the-work-of-power-users-another-use-case-for-the-moss-feature-generator.aspx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/03/02/professionalizing-the-work-of-power-users-another-use-case-for-the-moss-feature-generator.aspx</id><published>2008-03-02T21:46:00Z</published><updated>2008-03-02T21:46:00Z</updated><content type="html">One of the problems you face when setting up a MOSS 2007 product line concerns the MOSS Power User. In a traditional environment, software comes from the development team, or is unsupported. In a MOSS environment however, it is not allways possible to be as rigid as this, since Power Users have been explicitly given the possibility to create list, content types etcetera. From a business perspective, this is a great virtue. For developers however, the artifacts of Power Users may prove to be an issue...(&lt;a href="http://www.sharepointblogs.com/alfred/archive/2008/03/02/professionalizing-the-work-of-power-users-another-use-case-for-the-moss-feature-generator.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=13414" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="product line" scheme="http://www.sharepointblogs.com/alfred/archive/tags/product+line/default.aspx" /><category term="moss" scheme="http://www.sharepointblogs.com/alfred/archive/tags/moss/default.aspx" /><category term="software product line" scheme="http://www.sharepointblogs.com/alfred/archive/tags/software+product+line/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="tool" scheme="http://www.sharepointblogs.com/alfred/archive/tags/tool/default.aspx" /><category term="list template" scheme="http://www.sharepointblogs.com/alfred/archive/tags/list+template/default.aspx" /></entry><entry><title>Visual Studio Solution for MOSS Feature Generator</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/02/29/visual-studio-solution-for-moss-feature-generator.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="242090" href="http://www.sharepointblogs.com/alfred/attachment/13362.ashx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/02/29/visual-studio-solution-for-moss-feature-generator.aspx</id><published>2008-02-29T18:01:00Z</published><updated>2008-02-29T18:01:00Z</updated><content type="html">As I promised in my previous post, I added the Visual Studio solution of the MOSS Feature Generator. This contains the code for the list template generator as well as the code that was previously contained in the CTFC (Content Type Feature Creator). In my next post, I will add Feature Creation for List Instances. I then plan to do a little reengeneering, so that you can yourself decide if you wish to create Columns, ContentTypes, ListTemplates and ListInstances in one, or in several features. I&amp;#39;ll...(&lt;a href="http://www.sharepointblogs.com/alfred/archive/2008/02/29/visual-studio-solution-for-moss-feature-generator.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=13362" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="moss" scheme="http://www.sharepointblogs.com/alfred/archive/tags/moss/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="tool" scheme="http://www.sharepointblogs.com/alfred/archive/tags/tool/default.aspx" /><category term="list template" scheme="http://www.sharepointblogs.com/alfred/archive/tags/list+template/default.aspx" /></entry><entry><title>Automatically generating a List Template feature with the MOSS Feature Generator</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/02/28/generate-a-list-template-feature-with-the-moss-feature-generator.aspx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/02/28/generate-a-list-template-feature-with-the-moss-feature-generator.aspx</id><published>2008-02-28T08:02:00Z</published><updated>2008-02-28T08:02:00Z</updated><content type="html">Since my last post I&amp;#39;ve been busy extending the idea of generating features to the domain of list templates. This proved to be more difficult, since lists don&amp;#39;t come with the nicely formatted xml in the content database, that provided me an easy solution generating content types. On the other hand, the gains would also be bigger, since creating a list without the help of a generator involves modifying a schema.xml file, which has a rather intimidating complexity (to me at least). What I wanted...(&lt;a href="http://www.sharepointblogs.com/alfred/archive/2008/02/28/generate-a-list-template-feature-with-the-moss-feature-generator.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=13263" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="product line" scheme="http://www.sharepointblogs.com/alfred/archive/tags/product+line/default.aspx" /><category term="moss" scheme="http://www.sharepointblogs.com/alfred/archive/tags/moss/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="site column" scheme="http://www.sharepointblogs.com/alfred/archive/tags/site+column/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="tool" scheme="http://www.sharepointblogs.com/alfred/archive/tags/tool/default.aspx" /><category term="list template" scheme="http://www.sharepointblogs.com/alfred/archive/tags/list+template/default.aspx" /></entry><entry><title>Generating MOSS Features with CTFC (Content Type Feature Creator)</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/01/29/generating-moss-features-with-ctfc-content-type-feature-creator.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="113303" href="http://www.sharepointblogs.com/alfred/attachment/12067.ashx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/01/29/generating-moss-features-with-ctfc-content-type-feature-creator.aspx</id><published>2008-01-29T19:33:00Z</published><updated>2008-01-29T19:33:00Z</updated><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Features for Content Types and Site Columns can be quickly generated by using CTFC. There are basically two main steps involved:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create features by using the MOSS 2007 User Interface&lt;/li&gt;
&lt;li&gt;Generate features based on what I had created.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Please note however that in this version (1.1) is not tested rigidly. It is more a prove of concept, to demonstrate and evaluate the possibilities and limitations.&lt;/p&gt;
&lt;p&gt;I will now explain the steps in a little more detail.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;b&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;b&gt;Create features by using the MOSS 2007 User Interface&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;This is the process by which a power user might create a user from the MOSS 2007 user interface. A number of different options exist for creating the Content Type,&amp;nbsp; some of which are supported out of the box, and some are not. &lt;/p&gt;
&lt;p&gt;Supported are the inheritance of existing Content Types, and the usage of newly created Custom Site columns, for which a separate feature will be generated. &lt;/p&gt;
&lt;p&gt;Some other advanced properties have not been tested, for instance the coupling to a workflow.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The creation of custom site columns and content types in the user interface is described by a number of people, for instance Shady KhorShed at &lt;a href="http://shadiesm.blogspot.com/2007/11/moss-create-site-column.html"&gt;http://shadiesm.blogspot.com/2007/11/moss-create-site-column.html&lt;/a&gt;, or Jan Tielens at &lt;a href="http://weblogs.asp.net/jan/archive/2006/05/09/445763.aspx"&gt;http://weblogs.asp.net/jan/archive/2006/05/09/445763.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;2&amp;nbsp;Generate features based on what I had created.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The generation of features from the stuff you created in the MOSS user interface involves two steps.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Database form&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In the database form, data for columns and content types is retrieved from the database by following steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a) Specify the path to your content database, You can find this path by opening the Central Administration, selecting Application Management, then &amp;quot;Create New Web Application&amp;quot; and finding the server name. This is a bit counterintuitive, but you can not find the server by inspecting the existing web application(s). Then, again from the Application Management tab, select Content Databases. Select the web application, and you&amp;#39;ll get the content database(s). If you provided logical names, you&amp;#39;ll see here which one is your target. &lt;/li&gt;
&lt;li&gt;b) Press &amp;quot;Load&amp;quot;, and if your connectionstring was OK, you&amp;#39;ll see content types and columns you created in step 1, appear in the lists.&lt;/li&gt;
&lt;li&gt;c) Select the content type for which you want to create a feature and press the Next button. The feature form will now open.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Feature form&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In the features form, you see the properties of both the custom columns and the content type features.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a) Optionally you may change the settings supplied;&lt;/li&gt;
&lt;li&gt;b) Select a path to create the feature to&lt;/li&gt;
&lt;li&gt;c) Press the Create Features button and the features will be created to the specified path&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;In the attachment you will find the executable program, help file and sources&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Alfred&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=12067" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="product line" scheme="http://www.sharepointblogs.com/alfred/archive/tags/product+line/default.aspx" /><category term="moss" scheme="http://www.sharepointblogs.com/alfred/archive/tags/moss/default.aspx" /><category term="software product line" scheme="http://www.sharepointblogs.com/alfred/archive/tags/software+product+line/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="site column" scheme="http://www.sharepointblogs.com/alfred/archive/tags/site+column/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="tool" scheme="http://www.sharepointblogs.com/alfred/archive/tags/tool/default.aspx" /></entry><entry><title>Attachment: tool for creating columns and content types</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/01/28/attachment-tool-for-creating-columns-and-content-types.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="57881" href="http://www.sharepointblogs.com/alfred/attachment/11971.ashx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/01/28/attachment-tool-for-creating-columns-and-content-types.aspx</id><published>2008-01-28T13:09:00Z</published><updated>2008-01-28T13:09:00Z</updated><content type="html">&lt;p&gt;Update: In my new post, I show you a new tool for both the creation of features for content types and columns as for lists&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Alfred&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=11971" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="moss" scheme="http://www.sharepointblogs.com/alfred/archive/tags/moss/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="site column" scheme="http://www.sharepointblogs.com/alfred/archive/tags/site+column/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="tool" scheme="http://www.sharepointblogs.com/alfred/archive/tags/tool/default.aspx" /></entry><entry><title>Generating Custom Site Columns and Custom Content Type features from the content database</title><link rel="alternate" type="text/html" href="http://www.sharepointblogs.com/alfred/archive/2008/01/25/generating-custom-site-columns-and-custom-content-type-features.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="57881" href="http://www.sharepointblogs.com/alfred/attachment/11881.ashx" /><id>http://www.sharepointblogs.com/alfred/archive/2008/01/25/generating-custom-site-columns-and-custom-content-type-features.aspx</id><published>2008-01-25T20:31:00Z</published><updated>2008-01-25T20:31:00Z</updated><content type="html">&lt;p&gt;I was looking for information on the generation of features, but I could not find any information yet. Splendid! Good start for some coding. What I wanted to do is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;Create features by using the MOSS 2007 User Interface&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Generate features based on what I had created.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;By the way, if you have never created a Content Type feature, it would help you understand the text below to glance over how its done, for example by reading this post by Ton Stegeman: &lt;a href="http://www.sharepointblogs.com/tonstegeman/archive/2006/07/19/creating-contenttypes-in-sharepoint-2007-by-using-a-feature.aspx"&gt;http://www.sharepointblogs.com/tonstegeman/archive/2006/07/19/creating-contenttypes-in-sharepoint-2007-by-using-a-feature.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Using custom site columns and custom content types as a start, it&amp;nbsp;appeared to be possible&amp;nbsp;to decrease development time significantly. I&amp;#39;ve not gone through a formal testing process, and I needed some hacks. So I expect that some more issues will come up. But I do not think I&amp;#39;ll ever code columns or content type features from scratch again. It&amp;#39;s also a handy tool for to study more complex content types like&amp;nbsp;those inheriting from other content types.&lt;/p&gt;
&lt;p&gt;Looking in the content database, I noticed that with a &lt;font color="#ff0000"&gt;&amp;quot;select definition from ContentTypes where definition is not null&amp;quot;&lt;/font&gt; I could retrieve both columns I had create in the MOSS user interface, and content types I had created there.&amp;nbsp;I was a little surprised that there was actually XML in the table, resembling closely the XML I used to type in to create my custom site columns and custom content types.It was easy enough to grab the data from the content database and generate feature.xml and elements.xml files from it (never try to write to the content database!). The files thus generated however refused to be activated. I had to tidy up the XML to get them working. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Well to describe what I did in a more organized manner:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1 Use Sql Server to retrieve the URL for the MOSS content database.&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;I used this connectionstring: &amp;quot;Data Source=VPCWIN2003R2;Initial Catalog=WSS_Content_8080;Integrated Security=SSPI&amp;quot;;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2 Read the relevant data from the database, and fill&amp;nbsp;two lists&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Since both columns and content types are in the same table, I filtered them based on thier element name.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SqlCommand cmd = new SqlCommand(&amp;quot;select definition from ContentTypes where definition is not null&amp;quot;, connection);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SqlDataReader rdr = cmd.ExecuteReader();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (rdr.Read())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string xmlString = (string)rdr[0];&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string nodeType = XmlHelper.GetElementName(xmlString);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (nodeType.Equals(&amp;quot;Field&amp;quot;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lstColumns.Items.Add(xmlString);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lstContentTypes.Items.Add(xmlString);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3 Create a feature.xml file for the columns&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I used values I keyed in from a form to generate a valid feature.xml (more on the little tool I created below)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4 Create an elements.xml file for the columns&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From all columns I&amp;nbsp;created in the&amp;nbsp;Moss User Interface, I had to&amp;nbsp;filter those relevant for the selected content type. For this I could just iterate over the the &amp;lt;FieldRef&amp;gt; elements in the content type and verify select the column if there was a match.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //returns the columns that are relevant for the content type&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static string GetRelevantFields(string contentType, string[] columns)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string retVal = &amp;quot;&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XPathNodeIterator it = GetRootNodeIteratorFromString(contentType);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XPathNodeIterator it2 = it.Current.SelectDescendants(&amp;quot;FieldRef&amp;quot;,&amp;quot;&amp;quot;,false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (it2.MoveNext())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string id=it2.Current.GetAttribute(&amp;quot;ID&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; columns.Length; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (columns&lt;img src="http://www.sharepointblogs.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Contains(id))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string fieldString = columns&lt;img src="http://www.sharepointblogs.com/emoticons/emotion-55.gif" alt="Idea" /&gt;.Insert(6, &amp;quot; xmlns = \&amp;quot;&lt;a href="http://schemas.microsoft.com/sharepoint//"&gt;http://schemas.microsoft.com/sharepoint/\&lt;/a&gt;&amp;quot;&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retVal += fieldString;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retVal;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;Unfortunately, when I added the XML thus obtained to my elements.xml file, I received an error when installing the feature. It appeared that, when you do not add a xml namespace, an empty one is added to the xml when you add the node. That is why I had to insert the right namespace to the columns, before adding them to the return value.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;5 Create the content type feature.xml file&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This was equivalent to the columns feature.xml file&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6 Create the content type elements.xml file&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This would have been just the creation of&amp;nbsp;a xml file from the data in the content database, but then there proved to be some issues:&lt;/p&gt;
&lt;p&gt;a) An empty namespace was added, as decribed in (4). I added a namespace as a property (I have not been doing XML in code for some years, there&amp;#39;ll be a more elegant way, I bet)&lt;/p&gt;
&lt;p&gt;b) For content types that derived from the Page content type, or a sub type of Page, a number of attributes were introduced with empty values (Customization, PIAttribute, PITarget, to name some). I did not understand these properties, so I removed them by using a regular expression&lt;/p&gt;
&lt;p&gt;c) There seemed to be a problem with the xml of the &amp;lt;XmlDocument&amp;gt; nodes, so I removed them by using a regular expression&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7 Install features&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I copied the feature directories to Features folder and installed them by using stsadm as described&amp;nbsp;on &lt;a href="http://msdn2.microsoft.com/en-us/library/ms442691.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms442691.aspx&lt;/a&gt;. I have not automated this part yet.&lt;/p&gt;
&lt;p&gt;I tried a&amp;nbsp;dozen or so content types, which could all be created and activated. I did not try using each and every column or content type from the User Interface, so&amp;nbsp;just consider this a prove of concept.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Since increasing productivity of MOSS solutions is one of my main interests, any feedback would be welcome. &lt;/p&gt;
&lt;p&gt;Alfred&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=11881" width="1" height="1"&gt;</content><author><name>weerda</name><uri>http://www.sharepointblogs.com/members/weerda.aspx</uri></author><category term="Sharepoint 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/Sharepoint+2007/default.aspx" /><category term="MOSS 2007" scheme="http://www.sharepointblogs.com/alfred/archive/tags/MOSS+2007/default.aspx" /><category term="moss" scheme="http://www.sharepointblogs.com/alfred/archive/tags/moss/default.aspx" /><category term="software product line" scheme="http://www.sharepointblogs.com/alfred/archive/tags/software+product+line/default.aspx" /><category term="content type" scheme="http://www.sharepointblogs.com/alfred/archive/tags/content+type/default.aspx" /><category term="site column" scheme="http://www.sharepointblogs.com/alfred/archive/tags/site+column/default.aspx" /><category term="generate" scheme="http://www.sharepointblogs.com/alfred/archive/tags/generate/default.aspx" /><category term="tool" scheme="http://www.sharepointblogs.com/alfred/archive/tags/tool/default.aspx" /></entry></feed>