There are several ways to create lists in SharePoint, but you must keep in mind that the lists must be maintainable, so I recommend the following steps to make your lists and columns are maintainable
a. Create a file of fields so that they can reuse:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field ID="{07E875FB-FE9D-49DE-B073-91DD124DFBB4}"
Name="CarColor"
DisplayName="Car Color"
Type="Text"
Required="TRUE"
TextOnly="TRUE"
Group="Nana Test Columns"/>
<Field ID="{931B40A4-4F95-495A-9F47-CF884198F6E9}"
Name="CarModel"
DisplayName="Car Model"
Type="Text"
Required="TRUE"
TextOnly="TRUE"
Group="Nana Test Columns"/>
<Field ID="{4C1FC9B5-2A97-402A-BA8B-E4657BA8EB69}"
Name="CarDescription"
DisplayName="Car Description"
Type="Note"
Mult="FALSE"
Required="TRUE"
RichText="TRUE"
NumLines="10"
RichTextMode="FullHtml"
Group="Nana Test Columns" />
</Elements>
b. Create a content type
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!– Parent ContentType: Item (0x01) –>
<ContentType ID="0x01002a07ee8c4fe042dca6a4fc9677803cb4"
Name="CarData"
Group="Nana Test Content Types"
Description="Configuration Content Type"
Inherits="TRUE"
Version="0">
<FieldRefs>
<FieldRef ID="{07E875FB-FE9D-49DE-B073-91DD124DFBB4}" Name="CarColor"
DisplayName="CarColor" Required="TRUE" />
<FieldRef ID="{931B40A4-4F95-495A-9F47-CF884198F6E9}" Name="CarModel"
DisplayName="CarModel" Required="TRUE" />
<FieldRef ID="{4C1FC9B5-2A97-402A-BA8B-E4657BA8EB69}"
Name="CarDescription" DisplayName="CarDescription"
Required="TRUE" />
</FieldRefs>
</ContentType>
</Elements>
c. Create a custom list definition
Elements
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!– Do not change the value of the Name attribute below. If it does not match
the folder name of the List Definition project item, an error will occur
when the project is run. –>
<ListTemplate
Name="ListDefCarData"
Type="10003"
BaseType="0"
OnQuickLaunch="FALSE"
SecurityBits="11"
Sequence="410"
DisplayName="Car data List Definition"
Description="Car data List Definition"
Image="/_layouts/images/car.png"/>
</Elements>
Schema
<List xmlns:ows="Microsoft SharePoint" Title="Car data List Definition" EnableContentTypes="TRUE" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/CarDataListDefinition" BaseType="0" xmlns="http://schemas.microsoft.com/sharepoint/">
<MetaData>
<ContentTypes>
<ContentTypeRef ID="0x01002a07ee8c4fe042dca6a4fc9677803cb4" />
</ContentTypes>
<Fields />
<Views>
<View BaseViewID="0" Type="HTML" MobileView="TRUE" TabularView="FALSE">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="LinkTitleNoMenu">
</FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE">
</FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="AddNewAnnouncement" Location="Resource(wss,addnewitem)" />
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_ONET_HOME)" />
</ParameterBindings>
</View>
<View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/generic.png" Url="AllItems.aspx">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="Attachments">
</FieldRef>
<FieldRef Name="LinkTitle">
</FieldRef>
<FieldRef ID="{07E875FB-FE9D-49DE-B073-91DD124DFBB4}" Name="CarColor"
DisplayName="CarColor" />
<FieldRef ID="{931B40A4-4F95-495A-9F47-CF884198F6E9}" Name="CarModel"
DisplayName="CarModel" />
<FieldRef ID="{4C1FC9B5-2A97-402A-BA8B-E4657BA8EB69}"
Name="CarDescription" DisplayName="CarDescription" />
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="ID">
</FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
</ParameterBindings>
</View>
</Views>
<Forms>
<Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
</Forms>
</MetaData>
</List>
d. Create a list instance
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<ListInstance Title="Car Data List"
OnQuickLaunch="FALSE"
TemplateType="10003"
Url="Lists/CarDataList"
Description="Car data List">
</ListInstance>
</Elements>
With this procedure, you can update easy any field in your list 