カスタム リスト定義を作成する

このタスクでは、カスタム リスト テンプレート機能を作成し、それを [ページの作成] での作成の際に選択できるリストに追加する方法を示します。カスタム リスト機能を追加するには、少なくとも以下の 3 つのファイルを用意する必要があります。

  • Feature.xml は、リスト テンプレートを登録します。

  • Elements.xml は、リスト テンプレートを [ページの作成] に追加します。

  • Schema.xml は、リスト スキーマを定義します。これには、コンテンツ タイプの関連付け、フィールドとビューの定義、およびフォームとツール バーの参照が含まれます。

手順

カスタム リスト定義を Web サイトに追加するには

  1. Local_Drive:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATES\FEATURES 内に、SimpleListFeature などの適切な名前を付けたフォルダを作成します。

  2. 新しいフォルダ内に Feature.xml ファイルを作成し、次のようにタイトル、ID、フィーチャーの範囲、および Elements.xml ファイルの場所をこのファイル内で指定します。

    <Feature 
      Title="Simple List Feature" 
      Id="80E23615-3145-4f43-BD5E-8524C02BD6CD" 
      Scope="Web" 
      xmlns="https://schemas.microsoft.com/sharepoint/">
      <ElementManifests>
        <ElementManifest Location="Elements.xml" />
      </ElementManifests>
    </Feature>
    
  3. 上記の Id 属性の GUID プレースホルダに実際の値を入れるには、Local_Drive:\Program Files\Microsoft Visual Studio 8\Common7\Tools にある guidgen.exe を実行することにより GUID を生成します。

  4. 新しいフォルダ内に Elements.xml ファイルを作成し、次のようにリスト テンプレートと [ページの作成] に表示する情報をこのファイル内で指定します。Type には、10000 より大きく、展開内で使用されている他のカスタム リスト定義とは異なる値を指定してください。

    <Elements 
      xmlns="https://schemas.microsoft.com/sharepoint/">
      <ListTemplate 
        Name="SimpleList" 
        DisplayName="Simple List" 
        Type="10001" 
        Description="This is my simple list." 
        BaseType="0" 
        OnQuickLaunch="FALSE" 
        SecurityBits="11" />
    </Elements>
    
  5. 前の手順でリスト テンプレートに割り当てたのと同じ名前 (上の例では SimpleList) を持つサブフォルダを作成します。

  6. 新しいサブフォルダ内に、リストを定義する Schema.xml ファイルを作成します。既存のリスト機能の Schema.xml ファイルをコピーして修正し、カスタム リスト定義用の特殊フィールドを定義します。

  7. コマンド プロンプトで、展開先にフィーチャーをインストールする次のコマンドを実行し、指定したサブサイトでフィーチャーをアクティブにします。

       a. stsadm -o installfeature -filename SimpleListFeature\Feature.xml
       b. stsadm -o activatefeature -name SimpleListFeature -url https://Server/Site/Subsite
    
  8. 新しいフィーチャーをテストするには、[ページの作成] に移動し、テンプレートを使用してリストを作成します。

Schema.xml ファイル

Schema.xml ファイルの先頭付近にあるリストに必要なユーザー設定フィールドを定義します。次の例では、既定の CustomList 機能の Schema.xml ファイルをコピーして修正し、SimpleList 機能用の特殊な Choice フィールドを定義して、そのフィールドがアイテム フォームに表示されるように、Item コンテンツ タイプに追加しています。

Item コンテンツ タイプ定義をカスタマイズするには、コピーした Schema.xml ファイルの先頭付近にある以下のコンテンツ タイプ宣言を探します。

<ContentTypeRef ID="0x01">
  <Folder TargetName="Item" />
</ContentTypeRef>

このコンテンツ タイプ定義を、C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\ctypes の ctypeswss.xml ファイルにある、ID が 0X01 の Item コンテンツ タイプ定義に置き換えます。

ユーザー設定フィールドの参照をコンテンツ タイプ定義に追加します。この例では、FavoriteColor を追加しています。また、既定の Folder 要素を追加して、コンテンツ タイプのリソース フォルダを指定します。「コンテンツ タイプ ID」の説明に従って、コンテンツ タイプの一意の ID を作成します。前述の手順 3. で説明した guidgen.exe を使用して、コンテンツ タイプ ID およびフィールド参照の GUID を作成します。

<List Name="SimpleList" Title="Simple List" BaseType="0" Direction="" Url="">
  <MetaData>
    <ContentTypes>

  <!--Copy the referenced ContentType definition from ctypeswss.xml.-->
      <ContentType 
        ID="0x010099FE4F3ACD494e30A36693F9EE65BAF2"
        Name="FavoriteColor Item"
        Group="$Resources:List_Content_Types"
        Description="Favorite color item content type."
        Version="0">
        <FieldRefs>
          <FieldRef 
            ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" 
            Name="Title" 
            Required="TRUE" 
            ShowInNewForm="TRUE" 
            ShowInEditForm="TRUE"/> 

          <!--Add a field reference for the custom field.-->
          <FieldRef
            ID="{AD22016D-BC8B-4631-A0A3-5E84C6CFA7EC}" 
            Name="FavoriteColor" 
            Required="TRUE" 
            ShowInNewForm="TRUE" 
            ShowInEditForm="TRUE"/>

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

        <!--Include the relative folder path for the content type resource folder.-->
        <Folder 
          TargetName="Item" />
      </ContentType>

      <ContentTypeRef 
        ID="0x0120" />
    </ContentTypes>

以下のように指定して、Schema.xml の ContentTypes セクションに続く空の Fields タグに、FavoriteColor Choice フィールドのフィールド定義を追加します。

    <Fields>
      <Field 
        Type="Choice" 
        Name="FavoriteColor" 
        DisplayName="Favorite Color">
        <CHOICES>
          <CHOICE>Red</CHOICE>
          <CHOICE>Green</CHOICE>
          <CHOICE>Blue</CHOICE>
        </CHOICES>
      </Field>
    </Fields>
    <Views>
      ...

ユーザー設定フィールドへの参照をビュー定義の ViewFields セクションに追加して、フィールドがビューに表示されるようにします。次の例では、FavoriteColor フィールド参照を標準のすべてのアイテム ビューに追加しています。

<ViewFields>
  <FieldRef Name="Attachments"/>
  <FieldRef Name="LinkTitle"/>
  <FieldRef Name="FavoriteColor"/>
</ViewFields>

See Also

概念

リスト テンプレート ファイル

フィーチャーを操作する

テンプレートおよび定義を使用する

Schema.xml