As mentioned previously in the post SharePoint 2007 Deployment: Creating and Using Features, to build a feature you need to create the following files:
- The feature manifest file (which must be named
feature.xml
) - One or more element manifest files
You can then place these two files inside a Solution following the instructions in the post SharePoint 2007 Deployment: Creating Solutions, to provide an easy way to deploy the feature (or upgrade it).
Content Type Binding
When you provision a list through a feature, using the method explained in the post SharePoint 2007 Deployment: List Template Features, you can bind a content type to it only by editing theschema.xml
file of the list template.However, if the list was provisioned through a site definition (
onet.xml
file) and you had no access to its definition, you must do it using a Content Type Binding feature element. This can only be used to attach a content type to a list provisioned through a site definition.Allowed Scopes
The scopes to which a feature can be deployed, are dictated by the types of elements included in it. A feature with content type binding elements can only be deployed to a Site Collection scope.Attempting to install a feature of another scope that contains content type binding elements, will result in an error.
Feature Manifest
I will only present a simple feature manifest, since the additional options were presented in the above mentioned post.<?xml version="1.0" encoding="utf-8" ?> <Feature xmlns="http://schemas.microsoft.com/sharepoint/" Id="{ACDECF85-BDF7-446c-AC1B-C5F133C83F15}" Title="Content Type Binding" Description="This feature binds a content type to the masterpagegallery." Scope="Site" Creator="Create IT" Version="1.0.0.0"> <ElementManifests> <ElementManifest Location="ContentTypeBinding.xml"/> </ElementManifests> </Feature>Notes about this feature manifest:
- The title of the feature is Content Type Binding.
- It will be deployed as a Site Collection feature, since it's
Scope
value isSite
. - It references a single element manifest file:
ContentTypeBinding.xml
.
Element Manifest
The element manifest file can have any name you wish (in this example it's calledContentTypeBinding.xml
), but it's root element must be <Elements>
. Inside this root element, you can place any number of feature element descriptions. In this example I will present the use of the <ContentTypeBinding>
element which is used to binding Content Types to list definitions.<?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentTypeBinding ContentTypeId="0x010101" ListUrl="_catalogs/masterpage" /> </Elements>This example binds the content type Form (which has the ID
0x010101
) to the master page gallery (which has the URL _catalogs/masterpage
). There <ContentTypeBinding>
element has no child elements, and only two attributes:ContentTypeId
- (required) The ID of the content type that will be bound to a list.ListUrl
– (required) The URL of the list to which the content type will be bound.
Additional Notes
The content type will be bound to the list definition as soon as the administrator activates this feature on a site collection. However, deactivating the feature will not remove the connection between the content type and the list. If you wish to remove it, you must do so manually.Sample
You can download this sample here. This sample includes:- The solution manifest file (
manifest.xml
). - The solution cab structure file (
solution.ddf
). - The feature manifest file (
feature.xml
). - The content type binding element manifest file (
ContentTypeBinding.xml
). - A batch file (
build.bat
) that creates the solution package (ContentTypeBinding.wsp
).
No comments:
Post a Comment