By Edith C.
MOSS 2007
To create a custom List definition, you should define 2 major elements:
· Columns
· Content Type
Your list will use the content type you define, and the content type will use the columns you define.
To define the columns, you need to create an xml file. I like to define the following structure for my custom lists, and use WSP Builder to deploy them J

As you can see, I have a […] Columns.xml file, and a […] Content Type.xml file. I defined the following for the Columns file:

This is a drop down column, which has 3 choices. The ID for the Field tag, should be generated (via GUID generator), and you can use whatever you want for the rest of the properties.
And for the Content type file I have:

As this is a Task custom list, The Content Type ID property, should inherit the Task list “ID” first portion, this is: 0x01080100. Here you can find a full reference to every base list ID.
Now, the XmlDocuments tag, can be used to define custom forms to create, display and edit your content type instances, but this will be covered on the next post ;)
After defining columns and content type, I created a Feature file, to reference my xml files.
So the Feature.xml file goes:

The ID property for the Feature should be a unique Guid (use GUID generator). And add 2 Element Manifest tags to the ElementManifests root tag, with the location of your custom columns.xml and content type.xml files.
Deploy and activate your feature, and use it as a new “List”command, by going to> Site Actions, Create, List, “Your custom list name”.
Happy SharePointing!! J