サイト定義の構成を使用する

サイト定義を作成している場合、サイト定義の構成を使用することで、サイトの作成に含めるリストを指定できます。サイト定義の構成を使用すると、特定のサイト定義に対する Onet.xml ファイルに含まれる既存のリスト定義を再利用することができ、リスト定義をコピーしたりコーディングし直したりする必要がありません。1 つの Onet.xml ファイルに複数の構成を作成でき、構成ごとに異なるリストのセットでサイトを作成できます。

サイト定義内でサイト定義構成を設定するには、カスタム WebTemp.xml ファイルの中、および WebTemp ファイルで参照されている 1 つ以上の Onet.xml ファイルの中で、Configuration 要素を使用します。カスタム WebTemp*.xml ファイルを作成する方法の詳細については、「[方法] カスタム サイト定義および構成を作成する」を参照してください。

次の WebTemp.xml ファイルでは、2 つの Configuration 要素を使用して、サイトをインスタンス化するための異なるサイト定義の構成を定義しています。1 つは Research Collaboration サイトに対するもので、もう 1 つは Research Document Workspace サイトに対するものです。この例では 1 つのサイト定義の中で 2 つの構成を使用しているだけですが、1 つの WebTemp.xml ファイルに複数のサイト定義を組み込み、各定義に複数の構成を指定することができます。各サイト定義は異なるサイト定義フォルダとそれぞれの Onet.xml ファイルを参照します。

<?xml version="1.0" encoding="utf-8" ?>
<Templates xmlns:ows="Microsoft SharePoint">
  <Template Name="RESEARCH" ID="10001">
    <Configuration ID="0" Title="Research Collaboration site" 
      Hidden="FALSE" ImageUrl="_layouts/images/stsprev.jpg" 
      Description="This definition creates a site for the Research 
      team to create, organize, and share general information." 
      DisplayCategory="Collaboration">
    </Configuration>
    <Configuration ID="1" Title="Research Workspace" Hidden="FALSE" 
      ImageUrl="_layouts/images/dwsprev.jpg" Description="This 
      definition creates a site for Research team colleagues to 
      work together on specific documents." 
      DisplayCategory="Collaboration">
    </Configuration>
  </Template>
</Templates>

Template 要素の Name 属性の値で示されているように、この例では "RESEARCH" という名前のサイト定義ディレクトリが存在していると想定しています。WebTemp*.xml ファイルで複数のサイト定義を指定する場合は、一意の ID 値によって定義を区別します (Microsoft の現在および将来のサイト定義との競合を防ぐため、すべてのカスタム サイト定義に 10000 より大きい値を持つ ID を使用してください)。

また、各 Configuration 要素には ID 属性も含まれます。この ID と Template 要素の Name 属性の値の組み合わせで、特定の Onet.xml ファイル内の特定の Configuration 要素の内容に対する参照が提供されます。前の例では、Name 属性は RESEARCH、ID 属性は 0 および 1 で、Onet.xml に格納されている RESEARCH サイト定義の ID が 0 または 1 の構成が参照されています。

注意

Windows SharePoint Services 3.0 オブジェクト モデルでは、サイト定義の構成およびその親サイト定義は Microsoft.SharePoint.SPWebTemplate オブジェクトで表されます。このオブジェクトの Name プロパティは定義名と構成 ID を "#" 記号で連結します。 したがって、前述の例の 2 つのサイト定義構成の名前は "RESEARCH#0" および "RESEARCH#1" になります。

Onet.xml ファイルの各サイト定義構成は、サイト定義から作成できる特定の種類のサイトを定義しています。このファイルのすべての構成は、ファイル内で定義されている使用可能なリスト定義、ドキュメント テンプレート、ナビゲーション領域、基本リスト種類、およびモジュールのセットを共有します。Configuration 要素で指定されているリストのコレクションに List 要素を追加することで、Onet.xml で定義されているリストへの参照を追加できます。たとえば、名前が "My_Custom_List" で Type 属性が 10001 のリスト種類を Onet.xml で定義した場合は、<List Title="My_Custom_List" Type="10001" Url="Lists/My_Custom_List" /> を追加することで、構成のリスト部分を作成できます。次の例では、Onet.xml ファイルでの構成の配置を示します。

