ContentType element (SPMetal)

Applies to: SharePoint 2016 | SharePoint Foundation 2013 | SharePoint Online | SharePoint Server 2013

Specifies that a content type should be included in code generation and modifies which columns in the content type are included in code generation.

<ContentType Name="Contact" Class="Contact"> ... </ContentType>

Elements and attributes

The following sections describe attributes, child elements, and parent elements.

Attributes

Attribute Description
Name (required)
The name of the content type in SharePoint Foundation.
Member (optional)
The name SPMetal should give to the property that it generates to represent the list.
AccessModifier (optional)
Specifies whether the class is public or internal.

Possible values of AccessModifier attribute

Value Description
Internal
The class will be internal (Friend in Visual Basic).
Public
DEFAULT: The class will be public (Public in Visual Basic).

Child elements

Element Description
Column
Includes a column (field) in code generation.
ExcludeColumn
Excludes a column in code generation.
ExcludeOtherColumns
Excludes from code generation all columns not explicitly included with a Column element.
IncludeHiddenColumns
Includes hidden columns in code generation.

Parent elements

Element Description
Web
Specifies the name and access level (public or internal) of the class (derived from DataContext) that SPMetal generates.
List
Includes a list in code generation and modifies how code is generated for list-scoped content types.

Remarks

A ContentType element cannot have both a Column element and an ExcludeColumn element that name the same column. An ExcludeColumn element that names a hidden column may not be present in the same ContentType element that has an IncludeHiddenColumns element. Finally, a ContentType element cannot have both an ExcludeOtherColumns element and an IncludeHiddenColumns element.

Example

The following is an example of a ContentType element in use. If this was a hidden content type, the presence of the element would ensure that it was included in code generation. The Class attribute in the element ensures that the class is named "Contract" instead of the default name "ContractsItem". A list-scoped ContentType element ensures that the class that represents the content type of the list is named "TeamMember" instead of "TeamMembersItem".

<?xml version="1.0" encoding="utf-8"?>
<Web AccessModifier="Internal" xmlns="http://schemas.microsoft.com/SharePoint/2009/spmetal">
  <ContentType Name="Contact" Class="Contact">
    <Column Name="ContId" Member="ContactId" />
    <Column Name="ContactName" Member="ContactName1" />
    <Column Name="Category" Member="Cat" Type="String"/>
    <ExcludeColumn Name="HomeTelephone" />
  </ContentType>
  <ExcludeContentType Name="Order"/>
  <List Name="Team Members">
    <ContentType Name="Item" Class="TeamMember" />
  </List>
</Web>

See also