Developing Custom DocumentSet Content Type that includes other Document Content Types

1.8k views Asked by At

I have sucessfully created and deployed a couple of new content types in Visual Studio. One is based on a Document Set and the others are based on Documents. What I want to do is specify the "Default Content Type", "Shared Columns" of the Document Set. I also want to specifiy my addition document types to be in the "Allowed Content Type" list for the Document Set. I know how to do this the the SharePoint UI. How can I accomplish this through my Visual Studio Project?

1

There are 1 answers

0
terahex On

I Found the Solution, with thanks to Google connecting me to people smarter then me. In the Content Type of the Document Set, you need to specify the XMLDocuments elements.

<XmlDocuments>
  <!-- List of all fields [site columns] shared between all content types and the document set. -->
  <XmlDocument NamespaceURI="http://schemas.microsoft.com/office/documentsets/sharedfields">
    <sf:SharedFields xmlns:sf="http://schemas.microsoft.com/office/documentsets/sharedfields" LastModified="1/1/2010 08:00:00 AM">
      <!-- Add shared fields here using the syntax below-->
      <!--<SharedField id="00000000-0000-0000-0000-000000000000" />-->
    </sf:SharedFields>
  </XmlDocument>
  <!-- List of all content types that are allowed in the document set. -->
  <XmlDocument NamespaceURI="http://schemas.microsoft.com/office/documentsets/allowedcontenttypes">
    <act:AllowedContentTypes xmlns:act="http://schemas.microsoft.com/office/documentsets/allowedcontenttypes" LastModified="1/1/2010 08:00:00 AM">
      <!-- Add content types that will be used in the document set using the syntax below -->
      <!--<AllowedContentType id="00000000-0000-0000-0000-000000000000" />-->
    </act:AllowedContentTypes>
  </XmlDocument>
  <!-- List of all fields [site columns] that should appear on welcome page. -->
  <XmlDocument NamespaceURI="http://schemas.microsoft.com/office/documentsets/welcomepagefields">
    <wpFields:WelcomePageFields xmlns:wpFields="http://schemas.microsoft.com/office/documentsets/welcomepagefields" LastModified="1/1/2010 08:00:00 AM">
      <!-- Add welcome fields here using the syntax below -->
      <!--<WelcomePageField id="00000000-0000-0000-0000-000000000000" />-->
    </wpFields:WelcomePageFields>
  </XmlDocument>
  <!-- List of all default documents associated with the content types. -->
  <XmlDocument NamespaceURI="http://schemas.microsoft.com/office/documentsets/defaultdocuments">
    <dd:DefaultDocuments xmlns:dd="http://schemas.microsoft.com/office/documentsets/defaultdocuments" AddSetName="TRUE" LastModified="1/1/2010 08:00:00 AM">
      <DefaultDocument idContentType="0x010100c462526dfcb94db3ab99dc52649a7f66" name="Template.docx" />
    </dd:DefaultDocuments>
  </XmlDocument>

  <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
    <FormTemplates  xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
      <Display>ListForm</Display>
      <Edit>ListForm</Edit>
      <New>NewForm</New>
    </FormTemplates>
  </XmlDocument>