<Configurations>
  <Configuration ID="0" Name="RC">
    <Lists>
      <List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" 
        Type="101" Title="$Resources:core,shareddocuments_Title;" 
        Url="$Resources:core,shareddocuments_Folder;" 
        QuickLaunchUrl="$Resources:core,shareddocuments_Folder;/Forms/AllItems.aspx" /> 
      <List FeatureId="00BFEA71-6A49-43FA-B535-D15C05500108" 
        Type="108" Title="$Resources:core,discussions_Title;" 
        Url="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" 
        QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;/AllItems.aspx" 
        EmailAlias="$Resources:core,discussions_EmailAlias;" /> 
      <List FeatureId="00BFEA71-D1CE-42de-9C63-A44004CE0104" 
        Type="104" Title="$Resources:core,announceList;" 
        Url="$Resources:core,lists_Folder;/$Resources:core,announce_Folder;">
        <Data>
          <Rows>
            <Row>
              <Field Name="Title">$Resources:onetid11;</Field> 
              <Field Name="Body">$Resources:onetid12;</Field> 
              <Field Name="Expires"><ows:TodayISO/></Field> 
            </Row>
          </Rows>
        </Data>
      </List>
      <List FeatureId="00BFEA71-2062-426C-90BF-714C59600103" 
        Type="103" Title="$Resources:core,linksList;" 
        Url="$Resources:core,lists_Folder;/$Resources:core,links_Folder;" /> 
      <List FeatureId="00BFEA71-EC85-4903-972D-EBE475780106" 
        Type="106" Title="$Resources:core,calendarList;" 
        Url="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;" 
        QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;/Calendar.aspx" 
        EmailAlias="$Resources:core,calendar_EmailAlias;" /> 
      <List FeatureId="00BFEA71-A83E-497E-9BA0-7A5C597D0107" 
        Type="107" Title="$Resources:core,taskList;" 
        Url="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;" 
        QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;/AllItems.aspx" /> 
    </Lists>
    <Modules>
      <Module Name="Default" /> 
    </Modules>
    <SiteFeatures>
      <Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" /> 
    </SiteFeatures>
    <WebFeatures>
      <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" /> 
    </WebFeatures>
  </Configuration>
  <Configuration ID="1" Name="RDW">
    <Lists>
      <List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" 
        Type="101" Title="$Resources:core,shareddocuments_Title;" 
        Url="$Resources:core,shareddocuments_Folder;" /> 
      <List FeatureId="00BFEA71-6A49-43FA-B535-D15C05500108" 
        Type="108" Title="$Resources:core,discussions_Title;" 
        Url="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" 
        QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" /> 
      <List FeatureId="00BFEA71-D1CE-42de-9C63-A44004CE0104" 
        Type="104" Title="$Resources:core,announceList;" 
        Url="$Resources:core,lists_Folder;/$Resources:core,announce_Folder;">
        <Data>
          <Rows>
            <Row>
              <Field Name="Title">$Resources:onetid11;</Field> 
              <Field Name="Body">$Resources:onetid12;</Field> 
              <Field Name="Expires"><ows:TodayISO/></Field> 
            </Row>
          </Rows>
        </Data>
      </List>
      <List FeatureId="00BFEA71-2062-426C-90BF-714C59600103" 
        Type="103" Title="$Resources:core,linksList;" 
        Url="$Resources:core,lists_Folder;/$Resources:core,links_Folder;" /> 
      <List FeatureId="00BFEA71-EC85-4903-972D-EBE475780106" 
        Type="106" Title="$Resources:core,calendarList;" 
        Url="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;" 
        QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;/Calendar.aspx" /> 
      <List FeatureId="00BFEA71-A83E-497E-9BA0-7A5C597D0107" 
        Type="107" Title="$Resources:core,taskList;" 
        Url="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;" /> 
    </Lists>
    <Modules>
      <Module Name="DWS" /> 
    </Modules>
    <SiteFeatures>
      <Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" /> 
    </SiteFeatures>
    <WebFeatures>
      <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" /> 
    </WebFeatures>
  </Configuration>
</Configurations>

Configuration 要素の ID 属性の値は、構成に対する WebTemp.xml ファイルで指定されている ID に対応します。この例では、既定のサイトは "Research Collaboration" サイト (0) であり、"Research Document Workspace" サイト (1) ではありません。各 List 要素の Type 属性は、Onet.xml で定義されているリスト種類を参照しています。Url 属性には各リストに対するリスト定義を格納するフォルダの URL が含まれ、このフォルダには ASPX ファイル、Schema.xml、およびその他の関連ファイルが存在します。QuickLaunchUrl 属性を指定する場合は、リストに対する AllItems.aspx ファイルへの完全なパスを格納します。このファイルは、サイド リンク バー領域のリストを表示します。

警告

カスタム サイト定義を作成するには、Windows SharePoint Services と共にインストールされる基のファイルを変更するのではなく、既存のサイト定義をコピーして行う必要があります。もともとインストールされているファイルに対する変更は、Windows SharePoint Services の更新やサービス パックをインストールしたり、またはインストールを次の製品バージョンにアップグレードしたりすると、上書きされる可能性があります。カスタム サイト定義の作成の詳細については、「[方法] カスタム サイト定義および構成を作成する」を参照してください。